RDM6300 125 kHz RFID reader (EM4100)
RDM6300 EM4100 125 kHz RFID reader pinout (TX, RX, GND, +5V, ANT1, ANT2, LED), 9600-baud UART, divider for ESP32/Pico and why MIFARE cards don’t read.
Community draft — report a mistake
3.3 V or 5 V? The module needs 5 V and its TX outputs 5 V. On ESP32 and Pico put a 1 kΩ / 2 kΩ divider between RDM6300 TX and the board’s RX. Uno connects directly. RX on the module is unused.
The RDM6300 reads 125 kHz EM4100-family tags — the read-only proximity cards and key fobs used for many office doors, hostel gates and attendance machines. When a tag enters the field, it sends a 14-byte packet (start byte, 10 ASCII hex characters of ID, checksum, end byte) over a 9600-baud UART. No library is needed: read the 14 bytes, check the XOR checksum and turn the 10 hex characters into the card number — the guides show the dozen lines it takes.
Read range is about 3–5 cm with the supplied coil. Mount the coil flat behind a plastic panel; metal behind or around it kills the range, and the ESP32’s Wi-Fi can add noise if they’re close.
Know the card type. 125 kHz and 13.56 MHz cards look identical. The RDM6300 only reads the first; if a card doesn’t respond, it’s probably MIFARE. EM4100 IDs are fixed and trivially cloned, so use them for convenience (attendance, a locker), not security.
Prices are indicative (Nov 2026) and vary by seller.
Pinout
| Pin | What it does |
|---|---|
TX | UART data out, 9600 baud — to the board’s RX (5 V level) |
RX | UART in — not used, leave unconnected |
GND | Ground |
+5V | 5 V supply (about 50 mA) |
ANT1 | Antenna coil lead (2-pin header — the coil has no polarity) |
ANT2 | Antenna coil lead |
LED | Card-present indicator output (3-pin header, optional) |
Use it with
Common errors
Nothing happens when a card is tapped
Check the card is 125 kHz (EM4100 / TK4100 — thick white "proximity" cards and grey fobs). MIFARE / 13.56 MHz cards, bank cards and phones won’t read; use an RC522 or PN532 for those.
Same card is reported many times
The module repeats the tag ID while the card is in the field. Remember the last ID and the time you saw it, and ignore the same ID for about a second.
Garbage characters on ESP32
Use 9600 baud on a hardware UART (Serial2.begin(9600, SERIAL_8N1, RX, -1)), add the 5 V → 3.3 V divider on TX, and keep the antenna coil away from the ESP32 and metal.