LoRa Breakout Board & Raspberry Pi Hat

Like much of what I've done to date, there's nothing particularly original here except maybe combining the work of several others into a single PCB.

This board draws largely from that of Charles-Henri Hallard. I started out just wanting to add the ability to use a single HopeRF RFM95W breakout board to both plug directly onto a Raspberry Pi and also into a breadboard for prototyping work. While I did do this, it was a simple matter to clip that board to make two dedicated boards—one a breadboard-compatible breakout board and the other, like the Hallard board, that simply plugged into the Raspberry Pi or one of my A4a MCU boards. I tried to retain all of the features of the Hallard board, but I couldn't initially see the point of providing the jumper to select between the two SPI CE0/CE1 (chip select) options, since both of the relevant Raspberry Pi pins are covered by the Hallard board in any case, meaning that nothing else could use either so only one should really be necessary (the v1.x boards below use CE0). However, I've never used the (LoRa MAC in C) LMIC LoRa library, which the Hallard board appears primarily intended to support, so maybe I am yet to discover why this might be important, or even convenient. As a result, the v1.x boards are intended to clip onto the Raspberry Pi pins 11–24 as illustrated (v1.0 at left, v1.1 at right):

Raspberry Pi LoRaPi Pins

RFM95W Pins

Pi Zero + LoRaPi Pi Zero + LoRaPi-0
LoRa-Pi Hat (Left: v1.0; Right: v1.1)

This [v1.x] is also the board I use when I need an 'external' LoRa radio in my Arduino-based IoT applications.

More recently, however, I came to the [rather obvious] realisation that you couldn't clip onto the Raspberry Pi pins immediately adjacent to the v1.x Pi Hat pins, so I created yet another version (v2.0) that uses a 2 x 8 pin header, with a solder jumper to select between CE0/CE1, clipping on to Raspberry Pi pins 11–26:

Raspberry Pi LoRaPi 16 Pins

Pi Zero + LoRaPi-0-16

LoRa-Pi Hat (v2.0)

The Raspberry Pi connectivity on the present board also differs somewhat from the Hallard board in that I have broken out the DIO3-5 pins of the HopeRF LoRa module. All of the HopeRF LoRa DIO pins are thus available to the Raspberry Pi and, as per the Hallard board, DIO0-2 can also, optionally, be configured though a single connection point to support the LMIC library (which, as previously noted, I have not actually used to date).

The board is intended primarily to provide the hardware configuration illustrated below, the essential elements of which are discussed elsewhere on this site.

Raspberry Pi—LoRa-Pi Electrical Circuit
Pin Configuration
RFM95W Pi Pin Notes
GND 20 Ground
3V3 17 3V3
MISO 21 GPO9/SPI0 MISO
MOSI 19 GPIO10/SPI0 MOSI
SCK 23 GPIO11/SPI0 SCLK
NSS 24 GPIO8/SPI0 CE0
RESET 15 GPIO22
DIO0 22 GPIO25 (optional–solder bridge or
signal diode (LMIC))
DIO1 18
22
GPIO24 (optional–solder bridge)
GPIO25 (optional–signal diode (LMIC))
DIO2 16
22
GPIO23 (optional–solder bridge)
GPIO25 (optional–signal diode (LMIC))
DIO3 13 GPIO27 (optional–solder bridge)
DIO4 11 GPIO17 (optional–solder bridge)
DIO5 12 GPIO18 (optional–solder bridge)
16 GPIO23, Tx/Rx (optional–LMIC)
18 GPIO24, LED (optional–LMIC)

I have only ever used the HopeRF RFM95W transceiver module in my applications, but I believe that all of the HopeRF RFM9x(W) modules are pin compatible so there should be no problem using any of the breakout boards described below with any of the HopeRF RFM9x(W) modules.

Fabrication

The Eagle CAD and/or CAM (Gerber) files for each board can be downloaded via the relevant links provided below. I had my boards fabricated by JLCPCB but you should be able to simply submit files in one of these formats to any fabricator.

To order any of the boards from JLCPCB, download the necessary CAM files archive via the relevant link below, click here (you will be transferred to the JLCPCB website) and follow the instructions. I would have made my copies of the files on their website publicly accessible, so that anyone could just 'click-and-collect', but they currently have an unusual prerequisite to allowing files to be made publicly accessible—one has to use their board editor for an undisclosed period of time to gain the required status. If I am ever granted the privilege, I will make the relevant files public on their website and amend these instructions accordingly.

Combination HopeRF LoRa Breadboard/Pi

Refer to the comments below in relation to the specific derivatives of the board for details relating to the configuration of optional board features—basically, anything other than the HopeRF module itself is optional, including the choice between U.FL and SMA antenna connectors.

LoRaBBPi PCB (Top) LoRaBBPi PCB (Bottom)

The board design was prepared in Eagle CAD according to the following schematic:

LoRaPi PCB Schematic

PDF LoRaBBPi Schematic [19 KB]
PDF LoRaBBPi Eagle CAD Files [61 KB]
PDF LoRaBBPi CAM Files [54 KB]

HopeRF LoRa Breakout Board

For the breakout board, the Raspberry Pi connections were removed from the core design.

LoRaBB PCB (Top) LoRaBB PCB (Bottom)

Note that the two filtering capacitors are optional. I have never used them in any of the prototyping work that I've done—I've just soldered the HopeRF module to the breakout board and used it like that. At some point I'll see if I can find an explanation of when they might be useful, but in the mean time the connections are provided simply because all of the other boards I've seen seem to provide them.

PDF LoRaBB Eagle CAD Files [61 KB]
PDF LoRaBB CAM Files [54 KB]

Raspberry Pi HopeRF LoRa Hat

The pins on the RFM95W module are broken out to the LoRa-Pi Raspberry Pi interface as illustrated below.

LoRa-Pi-16 Interface

LoRa-Pi v1.x Interface Configuration
v1.0

For the Raspberry Pi hat, the combo board's 'wings' were simply clipped.

LoRaPi PCB (Top) LoRaPi PCB (Bottom)
PDF LoRaPi Eagle CAD Files [61 KB]
PDF LoRaPi CAM Files [54 KB]

Most of the additional components on this board were copied from the Hallard board. They generally relate to how the board is used with the LMIC LoRa library, which I do not currently use. I included them because they did not detract from anything I wanted to do and, should I end up using the LMIC library in any application, the necessary features would be there. All of the optional components are located on the under-side of the board and can be configured with the HopeRF module soldered in place, so they can be added or removed at any point.

In addition to the Hallard LMIC features, I added connections to all DIO outputs on the HopeRF module, although I've never used anything other the the DIO0 pin in any of my applications (but now they're all there if they're needed at any point). Note, however, that solder bridges or signal diodes must be connected for any of these to be used. You will generally need to at least connect up the solder bridge for the DIO0 line, although I don't think even this is necessary if you're just transmitting (and not receiving) data. The alternate, logical OR diode configuration for DIO0, DIO1 and DIO2 (see schematic above), is apparently used by the LMIC software, which once again I note that I haven't used to date.

v1.1

I didn't actually think about this until after I'd connected up my first LoRaPi adaptor board, but it quickly became apparent that it would have been a little neater if the RFM95W daughter board had been the same size as a Pi Zero. Version 1.1 of the board corrects this shortcoming—at 30 mm, it now fits neatly over the top of a Pi-Zero without any overhang (when using the U.FL antenna connector). I had to move the LEDs and their associated resistors to accommodate the change, but apart from that, there's no difference between the two versions (v1.0 and v1.1) other than the size of the PCB.

v1.2

Another minor adjustment to the PCB size to allow it to be mounted immediately adjacent to another board on a standard 100 mil grid and an amendment to the silk screen to label the pinouts according to their RFM95W connection rather than their Raspberry Pi connection.

LoRaPi PCB (Top) LoRaPi PCB (Bottom)
PDF LoRaPi 1.2 Eagle CAD Files [112 KB]
PDF LoRaPi 1.2 CAM Files [49 KB]
v2.0

After that last adjustment (v1.2), I started to wonder why I hadn't made the board a constant width at the same time. In practice, the configuration of the v1.x boards was such that they blocked access to the Raspberry Pi pins immediately adjacent to the LoRaPi hat anyway. By expanding the LoRaPi header to be 8 pins wide, and adjusting the board width to match, it became fully compatible with the Hallard board, by including the CE1 pin, while at the same time making the Raspberry Pi GPIO15 (UART0_RXD) pin more accessible. (As all of my other processor boards are designed around the 2×7 configuration, I still use the v1 hat for all of my non-Raspberry Pi prototyping work.)

The LoRa-Pi Raspberry Pi interface is expanded with the addition of two pins to the left of the original interface as illustrated below.

LoRa-Pi-16 Interface

LoRa-Pi v2.x Interface Configuration

To select either the CE0 or CE1 pin, a solder bridge needs to be made between the NSS pad (located between the CE0 and CE1 pins) and the appropriate header pin.

v2.1

This is just a minor change to the silkscreen text to try to make it a little clearer.

LoRaPi PCB (Top) LoRaPi PCB (Bottom)
PDF LoRaPi 2.1 Eagle CAD Files [58 KB]
PDF LoRaPi 2.1 CAM Files [151 KB]
17-04-2024