Home / Open Source / OpenRFID Android Handheld Middleware & UHF SDK
Mobile SDK & Handhelds Kotlin / Java / Android Native SDK / Jetpack Compose License: MIT v2.5.0

OpenRFID Android Handheld Middleware & UHF SDK

Universal Android native SDK & background middleware service app for industrial handheld RFID terminals (Chainway, Zebra, Honeywell, Seuic).

Quick Clone / Terminal Setup git / bash
git clone https://github.com/rfidsoftwares/OpenRFID-Handheld-Android-Middleware.git
Live Video Laboratory & Tutorials

Watch Video Walkthrough Before Using

HD 1080p • Technical Walkthrough

RFID Stock Management System | Handheld Bulk Reading, Tracking & Anti-Theft

View Dedicated Video Page & Notes →

Watch real-world industrial UHF handheld terminal bulk scanning (Chainway C72 & AUTOID), Geiger-counter audio locate mode, and live inventory audit sync.

Project Overview & Architecture

Production-ready, universal Android native SDK and background middleware service engineered to standardize RFID hardware integration across fragmented industrial handheld terminals and sled devices (Chainway C72/C71/C66, Zebra TC26/MC3300R/RFD8500, Seuic AutoID9U, ATID AT911N, Honeywell). Built with a reflection-based Hardware Abstraction Layer (UhfReaderManager.kt), it auto-detects underlying Impinj E710 & R2000 UHF modules to deliver high-velocity tag inventory (200+ tags/second), dynamic RF power adjustment (5 dBm to 30 dBm), audio Geiger counter asset locating with visual RSSI heatmaps, and simultaneous 2D optical barcode scanning. Includes a persistent background Android Foreground Service with encrypted SQLite offline buffering and automatic REST API / MQTT webhook synchronization.

4-Tier Edge Pipeline Architecture

1. Device Auto-Probe

Hardware Detection

Dynamically probes serial UART ports and Android USB/Bluetooth interfaces to identify connected reader chips.

2. Native JNI Loop

Inventory Stream

Executes low-latency C/C++ native callbacks streaming EPC, TID, and RSSI telemetry at 200+ tags/sec.

3. Audio & UI Layer

Geiger & Feedback

Calculates normalized signal strength to trigger pitch-modulated audio beeps and visual heatmaps.

4. Offline Sync

Foreground Service

Maintains persistent SQLite queue for offline warehouse zones; dispatches HTTP webhooks on Wi-Fi reconnect.

Supported Handheld Terminals & Driver Matrix

Hardware Vendor Models Communication Bus UHF Module Native Driver
Chainway C72, C71, C66, C61 Internal UART (/dev/ttyMT2 @ 115200) Impinj E710 / R2000 cw-deviceapi20191022.jar
Zebra Technologies MC3300R, RFD8500, RFD40/90 IPC / Bluetooth RFCOMM Zebra Custom Gen2 rfidapi3lib-2.0.5.275.aar
Seuic AutoID9U, UF3 Industrial Internal Serial Bus ThingMagic / Impinj uhf.jar & scankey.jar
ATID Korea AT911N, AB700 Handhelds Internal UART Bus Phychips / Impinj atid.dev.rfid.jar

Feature Benchmark: OpenRFID Solution vs. Proprietary Alternatives

Feature Capability OpenRFID Solution (MIT) Commercial Paid Solutions Hardware Rig / Manual
SDK License & Code Access 100% Free & Open Source (MIT) Proprietary SDK ($1,500 / App) Vendor Closed-Source Jar
Multi-Vendor Handheld Support ✓ Single APK runs on Chainway, Zebra, Seuic, ATID Separate SDK builds per hardware vendor Strictly single vendor only
Audio Geiger Counter Search ✓ Built-in Pitch-Modulated RSSI Feedback Basic RSSI bar without audio Requires vendor demo app
Simultaneous 2D Barcode + RFID ✓ Dual Hardware Trigger Interceptor Mode toggle required (cannot scan both) Hardware button conflict
Offline SQLite Queue Service ✓ Android Foreground Service with Auto-Sync In-memory list only (lost on app crash) No built-in storage engine

CLI Arguments & Configuration Reference

Parameter / Flag Type Default Description & Action
setPower(5..30) int 30 dBm Configures reader RF output power from 5 dBm (near-field) to 30 dBm (15m+ long range).
setSession(S0..S3) enum S1 EPC Gen2 inventory session query parameter for tag population persistence.
setTarget(TARGET_A..B) enum TARGET_A Gen2 inventoried flag target state for continuous vs single-sweep tag audits.
enableGeiger(epc) string null Activates audio pitch modulation tracking for a specific target EPC hex string.
setSyncEndpoint(url) url "https://api.erp.local/scans" Configures background HTTPS webhook endpoint for offline SQLite queue flushing.

Code & Integration Blueprint

Copyable starter templates, CLI flags, and CI/CD pipelines:

UhfReaderManager.kt
import com.rfidsoftwares.openrfid.hal.UhfReaderManager
import com.rfidsoftwares.openrfid.models.RfidTag

class InventoryActivity : AppCompatActivity() {
    private lateinit var rfidManager: UhfReaderManager

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // Auto-detects device vendor (Chainway C72 vs Zebra RFD8500)
        rfidManager = UhfReaderManager.getInstance(this)
        
        rfidManager.initReader { isReady ->
            if (isReady) {
                rfidManager.setPower(30) // Set to max 30 dBm power
                rfidManager.startInventory { tag: RfidTag ->
                    runOnUiThread {
                        Log.d("RFID", "Scanned: ${tag.epc} | RSSI: ${tag.rssi} dBm")
                    }
                }
            }
        }
    }
}

Technical Specifications & Runtime Environment

Target Architecture Kotlin / Java / Android Native SDK / Jetpack Compose • MIT Open Source License
Supported Protocols REST API, WebSockets, MQTT, TCP Raw Sockets, Serial RS232
Supported UHF Modules Impinj E710, Impinj R2000, ThingMagic M6e, Zebra SE4710
Air Interface Protocol EPC Class 1 Gen 2 / ISO 18000-6C
Read Speed Up to 200+ tags/second bulk inventory
Android OS Target Android 7.0 Nougat through Android 14.0+

Key Features & Capabilities

  • ✓ Universal Hardware Abstraction Layer (HAL) for Chainway, Zebra, Seuic, and ATID
  • ✓ High-Speed UHF Bulk Scanning (200+ Tags/Sec with Impinj E710 & R2000 Modules)
  • ✓ Software-Tunable RF Power Output (5 dBm to 30 dBm) for Near-Field & Long-Range (15m+)
  • ✓ Audio Geiger Counter Asset Locator with Pitch-Modulated RSSI Signal Feedback
  • ✓ Dual Hardware Trigger Interceptor for Simultaneous 2D Barcodes & UHF RFID Tags
  • ✓ Persistent Background Android Service with Local SQLite Buffer Queue & REST Sync
  • ✓ Gen2 Memory Bank Password Lock & Kill Management (Reserved, EPC, TID, User)
  • ✓ Jetpack Compose UI Sample with Real-Time Inventory Table & CSV Export

Frequently Asked Questions

Which handheld RFID readers are supported by OpenRFID Handheld Android Middleware? ↓

It supports Chainway (C72, C71, C66), Zebra (TC26, MC3300R, RFD8500), Seuic (AutoID9U), ATID (AT911N), Honeywell, and CipherLab industrial Android handheld terminals.

How does the Universal Hardware Abstraction Layer (HAL) work? ↓

The SDK provides `UhfReaderManager.kt` which utilizes reflection-based device probing. It dynamically binds vendor drivers (e.g. `RFIDWithUHFUART` for Chainway vs `com.zebra.rfid.api3` for Zebra) at runtime, allowing a single APK to run across heterogeneous hardware fleets.

Does the SDK support Impinj E710 and R2000 UHF RFID chipsets? ↓

Yes! The SDK automatically detects the underlying hardware module (Impinj E710 or R2000) and configures optimal UART baud rates (115200) and command frames to achieve 200+ tags/sec scan speeds.

How does the Audio Geiger Counter asset locator work? ↓

The Geiger locator calculates the difference between current tag RSSI (-30 to -85 dBm) and a target threshold. It modulates audio beep frequency and pitch in real time, guiding warehouse operators directly to missing inventory.

Can it scan 2D barcodes and UHF RFID tags simultaneously? ↓

Yes. Dual hardware triggers enable simultaneous 2D optical barcode (Zebra SE4710) scanning and high-speed UHF tag inventory callbacks without driver conflicts.

Does RFID Softwares offer paid customization for mobile RFID apps? ↓

Yes. While community support on GitHub is completely free, our engineering team offers paid custom mobile app development, backend integration, and ERP sync.

Application & SDK Preview

Open RFID handheld device for Android middleware integration

Paid Customization & Free Help

We offer free community help on GitHub issues and discussions. If you need bespoke features, customized mobile apps, or dedicated on-site deployment, contact us for paid enterprise integration services.

🖥️ OpenRFID Studio Preview 1 / 5
Hi, Can I Help ? 💬
AI