Skip to main content
JHCarter
Associate III
December 24, 2025
Question

STM32WL5MOC Custom Board Power Consumption Too High

  • December 24, 2025
  • 2 replies
  • 530 views

I have tested the LoRaWAN_End_Node example on a B-WL5M-SUBG1 board and I measure power consumption of 1.7uA when the processor is in STOP mode between transmissions.  This is exactly what I expected to see.

I designed a very simple custom board based on the B-WL5M-SUBG1 design, downloaded the same .elf file to it, and it communicates with my LoRaWAN gateway as I expect.  However I measure ~300uA current draw while it is in STOP mode.  I have compared my custom board schematic to that of the B-WL5M-SUBG1 several times looking for a difference that would account for that much extra power consumption and I just have not found it.

I am using STM32CubeMX v6.16.0, STM32Cube FW_WL V1.4.0, and the part is STM32WL5MOCH6TR.  I have attached the schematic of my custom board.

I am hopeful that someone can see what I have missed.

2 replies

JHCarter
JHCarterAuthor
Associate III
January 11, 2026

After reviewing DS13293 and AN4899 with regards to unconnected pins I tried defining all unused pins to analog input with a pulldown in STM32CubeMX.  It made no difference in my current draw.

I am still searching for answers on this.  Any suggestions will be appreciated.

Visitor II
January 12, 2026
300 µA in STOP screams “something is still drawing 1 mW somewhere.”
90 % of the time it’s a pin that isn’t hard-defined.
  1. CubeMX → GPIO → every un-used pin → Analog, no pull.
  2. PB0 (TCXO_EN) → GPIO_output_low before HAL_PWREx_EnterSTOPMode().
  3. RF-CTRL1/2 → low; SUBGHZ → RadioSleep() then LL_RCC_RF_DISABLE().
  4. SWD pins (PA13/14) → analog; remove debugger completely for the test.
  5. If you fitted an external TCXO, make sure its VDD is off in STOP (PB0 low kills it).
  6. Any I²C/SPI pull-ups? Measure voltage across them – 3 V ÷ 10 kΩ = 300 µA per resistor.
  7. Still high? Probe VDDSMPS: if you see ripple the SMPS is awake; call HAL_PWREx_SMPS_DisableBypass() or force bypass and shut it down.
Do those seven and you’ll be back to the DK’s 1-2 µA.
JHCarter
JHCarterAuthor
Associate III
January 15, 2026

Thanks for the help.  It turns out that "remove the debugger completely for the test" and configuring pullups on PA2 and PA3 (UART pins) did the trick.  It draws about 1.2uA in STOP mode now.