Because each Feather uses a different processor, there is some light wiring that needs to be done to configure the radio pins. In particular, an interrupt-capable pin is required for IRQ but there is no one interrupt pin that is consistent across all Feather boards!

So, while MOSI/MISO/SCK are fixed, you will want to solder three short wires for CS, RST and IRQ

Here is our tested/suggested wiring configurations and code snippets for defining the pins…

ESP8266 Wiring

The ESP does not have a lot of spare pins, and the SPI pins are taken, so here's what we've tested that works. For LoRa radio projects:

#define RFM95_CS  2    // "E"
#define RFM95_RST 16   // "D"
#define RFM95_INT 15   // "B"

And for RFM69 projects:

#define RFM69_CS      2
#define RFM69_RST     16
#define RFM69_IRQ     15
#define RFM69_IRQN    digitalPinToInterrupt(RFM69_IRQ )

This leaves the I2C default pins (4 and 5) available

Feather 32u4

The 32u4 doesn't have a lot of IRQs and the only ones available are on pins 0, 1, 2, 3 which are also the Serial RX/TX and I2C pins. So it's not great because you have to give up one of those pins. Here’s a pinout that works for LoRa radio projects:

#define RFM95_CS  10   // "B"
#define RFM95_RST 11   // "A"
#define RFM95_INT 2    // "SDA" (only SDA/SCL/RX/TX have IRQ!)

And for RFM69 radio projects:

#define RFM69_CS      10   // "B"
#define RFM69_RST     11   // "A"
#define RFM69_IRQ     2    // "SDA" (only SDA/SCL/RX/TX have IRQ!)
#define RFM69_IRQN    digitalPinToInterrupt(RFM69_IRQ )

Feather M0

The Feather M0 is really easy to use, a ton of interrupts so wiring is easy. This works for LoRa radio projects:

#define RFM95_CS  10   // "B"
#define RFM95_RST 11   // "A"
#define RFM95_INT  6   // "D"

And for RFM69:

#define RFM69_CS      10   // "B"
#define RFM69_RST     11   // "A"
#define RFM69_IRQ     6    // "D"
#define RFM69_IRQN    digitalPinToInterrupt(RFM69_IRQ )

Other Boards

For other boards like the ESP32 or nRF52, any pin can be an interrupt, so feel free to use any wiring setup you like! Some example projects (as in the RadioHead Arduino library) may already have some pins defined for various boards, so you might want to follow those.

This guide was first published on Aug 24, 2016. It was last updated on Jul 17, 2024.

This page (Wiring) was last updated on Mar 08, 2024.

Text editor powered by tinymce.