100% Free & Open-Source • MIT Licensed v1.2.0 • Headless CLI & Web Engine

Virtual RFID Reader & EPC Gen2 Tag Simulator

Build, test, and debug warehouse IoT automation pipelines with this free browser-based RFID reader emulator and virtual reader node. Stream synthetic EPC Class 1 Gen 2 (ISO 18000-6C) tags, customize antenna RF power, and inspect real-time REST, MQTT, Tally Prime XML, and SAP BAPI payloads without physical hardware.

Run Headless in CI/CD: npx @openrfid/cli simulator start GitHub Repo ↗
RFID simulator tool for testing RFID applications
OpenRFID Virtual Reader Nodev1.2.0 Active

Host: localhost:5084 • Fastify REST + MQTT Broker Mode

Tx Power (dBm)30 dBm
10 dBm31.5 dBm
Simulation Velocity20/sec
5/s100/s
Tags Processed45
Unique In-Memory3 Active
Simulated Radiated RF1000 mW
Antenna Array4 Ports (RP-TNC)
LIVE TAG INTERROGATION STREAM
EPC MEMORY (HEX)ANTRSSIPHASEREADS
30142B8A004C200000000001#1-42.5 dBm112.4°14
30142B8A004C200000000002#2-48 dBm184.2°9
30142B8A004C200000000003#1-38.2 dBm64.8°22
Showing recent 3 tagsGen2 EPCglobal Class 1 Gen 2 / ISO 18000-6C
{
  "status": "success",
  "timestamp": "2026-09-12T18:43:29.100Z",
  "readerId": "openrfid-virtual-01",
  "protocol": "OpenRFID-REST/v1.0",
  "inventory": {
    "session": "S2",
    "txPowerDbm": 30,
    "tagsCount": 3,
    "tags": [
      {
        "epc": "30142B8A004C200000000001",
        "tid": "E2801130A80044B198231C01",
        "antenna": 1,
        "rssi": -42.5,
        "phaseAngle": 112.4,
        "reads": 14,
        "lastSeen": "12:13:29 AM"
      },
      {
        "epc": "30142B8A004C200000000002",
        "tid": "E2801130A80044B198231C02",
        "antenna": 2,
        "rssi": -48,
        "phaseAngle": 184.2,
        "reads": 9,
        "lastSeen": "12:13:29 AM"
      },
      {
        "epc": "30142B8A004C200000000003",
        "tid": "E2801130A80044B198231C03",
        "antenna": 1,
        "rssi": -38.2,
        "phaseAngle": 64.8,
        "reads": 22,
        "lastSeen": "12:13:29 AM"
      }
    ]
  }
}
Fastify REST Endpoint: /api/v1/tags
The Developer Experience Bottleneck

Why Developing RFID Software with Physical Hardware Fails

Most RFID software projects fall behind schedule not because of business logic, but because software engineers cannot easily test physical RF hardware at their desks.

💸

Hardware Availability

Enterprise fixed readers cost $1,500 to $3,000 each. Distributed software teams and remote developers rarely have physical dock doors, conveyor tunnels, or handhelds at their home workstations.

🤖

Zero CI/CD Automation

You cannot physically wave an RFID tag in front of an antenna inside a headless GitHub Actions or GitLab CI runner. Unit and integration tests break without a virtual mock daemon.

📈

Scale & Stress Testing

Manually testing 5,000+ tags crossing a dock door at 15 km/h is impossible on a desk. The simulator stress-tests socket buffers, memory leak resistance, and ERP batching at scale.

Standards-Compliant Emulation

Full Emulation of All 4 EPC Gen2 Memory Banks

OpenRFID Simulator implements true bitwise memory structures conforming to the ISO/IEC 18000-6C and EPCglobal Class 1 Gen 2 standards.

BANK 00: RESERVED 32-Bit

Holds 32-bit Kill Password and Access Password. Allows testing write-protection exceptions and security unlock commands.

0x00000000 (Default Unlocked)
BANK 01: EPC 96 / 128-Bit

CRC-16, Protocol-Control (PC) bits, and 96-bit Electronic Product Code. Encodes GS1 SGTIN-96, GRAI, and GIAI serial numbers.

30142B8A004C200000000001
BANK 02: TID 64–96-Bit

Factory-locked silicon serial signature. Simulates authentic chip mask models from Impinj (Monza), NXP (UCODE), and Alien (Higgs).

E2801130A80044B198231C01
BANK 03: USER Up to 512-Bit

Application-specific read/write payload block. Used in healthcare, cold-chain, and aerospace to store calibration and expiration dates.

ASCII / HEX Custom Payload
DevOps & Automated Testing

Automate Testing with a Headless RFID Reader Emulator in CI/CD

Integrate the headless RFID reader emulator daemon into your GitHub Actions and Jenkins pipelines with zero physical hardware overhead.

.github/workflows/rfid-integration-tests.yml
GitHub Actions CI/CD
name: RFID Middleware Integration Tests

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4

      - name: Setup Node.js Runtime
        uses: actions/setup-node@v4
        with:
          node-version: 20

      # 1. Spin up OpenRFID Virtual Reader in background (REST :5084, MQTT :1883)
      - name: Launch Headless RFID Simulator
        run: npx @openrfid/cli simulator start --detach --port 5084 --tags 500

      # 2. Wait for health check endpoint to return 200 OK
      - name: Await Simulator Health
        run: |
          until curl -s http://localhost:5084/api/v1/health | grep "ok"; do
            echo "Waiting for OpenRFID daemon to initialize..."
            sleep 1
          done

      # 3. Execute your enterprise application tests against virtual hardware
      - name: Run Test Suite Against Simulated RFID Reader
        run: npm run test:integration
        env:
          RFID_READER_HOST: "http://localhost:5084"
          RFID_MQTT_BROKER: "mqtt://localhost:1883"
Tools Landscape

OpenRFID Simulator vs. Legacy Tools

Why developers are replacing obsolete 2011-era Java emulators with our modern TypeScript / Tauri architecture.

Feature / Protocol OpenRFID Simulator Rifidi Emulator Fosstrak Impinj ItemTest
Active Development ✓ Active (v1.2.0, 2026) ✗ Dead (Archived 2013) ✗ Dead ("DO NOT USE") ✓ Active (OEM Only)
Requires Physical Hardware No (100% Virtual) No No Yes (Needs $2k Reader)
Modern REST & MQTT Telemetry ✓ Native Fastify & MQTT ✗ None (Java RMI/JMS) ✗ None (SOAP WebServices) Limited (Custom JSON)
In-Browser Zero-Install Mode ✓ Client-Side Sandbox ✗ Heavy Java GUI ✗ Monolithic Jar ✗ Windows EXE Only
Headless CI/CD Automation ✓ npx @openrfid/cli ✗ No headless CLI ✗ Complex Ant Build ✗ GUI Only
Tally Prime & SAP Connectors ✓ Instant XML / BAPI ✗ No ERP support ✗ No ERP support ✗ Proprietary Only
Get Started Locally

Download OpenRFID Simulator for Your Environment

Available as a lightweight browser tool, cross-platform desktop installer, or automated CLI package.

>_

Headless npm CLI

Launch background simulation daemons in seconds for automated testing, local development, or Docker containers.

npm i -g @openrfid/cli
View npm Package ↗
Desktop GUI App
🪟

Windows Desktop (MSI)

Native desktop application built with Tauri & Rust. Includes visual antenna configuration, tag memory inspector, and event logger.

  • ✓ Zero Java runtime dependencies
  • ✓ Native performance (< 60MB RAM)
  • ✓ Local SQLite WAL event logs
Download Windows MSI (v1.0.0)
🐙

GitHub Monorepo

Full TypeScript / Turborepo source code, academic research paper draft, and documentation. Free for commercial use under MIT.

git clone github.com/rfidsoftwares/openrfid-simulator
Star on GitHub ⭐
Frequently Asked Questions

Everything You Need to Know About Virtual RFID Simulation

Detailed engineering answers on protocol emulation, automated CI/CD testing, and ERP payloads.

How does OpenRFID Simulator test applications without physical hardware?
OpenRFID Simulator creates virtual RFID reader instances that mimic the network behavior and event timing of physical readers (such as Impinj Speedway and Zebra FX9600). It streams synthetic EPC Class 1 Gen 2 (ISO 18000-6C) tag read events over Fastify REST endpoints (/api/v1/tags), real-time WebSockets, MQTT topics, and Hopeland/Identium TCP sockets directly into your application code.
How does the simulator handle automated CI/CD pipelines (e.g., GitHub Actions)?
The simulator includes a headless CLI package (@openrfid/cli). In your CI/CD workflow, you run "npx @openrfid/cli simulator start --detach" to spin up a background virtual reader node. Your integration test suites can then execute HTTP calls, verify tag deduplication algorithms, and assert ERP payload generation without needing physical antennas in the build runner.
Can I simulate realistic signal strength (RSSI) and antenna port switching?
Yes. The simulation engine models variable Transmit Power (0 to 31.5 dBm) and calculates realistic RSSI signal attenuation with configurable Gaussian noise (-30 dBm near-field to -82 dBm far-field). In multi-port modes (e.g., 4-port dock doors), it cycles antenna interrogation windows and reports phase angles for directional movement detection.
What EPC Gen2 memory banks can be generated and tested?
The simulator supports all four EPC Gen2 memory banks: Bank 00 (Kill and Access Passwords), Bank 01 (96-bit EPC supporting GS1 SGTIN-96, GRAI-96, and Sequential Hex), Bank 02 (Factory silicon serialized TID signatures such as Impinj Monza and NXP UCODE), and Bank 03 (User Memory for custom batch/expiry data).
What is the most common surprise developers encounter when moving from this simulator to physical hardware?
While OpenRFID Simulator perfectly validates network protocol timing, payload parsing, and ERP integration, physical RF physics introduces multipath reflections from metal beams, RF absorption by water/liquids, and tag orientation detuning. We recommend testing your software architecture with OpenRFID Simulator first, then conducting an on-site RF site survey with physical hardware to tune final antenna power and RSSI cutoffs.
Is OpenRFID Simulator free and open-source under the MIT license?
Yes. OpenRFID Simulator is 100% open-source under the permissive MIT license. You can inspect the source code, contribute on GitHub (github.com/rfidsoftwares/openrfid-simulator), install the headless CLI via npm, or download the native Windows desktop MSI installer free of charge.

Need Turnkey RFID Middleware or Custom ERP Integration?

We bridge the gap between virtual simulation and industrial hardware deployment. From custom Chainway Android APKs to enterprise Impinj dock door portal gateways and SAP S/4HANA sync, our engineering team deploys production-ready software across India and globally.