CLRC663 Documentation covers quick start steps, SPI/I2C/UART interface selection, ESP32 and Arduino wiring, LPCD low-power mode, and troubleshooting for the ELECHOUSE CLRC663 Reader Module V1.
Quick Start
- Select the interface via the on-board DIP switch: SPI, I2C, or UART. No soldering required.
- Wire the module to your host MCU using the selected interface pins.
- Power the module with 5V (RF supply) and ensure the logic/IO pins are connected to your host.
- Install the ELECHOUSE CLRC663 Arduino library from GitHub.
- Open a basic card-detection example, compile, upload, and tap a tag.
Key Technical Facts
| Parameter | Value |
|---|---|
| Chip | NXP CLRC66303 |
| Operating frequency | 13.56 MHz |
| RF supply (Pin 1) | 4.5V – 5.5V (5.0V recommended for maximum range) |
| Logic / IO voltage (Pin 8) | 3.3V – 5.5V |
| Interfaces | SPI, I2C, UART (DIP switch selection) |
| Typical read range | Up to 9 cm (Mifare Classic, 5V RF) |
| LPCD | Hardware low-power card detection |
| SAM interface | Dedicated I2C port for NXP SAM AV2/AV3 |
Interface Selection (DIP Switch)
The ELECHOUSE CLRC663 module selects the active interface via an on-board DIP switch. Refer to the PCB silkscreen for switch positions.
| Interface | DIP Switch Position | Best For |
|---|---|---|
| SPI | See silkscreen | Fast, reliable, most Arduino/ESP32 examples |
| I2C | See silkscreen | Fewer wires, shared bus |
| UART | See silkscreen | Simple serial communication |
Important: Set the DIP switch before powering the module. Do not change the interface while powered.
ESP32 Wiring (SPI)
| CLRC663 Pin | ESP32 | Notes |
|---|---|---|
| 5V (RF) | VIN or external 5V | RF antenna supply — must be 5V for max range |
| 3V3 (Logic) | 3.3V | IO logic supply |
| GND | GND | Common ground |
| MOSI | GPIO23 | SPI MOSI |
| MISO | GPIO19 | SPI MISO |
| SCK | GPIO18 | SPI clock |
| CS / NSS | GPIO5 | SPI chip select |
| IRQ | GPIO4 | Interrupt (optional) |
Arduino Uno Wiring (SPI)
| CLRC663 Pin | Arduino Uno | Notes |
|---|---|---|
| 5V (RF) | 5V | RF supply |
| 3V3 (Logic) | 3.3V | Logic supply |
| GND | GND | Common ground |
| MOSI | D11 | SPI MOSI |
| MISO | D12 | SPI MISO |
| SCK | D13 | SPI clock |
| CS / NSS | D10 | SPI chip select |
Supported Protocols
| Protocol | Standard | Typical Tags | Support |
|---|---|---|---|
| ISO 14443A | ISO 14443A | Mifare Classic, Ultralight, NTAG, DESFire | ✓ |
| ISO 14443B | ISO 14443B | Bank cards, national ID chips | ✓ |
| ISO 15693 | ISO 15693 | ICODE SLI, ICODE SLIX2, industrial vicinity tags | ✓ |
| FeliCa | ISO 18092 | Suica, Octopus, PASMO | ✓ |
| Card emulation | — | — | ✗ Reader/Writer only |
Example Code (SPI, ESP32)
#include <SPI.h>
#include "CLRC663.h" // ELECHOUSE CLRC663 library
#define CS_PIN 5
#define IRQ_PIN 4
CLRC663 rfid(CS_PIN, IRQ_PIN);
void setup() {
Serial.begin(115200);
SPI.begin();
rfid.begin();
rfid.softReset();
Serial.println("CLRC663 ready");
}
void loop() {
uint8_t uid[10];
uint8_t uidLength = rfid.readPassiveTargetID(uid);
if (uidLength > 0) {
Serial.print("Tag UID: ");
for (int i = 0; i < uidLength; i++) {
Serial.printf("%02X ", uid[i]);
}
Serial.println();
delay(1000);
}
}
Refer to the ELECHOUSE GitHub repository for full library installation instructions and additional examples (ISO 15693 inventory, LPCD wake-on-card).
LPCD (Low Power Card Detection)
The CLRC663 supports hardware LPCD, allowing battery-powered devices to sleep and wake only when a card is presented. This is ideal for:
- Smart locks and door access that must run on battery for months
- Portable NFC readers with long standby time
- Industrial readers powered by energy harvesting
In LPCD mode, the CLRC663 briefly activates the RF field at a configurable interval, checks for a card, and sends an interrupt signal to the host if detected. Average current draw in LPCD mode can be under 1 mA depending on poll interval.
CLRC663 vs PN532 — When to Choose Each
| CLRC663 | PN532 | |
|---|---|---|
| ISO 15693 | ✓ | ✗ |
| Typical read range | Up to 9 cm | 5–8 cm |
| LPCD | ✓ Hardware | Limited |
| Card emulation | ✗ | ✓ |
| Interface options | SPI / I2C / UART (DIP switch) | SPI / I2C / UART (solder jumper) |
| Arduino library ecosystem | Smaller | Large |
| SAM support | ✓ Dedicated I2C port | ✗ |
Troubleshooting
- No response from module: Verify DIP switch matches your wiring mode. Confirm 5V RF supply and 3.3V logic supply are both connected.
- Short read range: Ensure RF supply is 5.0V. At 3.3V RF supply, range is significantly reduced.
- Cannot read ISO 15693 tags: Confirm DIP switch is set to the selected interface and library supports ISO 15693 mode. Use the ISO 15693 inventory example sketch.
- SPI conflicts: If sharing the SPI bus with other devices, ensure CS lines are properly controlled.
