Custom ELRS RX firmware for RFM96 module (SX1276, +20dBm/100mW).
- MCU: ESP32-C3 SuperMini
- Radio: RFM96 (SX1276, +20dBm/100mW)
- Band: US433W (423.5-438MHz, 20 channels)
Works with TX using E32-400M30S module (same band).
ESP32-C3 SuperMini RFM96
┌─────────────────┐ ┌─────────────────┐
│ │ │ │
│ GPIO20 (RX) ────┼────────┼─ (to FC) │
│ GPIO21 (TX) ────┼────────┼─ (from FC) │
│ │ │ │
│ GPIO1 ─────────┼────────┼─ DIO0 │
│ GPIO2 ─────────┼────────┼─ DIO1 │
│ GPIO5 ─────────┼────────┼─ MISO │
│ GPIO4 ─────────┼────────┼─ MOSI │
│ GPIO6 ─────────┼────────┼─ SCK │
│ GPIO7 ─────────┼────────┼─ NSS │
│ GPIO3 ─────────┼────────┼─ RST │
│ │ │ │
│ GPIO8 ─────────┼────────┼─ LED │
│ │ │ │
│ 3V3 ─────────┼────────┼─ VCC (3.3V) │
│ GND ─────────┼────────┼─ GND │
└─────────────────┘ └─────────────────┘
| ESP32-C3 Pin | RFM96 Pin | Function |
|---|---|---|
| GPIO20 | - | Serial RX (to FC) |
| GPIO21 | - | Serial TX (from FC) |
| GPIO1 | DIO0 | Radio interrupt |
| GPIO2 | DIO1 | Radio interrupt |
| GPIO5 | MISO | SPI data in |
| GPIO4 | MOSI | SPI data out |
| GPIO6 | SCK | SPI clock |
| GPIO7 | NSS | SPI chip select |
| GPIO3 | RST | Radio reset |
| GPIO8 | - | LED |
| 3V3 | VCC | Power 3.3V |
| GND | GND | Ground |
Note: RFM96 has no external PA, so no RXEN/TXEN pins needed.
Via USB-C (built-in bootloader):
- Hold BOOT button
- Connect USB-C cable
- Release BOOT button
Full flash (virgin chip):
esptool.py --chip esp32c3 --port /dev/ttyACM0 --baud 460800 write_flash \
0x0 bootloader_rx.bin \
0x8000 partitions_rx.bin \
0xe000 boot_app0_rx.bin \
0x10000 ELRS_*_RX_ESP32C3_RFM96_US433W.binUpdate only (already has ELRS):
esptool.py --chip esp32c3 --port /dev/ttyACM0 --baud 460800 \
write_flash 0x10000 ELRS_*_RX_ESP32C3_RFM96_US433W.bin- Power cycle the module
- Connect to WiFi:
ExpressLRS RX - Configure at
10.0.0.1
See Releases
| File | Description | Address |
|---|---|---|
bootloader_rx.bin |
ESP32-C3 bootloader | 0x0 |
partitions_rx.bin |
Partition table | 0x8000 |
boot_app0_rx.bin |
Boot selector | 0xe000 |
ELRS_*_RX_ESP32C3_RFM96_US433W.bin |
Receiver firmware | 0x10000 |
ESP32C3_SuperMini_RX.json |
RX hardware layout | - |

