Getting Started with RFID
Everything you need to know to set up and run your first RFID system.
How UHF RFID Actually Works
A UHF RFID system has three parts: a reader, one or more antennas, and tags. The reader generates a 920โ925 MHz radio signal and sends it through the antenna. When a passive tag enters the antenna's field, it harvests energy from the radio wave to power its tiny microchip (typically needing just ~10 microwatts). The chip then modulates the incoming signal and backscatters it, essentially reflecting a modified version back. This reflected signal carries the tag's unique Electronic Product Code (EPC).
The entire read cycle, from transmitting the query to receiving the tag's response, takes about 1โ3 milliseconds. This is what enables a single reader to inventory 200+ tags per second using the EPC Gen2 anti-collision protocol. The round-trip signal loss is significant (-40 to -80 dB), which is why reader TX power (typically 30 dBm / 1 watt) and tag chip sensitivity (down to -22 dBm) are such critical specifications.
Why "passive" matters: Passive UHF tags have no battery. They harvest energy from the reader's radio wave, which means they're cheap (ยข3โ15 each), thin (0.1mm), and last indefinitely. The trade-off is shorter range (up to ~12m) compared to active tags with batteries (~100m+).
Frequency Bands. Why UHF?
RFID spans multiple frequency bands, but UHF (860โ960 MHz) dominates commercial applications because it offers the best balance of read range, speed, and tag cost. LF (125 kHz) reads within 10cm at ~1 tag/sec, good for animal tracking but too slow for logistics. HF/NFC (13.56 MHz) reaches ~1m at ~50 tags/sec, great for payments and access cards. UHF reaches 1โ12+ meters at 200+ tags/sec, ideal for supply chain, retail, and asset tracking.
Within the Vietnam 920โ925 MHz band, readers use Frequency Hopping Spread Spectrum (FHSS) across multiple channels. The formula is: frequency = 920.0 + (channel_index × 0.5) MHz. A typical configuration uses 6 channels [0, 2, 4, 6, 8, 10] spanning 920.0 to 925.0 MHz for maximum channel separation.
UHF frequency allocations vary by country. Vietnam uses 920โ925 MHz. The USA uses 902โ928 MHz. Europe uses 865โ868 MHz. Always configure your reader for the correct regional band. Using the wrong frequency is illegal and can cause interference with licensed services.
Channel Index → Frequency (MHz) Formula: f = 920.0 + (idx × 0.5) Ch 0 → 920.0 Ch 4 → 922.0 Ch 8 → 924.0 Ch 1 → 920.5 Ch 5 → 922.5 Ch 9 → 924.5 Ch 2 → 921.0 Ch 6 → 923.0 Ch 10 → 925.0 Ch 3 → 921.5 Ch 7 → 923.5 Typical: use [0, 2, 4, 6, 8, 10] for max channel separation
Tag Anatomy & Chip Families
Every UHF RFID tag has two essential components: an antenna pattern (etched or printed aluminum on a PET substrate) and a microchip (IC). The antenna captures the reader's signal and the chip processes commands and returns data. Chip sensitivity is the minimum power the chip needs to activate. a chip rated at -22.1 dBm can wake up with just ~6.3 microwatts. Lower (more negative) = better sensitivity = longer read range.
Common chip families include: NXP UCODE 9 (-22.1 dBm, 128-bit EPC, no user memory. dominant in retail), Impinj M700 series (-22.1 dBm, 128-bit EPC. strong in logistics), and Quanray QStar-7U (-21.0 dBm, 128-bit EPC, 512-bit user memory. ideal when you need to store data directly on the tag).
Tag form factors: Dry Inlays (raw tag on PET, ยข3โ8, for converting into labels), Wet Inlays (with adhesive, ยข5โ12, ready to apply), Sticker Labels (printable, ยข8โ25, with branding), Hard Tags ($1โ15, ruggedized for harsh environments), and Woven/Fabric labels (ยข15โ40, sewn into garments). Nextwaves manufactures dry inlays from 35ร17mm to 95ร8mm and sticker labels in matching sizes.
EPC Gen2 Anti-Collision Protocol
EPCglobal Gen2 (ISO 18000-6C) governs how UHF readers communicate with tags. The key innovation is the slotted-ALOHA anti-collision algorithm that lets one reader inventory hundreds of tags simultaneously without them interfering with each other.
Here's how an inventory round works: The reader sends a Query with parameter Q (creating 2^Q time slots). Each tag picks a random slot and waits. When a tag's slot arrives, it responds with a 16-bit random number. If only one tag responds, the reader ACKs and receives the full EPC. If multiple tags collide, the reader skips that slot. After all slots, Q is adjusted. up if too many collisions, down if too many empty slots. and the round repeats.
Practical Q settings: Q=2 (4 slots) for 1โ5 tags, Q=4 (16 slots) for 5โ20 tags, Q=5 (32 slots) for 20โ100 tags, Q=6 (64 slots) for 100โ500 tags, Q=7 (128 slots) for 500+ tags. Higher Q means fewer collisions but slower rounds.
Session persistence controls how long a tag remembers it was already read. Session S0 resets instantly (for continuous monitoring). S1 persists 0.5โ5 seconds (standard inventory). S2/S3 persist โฅ2 seconds (dock doors and conveyors where you want each tag counted once per pass). Rule of thumb: use S0 for shelf monitoring, S2/S3 for portals.
Tag Count → Q Value → Slots → Use Case 1-5 Q=2 4 fast, low overhead 5-20 Q=4 16 good balance 20-100 Q=5 32 warehouse shelves 100-500 Q=6 64 pallet scanning 500+ Q=7 128 dock doors, bulk Higher Q = fewer collisions but slower rounds
Tag Memory Banks
Every Gen2 tag has 4 memory banks. Reserved (Bank 00): Kill password + Access password, 64 bits total. EPC (Bank 01): CRC-16 + Protocol Control word + your EPC identifier, typically 96โ128 bits. TID (Bank 10): Factory-burned unique chip ID that can never be changed. invaluable for anti-counterfeiting. User (Bank 11): Optional custom data storage (0 to 512+ bits depending on chip), useful for batch numbers, inspection dates, or sensor data.
When a reader inventories tags, each notification contains: antenna ID (which port), RSSI raw value (0โ255, convert to dBm via: dBm = -100 + round(raw ร 70 / 255)), the EPC data (12+ bytes), and the frequency channel index. This data is what your application processes to map physical tag reads to business events like 'item shipped' or 'pallet received'.
Never set the Kill Password on tags unless you understand the consequences. Sending the kill command with the correct password permanently and irreversibly disables the tag. it can never be read again. The default password (0x00000000) means anyone can kill an unprotected tag.
[ANT] [RSSI] [EPC ร12 bytes ..................] [CH] 01 B4 30 34 25 7B F7 19 4E 40 00 00 1A 85 06 Antenna: 1 (port 1) RSSI: 180 โ dBm = -100 + round((180ร70)/255) = -51 dBm EPC: 3034257BF7194E4000001A85 (SGTIN-96) Channel: 6 โ 920.0 + (6ร0.5) = 923.0 MHz GTIN-14: 80614141123458 Serial: 6789
Your Setup Checklist
Here's a practical checklist for setting up your first RFID system, with specific guidance at each step.
Quick start: Use the Nextwaves Reader Connect tool at app.nextwaves.com/reader to configure your reader directly from a web browser via WebSerial. no SDK installation needed.
Choose Your Tags
Match the tag to your application surface. Standard PET inlays work well on cardboard and plastic. For metal surfaces, use specialised on-metal tags or a spacer layer. For liquids, orient the tag away from the liquid surface. Use larger antennas (70×15mm+) for pallets and smaller tags (35×17mm) for item-level use.
Select a Reader
Fixed readers mount permanently at dock doors, conveyors, or ceilings. Handheld readers are ideal for mobile cycle counts. Compare antenna-port count (4–32), maximum TX power (30–33 dBm), connectivity (USB, Ethernet, Wi-Fi), and protocol support. Nextwaves readers support the NRM protocol for full parameter control.
Configure Your Reader
Set the correct regional frequency band, reader power, inventory session, and antenna ports. Start with lower power during testing, then increase it only as needed to cover your required read zone.
Encode Your Tags
Write EPC data (SGTIN-96, SSCC, and more) to each tag. For example, a GTIN-14 plus serial number becomes a 12-byte EPC. Use the Nextwaves TDS RFID Converter to generate valid EPC values from your barcodes.
Connect to Your Software
The reader outputs tag events (EPC, antenna ID, RSSI, and timestamp) that your application maps to business events. Use RSSI to estimate proximity and filter stray reads. Connect via serial port, TCP/IP, or WebSerial for browser-based apps.
Input: GTIN-14=08600000232451 Serial=1001 Prefix=7 digits Output: 30 14 1A 80 0E 98 78 00 00 00 03 E9 (12 bytes)
Continue Reading
Explore more RFID guides to deepen your knowledge.