RDM6300 RFID Reader Module

View on Amazon
Overview
About RDM6300 RFID Reader Module
The RDM6300 is a compact and efficient RFID reader module designed for 125kHz RFID tags. Using a UART interface, it seamlessly integrates with ESP32, Arduino, and other microcontrollers, making it ideal for access control, inventory management, and identification systems.
⚡ Key Features
- 125kHz RFID Compatibility – Reads low-frequency (LF) RFID tags.
- UART Communication – Simple integration with microcontrollers via serial output.
- Compact & Low Power – Ideal for battery-powered and embedded applications.
- Secure Identification – Transmits unique tag IDs for authentication purposes.
With its ease of use and reliable performance, the RDM6300 is a great choice for RFID-based security and tracking applications. 🚀
Get Your RDM6300
💡 Prices are subject to change. We earn from qualifying purchases as an Amazon Associate.
RDM6300 Specifications
Complete technical specification details for RDM6300 RFID Reader Module
📊 Technical Parameters
RDM6300 Pinout
The RDM6300 has 4 pins: VCC, GND, TX (for data output), and RX (rarely used).
Visual Pinout Diagram

Pin Types
Quick Tips
low-frequency RFID reader,Compatible with EM4100 protocol tags
output at 9600 baud (default),[object Object]
tag detection - no polling required,Outputs unique tag ID when card detected
Pin Descriptions
| Pin Name | Type | Description | Notes |
|---|---|---|---|
1 VCC | Power | Power supply input (3.3V to 5V). Flexible voltage range. | Both 3.3V and 5V compatible. |
2 GND | Power | Ground connection. Connect to system ground. | |
3 TX | UART | UART transmit data. Sends 125kHz RFID tag UID to microcontroller. | Connect to ESP32 RX pin. Main data output. |
4 RX | UART | UART receive data. Bidirectional communication (rarely used). | Optional - most applications only use TX. |
Wiring RDM6300 to ESP32
To interface the RDM6300 with an ESP32, connect VCC to 3.3V or 5V, GND to ground, and TX to an ESP32 RX pin (GPIO 16) to receive tag UID data.
Visual Wiring Diagram

Connection Status
Protocol
Pin Connections
| RDM6300 Pin | Connection | ESP32 Pin | Description |
|---|---|---|---|
1 VCC Required | 3.3V or 5V | Power supply. Use 3.3V or 5V depending on your setup. | |
2 GND Required | GND | Ground connection. | |
3 TX Required | GPIO 16 (RX2) | Reader transmits tag UID to ESP32. | |
4 RX Optional | Optional GPIO 17 | Bidirectional communication (rarely needed). |
Object]
UART2 on ESP32 (GPIO 16/17) for hardware serial
Object]
tag detection - continuously outputs when tag present
Object]
Object]
pin usually not needed - reader operates in output-only mode
includes coil antenna - ensure proper orientation
Object]
RDM6300 Troubleshooting
Common issues and solutions to help you get your sensor working
Common Issues
Issue: The RDM6300 module does not power up or respond to commands.
Possible causes include insufficient power supply, incorrect wiring, or faulty hardware.
Solution: Ensure the module is connected to a stable power source within the recommended voltage range of 5V. Verify that all connections are secure and correctly configured. If the problem persists, consider testing the module with a different power source or replacing it.
Issue: The module fails to communicate with the microcontroller over the chosen interface (typically UART).
Possible causes include incorrect wiring, improper interface selection, or incompatible voltage levels.
Solution: Double-check the wiring to ensure correct connections for UART communication. For UART, verify the TX and RX lines are properly connected. Ensure that the microcontroller's UART interface is enabled and configured correctly.
Issue: The module initializes correctly but fails to read RFID tags.
Possible causes include incorrect antenna orientation, insufficient power supply, or interference from nearby electronic devices.
Solution: Ensure the module's antenna is properly oriented and positioned near the tags. Verify that the power supply provides adequate current for the module's operation. Keep the module away from sources of electromagnetic interference.
Issue: The module detects tags intermittently or with delays.
Possible causes include low-quality tags, environmental interference, or firmware issues.
Solution: Test with different tags to rule out tag quality issues. Ensure the operating environment is free from strong electromagnetic interference. Update the module's firmware to the latest version to benefit from bug fixes and improvements.
Issue: The module operates erratically or produces errors during operation.
Possible causes include outdated or incompatible libraries, incorrect initialization, or software bugs.
Solution: Ensure that the latest version of the RDM6300 library is installed and compatible with your development environment. Review the initialization code to confirm that the module is set up correctly. Consult the module's documentation and community forums for guidance on proper usage.
Debugging Tips
Use the Serial Monitor to check for error messages and verify the sensor's output. Add debug prints in your code to track the sensor's state.
Use a multimeter to verify voltage levels and check for continuity in your connections. Ensure the power supply is stable and within the sensor's requirements.
Additional Resources
RDM6300 Programming Examples
Ready-to-use code examples for different platforms and frameworks
#include <SoftwareSerial.h>
#define RX_PIN 10
#define TX_PIN 11
SoftwareSerial rfid(RX_PIN, TX_PIN);
void setup() {
Serial.begin(115200);
rfid.begin(9600);
Serial.println("RDM6300 initialized. Waiting for RFID tags...");
}
void loop() {
if (rfid.available() > 0) {
String tag = "";
while (rfid.available() > 0) {
char c = rfid.read();
tag += c;
}
Serial.print("Tag detected: ");
Serial.println(tag);
}
delay(500);
}#include <stdio.h>
#include "driver/uart.h"
#include "freertos/task.h"
#define RX_PIN 16
#define TX_PIN 17
#define UART_PORT UART_NUM_1
void init_uart() {
uart_config_t uart_config = {
.baud_rate = 9600,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE
};
uart_param_config(UART_PORT, &uart_config);
uart_set_pin(UART_PORT, TX_PIN, RX_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
uart_driver_install(UART_PORT, 1024, 0, 0, NULL, 0);
}
void app_main() {
init_uart();
printf("RDM6300 initialized. Waiting for tags...\n");
while (true) {
char data[128];
int len = uart_read_bytes(UART_PORT, data, sizeof(data) - 1, 100 / portTICK_PERIOD_MS);
if (len > 0) {
data[len] = '\0';
printf("Tag detected: %s\n", data);
}
vTaskDelay(pdMS_TO_TICKS(500));
}
}uart:
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 9600
sensor:
- platform: custom
lambda: |-
return {nullptr};
sensors:
- name: "RFID Tag UID"
binary_sensor:
- platform: template
name: "Tag Detected"platformio.ini
[env:rdm6300]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200main.cpp
#include <HardwareSerial.h>
HardwareSerial rfid(1);
void setup() {
Serial.begin(115200);
rfid.begin(9600, SERIAL_8N1, 16, 17); // RX, TX
Serial.println("RDM6300 initialized. Waiting for tags...");
}
void loop() {
if (rfid.available() > 0) {
String tag = "";
while (rfid.available() > 0) {
char c = rfid.read();
tag += c;
}
Serial.print("Tag detected: ");
Serial.println(tag);
}
delay(500);
}from machine import UART, Pin
import time
# Initialize UART
uart = UART(2, baudrate=9600, tx=17, rx=16)
print("RDM6300 initialized. Waiting for tags...")
while True:
if uart.any():
tag = uart.read().decode('utf-8')
print("Tag detected:", tag)
time.sleep(0.5)Wrapping Up RDM6300
The ESP32 RDM6300 RFID Reader Module is a powerful NFC sensor that offers excellent performance and reliability. With support for multiple development platforms including Arduino, ESP-IDF, ESPHome, PlatformIO, and MicroPython, it's a versatile choice for your IoT projects.
Best Practices
For optimal performance, ensure proper wiring and follow the recommended configuration for your chosen development platform.
Safety First
Always verify power supply requirements and pin connections before powering up your project to avoid potential damage.
Ready to Start Building?
Now that you have all the information you need, it's time to integrate the RDM6300 into your ESP32 project and bring your ideas to life!
Explore Alternative Sensors
Looking for alternatives to the RDM6300? Check out these similar sensors that might fit your project needs.

PN532 NFC Module
The PN532 NFC module provides a powerful and flexible platform for integrating NFC and RFID capabilities into your projects. Its...

RC522 RFID/NFC Module
The RC522 RFID/NFC module offers an affordable and reliable solution for integrating NFC and RFID functionality into your projects. Its...





