MiniPill LoRa - STM32 Low Power Node

I would like to share my new STM32 node. This node is based on a STM32L051C8T6 microcontroller. With a BME280 environment sensor it uses 1.9 uA in sleep mode.

Short list of features:

  • Arduino code is used, combined with a few lines of STM32 HAL code;
  • It’s a generic development board, hence the name MiniPill, a wink to the BluePill board. Without the RFM95 chip it can be used for other projects;
  • The LMIC library is used for the LoRaWAN protocol with OTAA as connection setup instead of ABP;
  • Due to this library it is possible to downlink data to the node and get confirmation of the received data;
  • In Low Power Mode: 1.9 uA during sleep period.
  • With a BME280 sensor beside temperature and humidity also pressure can be measured and send through LoRaWAN.
  • Enough pins are available for other sensors or actuators;
  • Due to a 4 layer SMT print and SMT components the print is smaller but has an other form-factor. The size is 33.1 mm x 22.9 mm.
  • Pinouts are labeled and 4 VCC and GND connectors are available for external sensors.

IMG_1240

Please checkout this post on my blog: https://www.iot-lab.org/blog/370/.

Leo.

13 Likes

Hello Leo,
I believe that this is the first true open source + open hardware, do-it-yourself lorawan client using the ST32L family.
And It is really low power, small, and multi-purpose.Really a great lorawan client!

I ordered some prototypes from JLCPCB, partially assembled as from your BOM… great!
I am also a fan of PlatformIO for STM32 development, using mixed libraries.

On PlatformIO I installed your board+variant, another great achievement, and successfully compiled your code.
This is the footprint:
RAM: [=== ] 27.1% (used 2216 bytes from 8192 bytes)
Flash: [======== ] 83.3% (used 54576 bytes from 65536 bytes)
So we can’t use anything less than a 64k flash cpu.

Did you try another PlatformIO + STM32 combination for development?
Waiting for JLCPCB, I would like to prototype your setup using a bluepill on another nucleo STM32L board.
Thanks!

Hello Andrea,

Thank you for your enthusiasm for my MiniPill. I also use the STM32CubeIDE for some development. Actually you can use the CubeMX part to setup the clock. I discovered I use the MSI clock, but you can switch easily to the more accurate HSI clock. Look at the variant.cpp file and change the content of the WEAK void SystemClock_Config(void) function with the clock config generated by CubeMX.
I really like the possibility that I can use STM32 HAL to tweak low level settings.
Please keep me informed about your experience with my MiniPill LoRa.

With kind regards,

Leo.

Actually the STM32L051, 07x, 08x etc are an extremely common pairing with LoRaWAN, including open source LoRaWAN. Because this is the processor core used in the “Murata module” it shows up in places such as the Arduino Mkrwan, the MCCI Catena, etc.

That’s not to diminish an individual effort, just to point out that the reasons that this is a fairly good choice have been somewhat widely recognized.

1 Like

After designing and building two nodes I could measure, calculate and compare the power consumption. I have made a post to give some considerations about power consumption on LoRa nodes: https://www.iot-lab.org/blog/448/.
Here an example of the power calculations of the MiniPill LoRa:

2 Likes