Adafruit Feather 32u4 LoRa and BSFrance LoRa32u4 II boards
LoRa32u4 will be used as a general abbreviation for above family of boards.
The LoRa32u4 boards are a combination of an Atmel ATmega32u4 AVR MCU, a LoRa module and Li-Ion / LiPo battery support (which includes charging). The Feather 32u4 LoRa is designed by Adafruit.
The LoRa32u4 II board is designed by BSFrance and produced by DIYMall (and is actually a copy of the Adafruit Feather 32u4 LoRa).
The ATmega32u4 has built-in support for USB and does not require a separate USB to serial converter chip.
The LoRa antenna is connected via an IPEX/U.FL connector (versions 1.1 and higher). The battery connector is 2-pin JST-PH. The battery voltage can be monitored via an analog pin.
At least 4 versions of this board exist. Below is a brief summary of each version.
Uses an unshielded LoRa module.
Lacks a version number on the PCB.
Has a hole for soldering a simple wire antenna. No IPEX/U.FL antenna connector.
LoRa DIO0 is permanently wired to digital pin 7.
LoRa DIO1 has it own board pin but is not connected to any digital pin.
DIO1 pin must be manually wired to a digital pin (required for LoRa).
There are soldering pads/holes for DIO2 and DIO3 for manual wiring if needed.
Like version 1.0 but in addition has an IPEX/U.FL LoRa antenna connector.
This model hash a version number on the top of the PCB: V1.1.
Identical to version 1.1a but uses a shielded (HPDTek) LoRa module.
Like version 1.1b but the DIO1 board pin has been replaced by digital pin 14 (new).
DIO1, DIO2 and DIO3 now each have soldering pads so they can be easily connected to a digital pin (using only some solder and without requiring a wire). Using the solder pads DIO1 can be connected to digital pin 1, DIO2 to digital pin 2 and DIO3 to digital pin 3.
Having the soldering pads is really nice, but using digital pins 1, 2 and 3 for DIO was not a very smart design decision because these pins serve other important functions:
Pin 1: Serial TX + Interrupt #3, Pin 2: IC2 SDA + Interrupt #1, Pin 3: I2C SCL + Interrupt #0.
This model has version numbers on both sides of the PCB: V1.2.
The LoRa module provides a LoRa radio but not the LoRaWAN stack. The stack needs to be implemented in software that runs on the ATmega32u4 MCU.
LMIC-Arduino is a popular library that implements a LoRaWAN stack.
LMIC-Arduino requires only DIO0 and DIO1 for the LoRa radio protocol.
DIO0 is already hard-wired on the PCB. DIO1 must be manually wired.
There are several options for wiring DIO1 to a digital pin of the ATmega32u4 MCU.
Adafruit Feather 32u4 LoRa and BSFrance LoRa32u4 II versions 1.0 and 1.1
In several examples on the web DIO1 is manually wired to digital pin 6. I have been wondering why digital pin 6? Probably because it is next to digital pin 7 (wired to DIO0) which is easy to remember.
It is better to use digital pin 5 for DIO1 instead of pin 6 because this leaves more resources available:
- Digital pin 6 also serves as analog to digital port ADC10. Pin 5 does not double as ADC so using pin 5 will leave an extra ADC free.
- A shorter wire can be used.
Either when adding the wire on the bottom side and also when adding (soldering) a wire on the top side of the PCB (directly from the LoRa module to digital pin 5)
BSFrance LoRa32u4 II version 1.2
With version 1.2 it is very easy to connect DIO1 to a digital pin with only a bit of solder on the solder bridge/pads. However, this way it can only be connected to digital pin 1 which is part of the serial interface which is a waste of functionality.
Instead it wil be more useful to connect DIO1 to digital pin 5 (just like for older board versions).
This does however require some more advanced soldering skills because version 1.2 does not have a DIO1 board pin. Connecting DIO1 to digital pin 5 can only be done by soldering a wire. It is most practical to do this on the top of the PCB directly from the LoRa module to digital pin 5. This can be used for all board versions 1.0 to 1.2. (A picture will be added later.)
More wiring information, a pinout diagram and configuration parameters for LMIC-Arduino will be added later.
BSFrance LoRa32u4 II version 1.0 - Top
BSFrance LoRa32u4 II version 1.0 - Bottom
BSFrance LoRa32u4 II version 1.1a - Top
BSFrance LoRa32u4 II version 1.1b - Top
BSFrance LoRa32u4 II version 1.1 - Bottom
BSFrance LoRa32u4 II version 1.2 - Top
BSFrance LoRa32u4 II version 1.2 Bottom