How to develop ultra-low-power and battery less demo with STM32U0 MCUs

Revision as of 10:43, 14 May 2024 by Registered User (end reproduction of data logger)
Under construction.png Coming soon


This article is about STM32U0 battery less demo. It provides explanations on how the demo works and describes step-by-step how to reproduce it.


1. Purpose of the demo

The goal of this demo is to illustrate the STM32U0 best-in class ultra-low power capabilities. It is running without battery thanks to Dracula technologies inkjet Printed Organic Photovoltaic module, which harvests energy for the STM32U0 MCU. This is a luxmeter and thermometer demo with data being displayed on an LCD segment display, and the possibility to send data thanks to a radiofrequency module. The demo can also work standalone without RF module. So, the demo exists in 2 versions without the RF module, referred as standalone version, and with it, referred as RF version in this document.

2. How the demo works

2.1. Schematics

The figure below shows schematics for both standalone and RF versions. The data logger and Transmitter module of RF version is based on standalone version, on which RF module and one resistor is added has been added. Both are working with the same software, as it detects if RF module is present or not.

DemooU0 Schematics of standalone and RF versions.

2.2. Demo principle

The flowchart below describes the principle of the demo.

Flowchart describing the principle of the demo.

The graph on below shows the evolution of VDD over time.

Graph showing the evolution STM32U0’s VDD over time.

When voltage is first reaching POR voltage and reset is first released, the idea is to enter Stop2 mode as quickly as possible to save energy. To do so, only PVD is set to level 6 to wake up the STM32U0 when voltage will be at 3.0V. This is the critical part of the initialization.

Once voltage reaches 3.0V for the first time, initialization of peripheral can start. This is in this phase that GPIOs, LCD, ADC, communication with the temperature sensor, and, if used, communication with the RF module are initialized. RTC is also configured to wake-up the MCU every second. Then, the MCU enters stop2 mode until wake up from RTC.

After waking up, the measurement phase is entered. Temperature is sent by STT22H temperature sensor included in the discovery kit. Light is measured by measuring voltage provided by the panel as explained in part Light measurement. If RF module is present, measured data is sent with this module. Finally, stop 2 mode is entered again to retrieve energy.


2.3. Light measurement

Image below illustrates the flow of current outside of the measurement of light phase. PA0 is in open drain configuration so current flows to the capacitor and the STM32U0.

Image illustrating current flow when charging of capacitor

To measure the light, the current through the resistor R1 is deduced from the measuring of the voltage provided by the photovoltaic module. Equation below is the formula then used to deduce luminosity from measured ADC voltage.

To measure the voltage provided by the photovoltaic module, PA0 is configured in output pull-down mode. The diode prevents the current of the capacitor from flowing to the ADC. Figure below illustrates the flow of current during light measurement.

Image illustrating the current flow while measuring voltage of the PV cell

3. How to reproduce

3.1. Bill of material

Data logger

  • DK Discovery kit
  • Nucleo-S2868A2 [1]
  • Layer® inkjet Printed Organic photovoltaic product from Dracula Technologies
  • 1x diode
  • 1x 100µF capacitor
  • 1x 2.2kohm resistor
  • 1x 300kohm resistor [1]

Display [1]

  • NUCLEO-U083RC
  • X-NUCLEO-S2868A2
  • X-NUCLEO-GFX01M2
  • 2x SSQ-119-03-T-D

3.2. Reproduction of data logger

Image below shows the connections to do on bottom side of STM32U083-DK.

Image showing connections on bottom side of STM32U0 discovery kit

1. Connect PV- to battery–
2. Connect PV+ to CN7-38 (PC1) [2]
3. Add a diode between CN7-38 (PC1) and battery+ [2]

Image below shows the modifications to do on front side of STM32U083-DK and X-Nucleo-S2868A2.
Image showing modifications and connections to do on top of STM32U0 DK and RF module

4. Add 100µF capacitor
5. Add 2.2kΩ resistor between A4 (PC1) and A0 (PA0)
6. Add >100kΩ pull-up resistor between VREF (CN5-3) and D7 (CN9-8) [1]
7. Remove JP1 [1]

Image below shows the modifications to do on bottom side of X-Nucleo-S2868A21. [1]

Image showing modifications and connections to do on bottom side of RF module (S2868A2)

8. Cut CN9-9 and CN9-10
9. Connect CN5-8 connected to JP1-1
10. Remove R12

[1] Only for reproduction of RF version
[2] Can be plugged on the front side or soldered on the bottom side of the DK

3.3. Reproduction of display

Image below shows modifications to do on S2868A2.


3.4. Software