Hi,
Thanks for catching that — you were right, and it turned out to matter a lot.
``
I dug into the actual command bytes being sent for the continuous-read (0x2F) call and found the bug. My "no tags found" claim (0x0100) was wrong because the continuous-read command itself was malformed — one byte in the sub-command blob was incorrect. Comparing against your own SparkFun_UHF_RFID_Reader library (startReading() in SparkFun_UHF_RFID_Reader.cpp), the reference blob is:
``
00 00 01 22 00 00 05 07 22 10 00 1B 03 E8 01 FF
My code had byte 9 wrong — 0x1B instead of 0x10:
00 00 01 22 00 00 05 07 22 1B 00 1B 03 E8 01 FF
``
Once corrected, the reader immediately started returning proper status codes: 0x0 (success) on the 0x2F start command, and 0x400 (genuinely no tag found) on 0x22 sub-frames when no tag was in range — exactly matching your correction. So the "RF stage isn't generating energy" conclusion in my last email was based on a false signal. The protocol layer is now working correctly.
``
Separately, I also found the module was responding at 115200 baud, not the 9600 my script was configured for (it must have reverted to default after the earlier unresponsive/hung episode). Fixed that too.
``
CURRENT STATE (with both bugs fixed):
With the external antenna connected and 12 test tags placed throughout the cabinet — one in each extreme corner, halfway points, and center — only ONE tag reads, consistently, across repeated scans:
``
EPC 30340476F44600D61E81D922 — reads at -63 to -66 dBm across multiple 15-second scans, 100% reproducible.
``
The other 11 tags, spread across the rest of the cabinet, never read at all, in any run.
``
Trace file from a full 15-second scan (all setup commands, start command, raw RX bytes, and parsed tag reads) is attached below.
``
1. Given clean protocol behavior now (correct status codes, no framing errors), does a single consistent -63 to -66 dBm read with everything else silent look like an antenna/RF gain or positioning issue rather than a module problem?
2. Any recommended power/gain settings beyond max (27.00 dBm, which we're already using) worth trying?
``
Re: Universal Reader Assistant — I don't have Windows access (Mac only), so I'm not able to run URA. Happy to provide any additional serial traces you need instead.
``
=== TRACE FILE ===
=== M7E Trace — 2026-07-02 06:38:19 ===
Baud: 115200
TX [Set Gen2 protocol] 0x93: FF02930005517D
RX [Set Gen2 protocol]: FF00930000371A
TX [Set region NA] 0x97: FF0197014BBC
RX [Set region NA]: FF00970000779E
TX [Set power 27.00dBm] 0x92: FF02920A8C4BD5
RX [Set power 27.00dBm]: FF00920000273B
TX [Set antenna port 1] 0x91: FF02910101703B
RX [Set antenna port 1]: FF009100001758
TX [Set filter/config] 0x9A: FF039A010C00A35D
RX [Set filter/config]: FF009A0000A633
TX [Start continuous read]: FF102F00000122000005072210001B03E801FFDD2B
--- Scanning 15 seconds, 12 tags placed at all cabinet extremes + center ---
RX total bytes: 250
RX raw hex: FF042F0000012200006DC3FF0022040084E0FF0022040084E0FF0022040084E0FF2822000010001B01FF0101C0110E2612000000790034050000000080300030340476F44600D61E81D9227C7D11ABFF0022040084E0FF2822000010001B01FF0101BF110E241E000002970004050000000080300030340476F44600D61E81D9227C7DBE47FF0022040084E0FF0022040084E0FF0022040084E0FF0022040084E0FF0022040084E0FF0022040084E0FF0022040084E0FF0022040084E0FF2822000010001B01FF0101C0110E2612000002490022050000000080300030340476F44600D61E81D9227C7D7D8CFF0022040084E0FF0022040084E0
Parsed tag reads: 3
EPC 30340476F44600D61E81D922: -64 dBm
EPC 30340476F44600D61E81D922: -65 dBm
EPC 30340476F44600D61E81D922: -64 dBm
``
Thanks again for the correction — it pointed us straight at the real bug.