You can read RFID tag IDs all day. That is the easy part. But the tag has more to give—user memory. That is where the real data lives. Maintenance history, expiration dates, destination codes, authentication tokens.
Here is the thing. When people search how to read user memory information from RFID reader, they usually discover that most tutorials stop at reading the EPC. User memory is different. It requires targeting specific memory banks, sometimes passwords, and understanding how the tag organizes data.
Let me walk through what user memory actually is and how to read it.
First: What Is User Memory?
RFID tags have multiple memory areas. The EPC (Electronic Product Code) is just one of them . User memory is separate space where you can store custom information .
For UHF RAIN RFID tags (ISO 18000-6C), there are four memory banks :
Bank
Name
What It Stores
00
Reserved
Kill password and access password
01
EPC
Electronic Product Code—main identifier
10
TID
Tag Identifier—factory programmed, unique per tag
11
User
User memory—size varies by tag type
For HF tags (Mifare, NTAG, ICODE), user memory is organized into sectors and blocks . A Mifare 1K tag has 16 sectors, each with 4 blocks. The last block of each sector is the trailer containing access keys. The other blocks can store user data.
Not every tag has user memory . Some cheap UHF tags only have EPC and TID. Check the tag datasheet before you assume user memory exists.
Why User Memory Matters
User memory solves real problems :
Offline operations: Write destination store numbers directly to tags on pallets. Warehouse workers read the tag and know where it goes without checking a database .
Authentication: Write random serial numbers to user memory when pharmaceuticals are produced. Pharmacists verify against manufacturer database to confirm legitimacy .
Maintenance history: Specialized tags with 32KB user memory store complete history of airplane parts. Mechanics read the tag and get instant access to maintenance records .
Work-in-progress tracking: Write current production stage to tags on manufacturing line. Readers at each station update the data.
Method 1: Read User Memory with CYKEO SDK
The simplest way how to read user memory information from RFID reader is using an SDK that handles the low-level commands.
CYKEO Python SDK for UHF tags:
python
from cykeo_sdk import UHFReader
# Connect to reader
reader = UHFReader("192.168.1.100")
reader.connect()
# Start inventory to find tags
def on_tag(tag):
print(f"Found tag EPC: {tag.epc}")
# Read user memory from this tag# Parameters: tag EPC, memory bank, start word, word count# Word = 2 bytes (16 bits)
user_data = reader.read_tag_memory(
epc=tag.epc,
memory_bank="USER",
offset=0, # start at word 0
length=8 # read 8 words (16 bytes)
)
if user_data:
print(f"User memory (hex): {user_data.hex()}")
# If data is ASCII text
try:
text = user_data.decode('ascii')
print(f"User memory (text): {text}")
except:
pass
reader.on_tag_read = on_tag
reader.start_inventory()
CYKEO Android SDK for UHF handhelds :
java
// Initialize reader from CYKEO CK-B3L or CK-B5L
UHFReader reader = new UHFReader(context);
reader.connect();
// Set tag listener
reader.setTagReadListener(new TagReadListener() {
@Override
public void onTagRead(TagRead tag) {
String epc = tag.getEpc();
// Read 16 bytes from user memory starting at word 0
byte[] userData = reader.readTagMemory(
epc,
MemoryBank.USER,
0, // offset in words
8 // length in words (16 bytes)
);
if (userData != null) {
Log.d("CYKEO", "User data: " + bytesToHex(userData));
// Update UI
runOnUiThread(() -> {
textView.setText("User: " + bytesToHex(userData));
});
}
}
});
reader.startInventory();
Method 2: Read User Memory with Commands (Raw Approach)
If you are working without an SDK, you need to send specific commands to the reader.
For CYKEO readers using serial/TCP protocol :
text
#RD USER,0,8
This command reads 8 words (16 bytes) from user memory starting at word 0 . The reader responds with hex data.
Using a terminal program :
Connect to reader via serial (COM port) or TCP (IP address + port)
Configure baud rate (often 115200 or 9600)
Send inventory command: #INV
When tag appears, send read command: #RD USER,0,8
The response might look like: A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6
Important: For the E710 UHF module, you must specify the correct read length based on tag specification . The read length cannot be configured as “0” .
Method 3: Read User Memory from HF Tags (Mifare)
HF tags work differently. They require authentication before reading user data .
CYKEO HF SDK example:
python
from cykeo_sdk import HFReader
reader = HFReader("COM3")
reader.connect()
def on_card(card):
print(f"Card UID: {card.uid.hex()}")
# Authenticate to sector 1 using default key# (production cards use custom keys)
if card.authenticate(sector=1, key_type="A", key="FFFFFFFFFFFF"):
# Read block 4 (first block of sector 1)# Each block is 16 bytes
data = card.read_block(4)
print(f"User data block 4: {data.hex()}")
# Read multiple blocks
blocks = card.read_blocks(start_block=4, count=3)
for i, block_data in enumerate(blocks):
print(f"Block {4+i}: {block_data.hex()}")
reader.on_card = on_card
reader.start_reading()
For HF tags, the access password is required to acquire user data stored in the user memory bank .
Method 4: Using Configuration Software
Sometimes you do not need to code. CYKEO Tag Manager software handles user memory access through a graphical interface.
Steps in CYKEO Tag Manager:
Connect reader and select “Tag Detail”
Click “GET EPC” to read a tag
Navigate to the “USER” tab
Set “Read Offset (Words)” and “Read Length (Words)”
Enter access password if required
Click “READ” to fetch user memory
Data appears in “User Binary (HEX)” field
The software automatically handles the commands and shows you the raw hex data.
Understanding Access Passwords
User memory is often protected by access passwords. You cannot read it without the correct password .
Reserved memory bank (Bank 00) stores two passwords :
Kill password: 32 bits (4 bytes), permanently deactivates the tag
Default access password is usually 00000000 in hexadecimal . Production systems should change this.
To read user memory on a password-protected tag:
python
# First, authenticate with access password
reader.send_command("access_password=12345678")
# Then read user memory
user_data = reader.read_user_memory(epc, offset=0, length=8)
For HF tags like Mifare, each sector can have its own keys. The last block of each sector (sector trailer) contains Key A, Key B, and access conditions .
Lock Status and Permalock
Some tags have memory that is permanently locked :
Locked memory: Cannot be overwritten, but can still be read
Permalocked: Lock status is permanent—cannot be changed
Read-protected: Some memory banks can be configured to block reads entirely
The Gen2 standard supports permalock features that make lock status permanent for all or part of tag memory .
Common Problems When Reading User Memory
Problem: User memory reads as all zeros
Tag may not have user memory
User memory might be empty (never written)
Wrong offset—data starts at different location
Problem: Command returns no data or error
Access password required
Read length exceeds available memory
Tag not responding—try moving closer
Problem: Some tags read, some don’t
Different tag models have different user memory sizes
Some tags may have user memory locked
Older tags may not support user memory access
Problem: Data reads as garbage
You are reading raw binary data that needs interpretation
Data might be encrypted
Wrong offset—reading wrong part of memory
Problem: Authentication fails
Wrong password/key
Access conditions changed from defaults
Tag is permanently locked
Real Example: Warehouse Shipping
Here is how a food distributor in Netherlands uses user memory :
The challenge: 200 pallets per hour need to be routed to correct loading doors. Looking up each destination in database slows workers down.
The solution:
At packing station, worker writes destination store number to tag’s user memory
Pallet moves down conveyor
Fixed readers at each junction read the user memory
Store number tells conveyor which direction to send pallet
No database lookup required—all data on the tag
Code snippet from their system:
python
# At packing station - write destination
def write_destination(epc, store_number):
# Convert store number to bytes (e.g., "STORE42" -> ASCII)
data = store_number.encode('ascii').ljust(16, b'\x00')
reader.write_tag_memory(epc, "USER", 0, data)
print(f"Written {store_number} to tag {epc}")
# At sorting junction - read destination
def on_tag(tag):
user_data = reader.read_tag_memory(tag.epc, "USER", 0, 8)
if user_data:
destination = user_data.decode('ascii').strip('\x00')
print(f"Send pallet to {destination}")
conveyor.set_direction(destination)
User Memory Size by Tag Type
Different tags have different user memory capacities:
Tag Type
User Memory Size
Standard UHF (ALN-9740)
128 bits (16 bytes)
High-memory UHF (Tego)
Up to 32KB
Mifare Classic 1K
752 bytes (excluding sectors 0 and trailers)
Mifare Classic 4K
3440 bytes
ICODE SLIX
112 bytes
NTAG213
144 bytes
Check your tag datasheet before writing code.
Security Considerations
When storing sensitive data in user memory :
Use access passwords: Protect user memory with strong passwords. Change from defaults.
Consider encryption: For highly sensitive data, encrypt before writing to tag. The tag cannot encrypt for you—encryption happens in reader or middleware .
Lock when appropriate: Once data is written, consider locking user memory to prevent tampering.
Manage keys carefully: Access passwords need secure storage and management .
Testing User Memory Read/Write
Before deploying, test the full cycle :
Write known data to user memory
Read it back to verify
Test with different offsets and lengths
Try with access password enabled
python
# Test write and read
test_data = bytes.fromhex("A1B2C3D4A5B6C7D8")
reader.write_tag_memory(epc, "USER", 0, test_data)
read_back = reader.read_tag_memory(epc, "USER", 0, len(test_data)//2)
assert read_back == test_data, "Write/read verification failed"
print("User memory test passed")
The Bottom Line
How to read user memory information from RFID reader comes down to three steps:
Identify if your tag has user memory and its size
Authenticate if the memory is password protected
Target the USER memory bank with correct offset and length
Most people fail because they never move past reading EPC. User memory requires explicit commands and sometimes passwords. But once you have it working, the possibilities expand—offline data, authentication, rich item history.
CYKEO readers and SDKs handle the complexity. Our CK-B3L handheld and CK-B5L Bluetooth reader both support full user memory access across UHF and HF tags.
Start with the Tag Manager software to see what is on your tags. Then move to SDK for automation. And when you get stuck, CYKEO support has seen every user memory quirk there is.
Need to read user memory in your application? CYKEO offers SDKs for Python, Java, C# with full user memory support. Contact our team for developer samples and documentation.
CYKEO Passive RFID Tags are made for wet and high-humidity environments where standard labels do not last. This rfid passive tag is often used around liquids, chemicals and temperature changes, providing stable reading distance and long data life for industrial tracking.
CYKEO CYKEO-PCB1504 Metal RFID Tags is a compact anti-metal UHF RFID solution built for direct mounting on metal surfaces. With stable 8-meter read range, Ucode-8 chip, and long data retention, this rfid metal tag fits tools, containers, automotive parts, and industrial asset tracking.
CYKEO CYKEO-PCB7020 On-Metal RFID Tags are designed for reliable tracking on steel and metal surfaces. Built with an FR4 epoxy body and industrial-grade chips, these On-Metal RFID Tags deliver stable performance, long data life, and chemical resistance, making them a dependable RFID anti-metal tag for harsh environments.
The CYKEO CYKEO-60-25 Anti-Metal RFID Tag is built for metal surfaces where standard tags fail. Designed for long-range performance, harsh environments, and stable data retention, this Anti-Metal RFID Tag is ideal for industrial assets, containers, and equipment tracking using on metal RFID tags.
The CYKEO RFID Laundry Tag is designed for long-term textile identification in harsh laundry environments. Built to withstand high heat, chemicals, and repeated washing, this RFID Laundry Tag delivers stable performance for hotels, hospitals, and industrial laundry operations using laundry rfid tags at scale.
The CYKEO CYKEO-125-7 RFID Book Tag is designed for reliable book and document tracking in libraries and archives. This RFID Book Tag delivers long read range, dense placement support, and stable performance on shelves, making it a practical rfid tag on books for library automation, file management, and archival systems.
CYKEO RFID tags in hospitals are designed for sterile environments where accuracy matters. These autoclavable RFID tags support long-term tracking of surgical tools, implants, and medications, helping hospitals improve visibility, compliance, and patient safety.
CYKEO RFID Cable Tie Tag is built for reliable identification on metal surfaces. This UHF RFID Cable Tie Tag is widely used in rfid tags for inventory systems, industrial asset management and Hospital RFID Tags, offering stable read performance, long service life and global EPC Gen2 compatibility.
CYKEO RFID Asset Tag is designed for stable identification of metal assets in industrial environments. This UHF RFID Asset Tag is commonly used for rfid tag asset tracking on equipment, tools and containers, providing reliable reads, long service life and ISO/IEC 18000-6C support.
CYKEO UHF RFID Card is designed for fast identification and long-term use in industrial and commercial systems. Supporting ISO 18000-6C, this UHF RFID Card works at 860–960 MHz and is suitable for custom RFID cards used in asset tracking, access control and inventory management.
CYKEO HF RFID Cards are designed for secure and stable access control systems. These 13.56 MHz RFID key cards support ISO 14443-A, reliable rewriting and long service life, making HF RFID Cards suitable for offices, campuses, events and membership management.
CYKEO UHF RFID Tag is designed for reliable tracking of metal jewelry and high-value items. This Jewelry RFID Tag supports long-range reading up to 8 meters, anti-counterfeit protection and stable performance on metal, making it suitable for retail, inventory control and asset management.
CYKEO Embedded RFID Modules are designed for compact industrial and IoT devices that require stable UHF performance. These UHF RFID Modules support global protocols, flexible power control, and reliable multi-tag reading for smart cabinets, production lines, and asset tracking systems.
CYKEO Embedded RFID Module is built for compact IoT and industrial devices that need stable UHF performance. This UHF module supports global protocols, low power operation, and reliable multi-tag reading for smart lockers, production lines, and always-on RFID systems.
CYKEO CYKEO-M1 drone rfid module is a compact UHF RFID reader module designed for drones and UAV platforms. It supports long-range aerial scanning, fast multi-tag reading, and stable performance in wind, vibration, and outdoor environments.
CYKEO CYKEO-M4 RC522 RFID Module is an industrial-grade UHF RFID reader with 4 ports, supporting ISO, EPC, and GB protocols. High-speed, accurate reading for IoT, automation, and warehouse applications.
CYKEO CYKEO-M8 Module RFID is an 8-port UHF R2000 RFID Module designed for high-density, multi-tag environments. Stable 33dBm output, ISO & GB protocol support, ideal for warehouses, factories, and automated systems.
CYKEO CYKEO-M16 RFID Module is a 16-port UHF RFID reader module based on the R2000 chipset. Designed for dense tag environments, it supports ISO and GB standards and delivers stable multi-antenna control for industrial automation.
The CYKEO CYKEO-M16L RFID Reader Module is a 16-channel UHF RFID core designed for dense tag environments. With adjustable 33dBm output, multi-protocol support, and stable multi-antenna control, this RFID Tag Reader Module fits industrial automation, warehouse systems, and large-scale IoT deployments.
CYKEO CYKEO-M8L module RFID is a compact industrial UHF module built for dense tag and multi-antenna environments. With 8 RF ports, adjustable 33 dBm output, and ISO & GB protocol support, it is widely used in factories, warehouses, and automated tracking systems.
CYKEOCYKEO-M4L UHF RFID Module is a compact 4-channel RFID tag reader module designed for dense tag environments. Supporting ISO and GB protocols, it delivers stable reads up to 10 meters for industrial and IoT systems.
Cykeo CYKEO-A11 UHF RFID reader antenna delivers 11dBi gain, 840-960MHz frequency range, and IP65 ruggedness for retail, logistics, and industrial RFID systems. Features low VSWR and easy installation.
CYKEO Antenna RFID Reader delivers stable long-range UHF performance with a 10.5dBi directional design, built for warehouses, conveyor portals, and industrial RFID systems. This rfid reader antenna provides 20m+ read distance and rugged IP67 protection.
Cykeo CYKEO-A5B industrial Linear RFID Antenna delivers 5dBi gain, ≤1.5:1 VSWR, and IP65 rugged design for warehouse, production line, and logistics UHF systems.
Cykeo’s CYKEO-B12 Long Range RFID Antenna delivers 15m+ read range with 12dBi gain, IP65 rugged design, and global 840-960MHz UHF support. Ideal for warehouse/logistics asset tracking.
Cykeo CYKEO-B10 Long Distance RFID Antenna offers 10dBi gain, 840-960MHz frequency range, IP65 rating, and 20m+ coverage for logistics/warehousing/ETC systems. Low VSWR ensures stable signal transmission.
Cykeo CYKEO-A6 UHF RFID panel antenna features 6dBi gain, 840-960MHz broadband, IP65 metal-ready housing for logistics/smart retail. 18mm ultra-thin design with tool-free mounting.
Cykeo CK-A3 industrial antenna RFID UHF offers 5m+ tag detection, ≤1.3:1 VSWR, IP65 rugged design, and global UHF spectrum compatibility (840-960MHz) for warehouses, factories, and retail.
Cykeo CYKEO-B5 directional RFID antenna provides 5dBi gain with 60° narrow beamwidth for precise inventory tracking. IP65-rated, global UHF frequency support, and low VSWR.
Create your own high-performance DIY RFID antenna! 5dBi gain, 840-960MHz tunable, step-by-step guides. Compatible with Arduino, Raspberry Pi, and commercial UHF readers.
Cykeo CYKEO-A7 Flexible RFID Antenna features 840-960MHz wideband tuning, 7dBi gain, and IP68 rating for medical/retail/industrial curved surface deployments. 98% read accuracy with peel-and-stick installation.
Cykeo CYKEO-B5A industrial Passive RFID Antenna delivers 5dBi gain, 70° beamwidth, and -40°C~55°C operation for warehouses/smart cabinets. Compatible with Zebra/Impinj readers.
Cykeo’s CYKEO-A9B High Gain RFID Antenna delivers 15m+ read range with 9dBi amplification. Features IP54 rugged design, 840-960MHz bandwidth, and 80° beamwidth for warehouse/manufacturing RFID systems.
Cykeo’s enterprise-grade 8dbi Impinj RFID Antenna 10m+ read range with 840-960MHz tuning. Features IP65 housing, 1.4 VSWR, 35° beamwidth for retail/warehouse RFID systems.
Cykeo CYKEO-A9 industrial UHF RFID antenna delivers 9dBi gain, 840-960MHz frequency range, and IP65 protection for warehouse/logistics/retail RFID systems. Features N-type connector and ≤1.3:1 VSWR.
CYKEO UHF RFID Antenna built for long-distance and industrial applications. This antenna rfid uhf delivers strong gain, outdoor durability, and reliable tag performance in warehouses, yards, and vehicle ID systems.
CYKEO Antenna RFID delivers reliable long-range UHF performance in warehouses, retail shelves, and cold-chain environments. This compact uhf rfid antenna provides stable reads with circular polarization and ultra-wide 840–960 MHz support, ideal for industrial tracking, smart shelves, and asset monitoring.
Cykeo’s CYKEO-C8 UHF RFID antennas delivers 8dBi gain, 840-960MHz full-band coverage, and IP65 ruggedness for manufacturing/warehouse RFID systems. Industrial RFID Antennas Features
Cykeo’s 8dBi UHF RFID antenna and reader kit delivers 10m+ range, 840-960MHz broadband, and IP65 ruggedness for factories, warehouses, and logistics. ISO 18000-6C & EPC Gen2 certified.
Cykeo’s CYKEO-A12C UHF Large RFID Antenna delivers 12dBi gain, 840-960MHz global frequency, IP65 ruggedness for logistics/warehousing/automotive. 40° beamwidth ensures stable 15m+ tag reads.
CYKEO Near Field RFID Antenna provides precise 5–30 cm reading for shelves, cabinets, and workstations. This compact rfid shelf antenna delivers stable short-range performance around metal and clutter, ideal for pharmacies, libraries, and electronics sorting.
Cykeo’s industrial long range RFID reader delivers 20-meter scanning, 500+ tags/sec speed, and IP67 waterproof design for automated warehouses, logistics, and harsh environment applications.
Cykeo’s CYKEO-RA6L industrial RFID long range reader features 20m read distance, 500 tags/sec speed, and IP67 protection. Ideal for warehouse automation, manufacturing WIP tracking, and smart logistics. Supports ISO 18000-6C/6B protocols.
CYKEO Long Range RFID Tag Reader built for outdoor and industrial operations. This Outdoor RFID Reader delivers 20m read distance, fast tag processing, and IP67 durability for wide-area tracking.
Cykeo CYKEO-RA12L industrial Long Range RFID Reader delivers 20m read range, 200+ tags/sec scanning, and IP67 protection for manufacturing/logistics applications. Supports ISO 18000-6C/GB protocols.
Explore groundbreaking RFID applications beyond logistics, including interactive art, wildlife tracking, and smart agriculture. Discover how Cykeo pioneers creative RFID solutions.
Discover the best RFID-barcode hybrid scanners for small retail stores in 2024. Compare affordability, durability, and software compatibility for seamless inventory management.
Wondering "what does RFID interface module model 941B0405 do in trucks"? Get the plain-English answer from CYKEO. Learn how this device controls truck access, boosts fleet security, and simplifies management.