Long-range, low-power, and low-bandwidth wireless solutions include technologies like NB-IoT, LoRaWAN, and SigFox. NB-IoT takes advantage of cellular architectures while LoRa Alliance’s LoRaWAN and SigFox’s SigFox use access points that aren’t part of a cellular solution.
1. The STM32 LoRa Discovery Kit board leverages a Murata CMWX1ZZABZ-091 module to provide LoRaWAN and SigFox support.
I recently had a chance to check out STMicroelectronics’ STM32 LoRa Discovery Kit (Fig. 1), which can manage both LoRaWAN and SigFox. The board uses a CMWX1ZZABZ-091 module from Murata to provide LoRaWAN and Sigfox support (Fig. 1). This module features an ultra-low-power STM32L072CZ Series microcontroller based on an Arm Cortex-M0+ core with 192 kB of flash memory, 20 kB of RAM, and 20 kB of EEPROM. It can run on as little as 10 mA and only needs 200 nA to retain the contents of the processor’s registers (Fig. 2).
It incorporates USB 2.0 capability along with a 4-channel, 12-bit ADC and two DACs. The SX1276 transceiver supports LoRaWAN , FSK, GFSK, MSK, GMSK, and OOK modulations. This includes SigFox compatibility.
Wireless support runs up to 300 kb/s, but there’s a tradeoff in range. The longer the distance, the lower the speed. The transceiver has a selectable output power of +14 dBm or +20 dBm and a 157-dB maximum link budget. The board includes SMA and U.FL RF interface connectors and the kit comes with a 50-Ω SMA RF antenna.
Also on-board are headers along with a set of Arduino Uno V3 connectors. Its ST-LINK/V2-1 supports USB-based debugging and programming. Hidden underneath is a AAA battery holder for mobile applications. The system is compatible with Arm Mbed.
2. The Murata CMWX1ZZABZ-091 module includes the SX1276 transceiver and an STM32L072 Cortex-M0+ microcontroller.
Testing It Out
Getting started with the board was probably easier for me than most since I have a LoRaWAN gateway from prior projects. The factory default software can work with a gateway or a pair of kits if another is handy. The software uses the USB-based serial port. The default software is limited to pinging, but that shows that the systems are working.
The default software is actually the PingPong example in the I-CUBE-LRWAN expansion package. The cube is essentially a collection of documentation, examples, and runtime support such as protocol stacks. STMicroelectronics has cubes for a range of middleware and services, including another for SigFox that I didn’t test—it requires a SigFox network, which I don’t have access to.
STMicroelectronics does documentation well, and there’s plenty of it for the kit. It also provides the Arm Keil MDK IDE for free (requires registration), at least for STM32F0 and STM32L0 platforms like this. It includes the ARM C/C++ Compiler, the CMSIS-RTOS RTX Kernel, and the µVision IDE/Debugger. Another alternative is to use mbed.org with its online IDE. The mbed approach is faster, since it’s just a matter of signing up and logging in. The IDE is all configured and the STM32 boards are already supported. I prefer the local SDK.
The other examples in the LoRa cube include an AT_Master and AT_Slave, as well as an End_Node. The latter can be used with a LoRaWAN access point. The master and slave implement an AT command set that allows an application to control the modem and use it for communication.
I did find the Environmental Sensing Using LoRa project by Victor Fragoso and STM32 on hackster.io. This gives all you need to know about connecting to The Things Network (TTN), a free platform for connecting LoRaWAN devices using community access points. It’s the same service I used with the Gumstix LoRa Gateway project. It would be handy if the project link was on STMicroelectronics’ site; I didn’t run across it while meandering through their site. The project does require signing up for a TTN account. I did not try out Victor’s other project, Connecting STM32 LoRa Discovery Kit to AWS IoT, although it looks very interesting.
The result is a system that can send information up to the cloud via TTN, which is the intent of the project.
Checking out the built-in PingPong project with a pair of boards takes less than an hour, but doing anything becomes a bit more drawn out because you need to download and install software, sign up for accounts, etc. I would plan on at least a couple days starting from ground zero.
Likewise, you need a pair of boards or a LoRaWAN access point that’s already operational. At that point, you have a long-distance (over a kilometer), portable Internet of Things (IoT) device node. The Arduino interface is handy for adding more sensors or interfaces. Overall, a very nice platform with all of the software bells and whistles you will need.