Hardware
STM32WL: el SoC de ST con radio LoRa integrada en el mismo chip
Guía técnica del STM32WL de ST: SoC con radio sub-GHz LoRa en el mismo chip, Cortex-M4/M0+, consumo ultralow y cuándo us
STM32WL: el SoC de ST con radio LoRa integrada en el mismo chip
Updated: 2026-05-24
Executive summary
- STM32WL is the family of SoCs from STMicroelectronics that integrates, in a single package, an ARM Cortex-M4 microcontroller at 48 MHz plus a sub-GHz radio compatible with LoRa (Semtech's proprietary modulation) and FSK/GFSK/MSK/BPSK—with no external radio chip.
- It is the go-to MCU for building low-power LoRaWAN nodes for long-range LPWANLTermLPWANLPWAN (Low-Power Wide-Area Network) is a category of long-range, low-power wireless networks for IoT. It includes LoRaWAN, NB-IoT and LTE-M.View profile networks (up to 15 km rural, 2-5 km urban).
- The dual-core STM32WL55 variant adds a Cortex-M0+ dedicated to managing the radio, freeing the M4 for the application—reducing active communication power consumption.
- Compared with the ESP32 or the nRF52840: neither of them has a native sub-GHz radio. For LoRa with an ESP32
HardwareESP32Dual-core WiFi + BT/BLE SoC at €-tier priceView profile you need an external SX1276 over SPI, which adds complexity, BOM, and power consumption. The STM32WLSTermSTM32WLThe STM32WL is an STMicroelectronics microcontroller with a sub-GHz LoRa radio integrated on the same chip, designed for LoRaWAN nodes.View profile eliminates that part.
- When NOT to use it: projects that require Wi-Fi or BLEBTermBluetooth Low Energy (BLE)Bluetooth Low Energy (BLE) is the low-power variant of Bluetooth, for sending small amounts of data intermittently with minimal battery. It dominates wearables and proximity. Maintained by the Bluetooth SIG.View profile (it has neither), rapid prototyping with a simple Arduino
CompanyArduinoOpen source hardware and software platform for makersView profile ecosystem, cases where the volume justifies using an ESP32 + external SX1276 for a lower component cost.
What the STM32WL is and why it matters in LoRaWAN
In the IoT ecosystem, long-range battery-powered nodes are the use case where the STM32WL shines. Any conventional LoRaWAN node combines two chips: an MCU (for the application logic) and a LoRa transceiver such as the Semtech SX1276, SX1261, or SX1262, connected over SPI. The STM32WL fuses both into a single die in the same package.
The practical result:
- A smaller PCB (fewer components, fewer solder joints, fewer production failures).
- Lower system power consumption because the SPI interface disappears.
- A single development tool, a single HAL, a single certification cycle.
- The MCU drives the radio registers directly with no bus latency.
STMicroelectronics
CompanySTMicroelectronicsEuropean semiconductor maker: STM32, sensors and ToFView profile positions the STM32WL as a chip for massive node deployments: precision agriculturePTermPrecision agriculturePrecision agriculture uses IoT sensors, GPS and data to optimize irrigation, fertilization and harvesting by zone, increasing yield and efficiency.View profile, smart meters, asset trackers, municipal sensor networks. It is the chip that appears in most of the projects in the IoT hardware catalog where battery life and range are the two non-negotiable parameters. Exactly the scenarios where per-unit BOM cost, power consumption, and battery life matter more than compute performance.
Key technical specifications
| Characteristic | STM32WL55 (dual-core) | STM32WLE5 (single-core) |
|---|---|---|
| Main CPU | ARM Cortex-M4 @ 48 MHz | ARM Cortex-M4 @ 48 MHz |
| Radio CPU | ARM Cortex-M0+ @ 48 MHz | — (radio managed by the M4) |
| Flash | 256 KB | 256 KB |
| RAM | 64 KB SRAM | 64 KB SRAM |
| Sub-GHz radio | LoRa + (G)FSK/MSK/BPSK | LoRa + (G)FSK/MSK/BPSK |
| Radio band | 150 – 960 MHz (EU: 868 MHz, US: 915 MHz) | |
| Max TX power | +22 dBm (LP PA) / +15 dBm (HP PA) | |
| RX sensitivity | -148 dBm (LoRa SF12, 125 kHz BW) | |
| TX consumption (@+14 dBm) | ~18 mA | |
| RX consumption | ~5 mA | |
| Sleep consumption (Stop 2) | ~1.08 µA | |
| ADC | 12-bit, 16 channels | |
| Peripherals | SPI, I2C, UART, LPUART, PWM, LPTIM | |
| GPIOs | Up to 43 | |
| Temperature | -40 °C to +85 °C (industrial grade: -40 to +105 °C) | |
| Package | WLCSP59, QFN48, VFQFPN48 | |
| Ref. price | ~4-7 USD chip | ~3-6 USD chip |
The WL55's dual-core architecture is notable: the Cortex-M0+ runs the radio stack (LoRaMAC, the LoRaWAN
ProtocolLoRaWANOpen long-range, low-power LPWANView profile protocol) independently, and the two cores communicate through shared memory and interrupts. The M4 can enter Stop mode while the M0+ manages a LoRaWAN RX1/RX2 receive window without waking the main CPU.
The integrated sub-GHz radio: LoRa with no external chip
The STM32WL's internal transceiver is functionally equivalent to Semtech's SX1261/SX1262—in fact it shares the same radio IP, licensed from ST. This guarantees interoperability with any LoRaWAN gateway on the market.
Common radio configurations on EU868 LoRaWAN nodes:
| Parameter | Typical value |
|---|---|
| EU channel frequencies | 868.1 / 868.3 / 868.5 MHz (+ additional TTN channels) |
| Spreading Factor (SF) | SF7-SF12 (adaptive ADR) |
| BW (Bandwidth) | 125 kHz (common), 250/500 kHz |
| CR (Coding Rate) | 4/5 to 4/8 |
| Time on Air (SF12, 51B) | ~2.5 s |
| TX power | +14 dBm (ETSI limit) |
At SF12 and 125 kHz BW, sensitivity reaches -148 dBm, which allows radio links with more than 150 dB of path loss—enough to penetrate concrete walls or reach 10-15 km in open terrain.
Software stacks and development ecosystem
STM32CubeMX + STM32CubeWL
ST offers the official HAL in STM32CubeWL, with LoRaWAN reference code based on Semtech's implementation (LoRaMac-node). The typical flow:
- Configure pins and peripherals in STM32CubeMX (GUI).
- Generate C code with the HAL and the LoRaMAC middleware.
- Compile with STM32CubeIDE (based on Eclipse/GCC) or with CMake + arm-none-eabi-gcc.
- Flash over SWD with an ST-LINK/V2 or ST-LINK/V3.
Example: LoRaWAN OTAA join and payload send
#include "lora_app.h"
#include "sys_app.h"
#include "stm32_timer.h"
/* OTAA configuration in lorawan_conf.h */
// #define LORAWAN_JOIN_EUI { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
// #define LORAWAN_DEV_EUI { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }
// #define LORAWAN_NWK_KEY { 0x2B, 0x7E, ... }
static void SendTxData(void)
{
uint8_t payload[4];
int16_t temp_c = ReadTemperatureSensor(); /* user function */
payload[0] = (temp_c >> 8) & 0xFF;
payload[1] = temp_c & 0xFF;
payload[2] = ReadBatteryLevel();
payload[3] = 0x00; /* flags */
LmHandlerSend(&AppData, LORAMAC_HANDLER_UNCONFIRMED_MSG, false);
}
/* In main.c: initialize, perform OTAA join, and send every 15 min */
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_LoRaWAN_Init(); /* generated by CubeMX */
while (1)
{
MX_LoRaWAN_Process(); /* manages the LoRaWAN state machine */
}
}Zephyr RTOS (alternative)
The Zephyr project supports the STM32WL (board nucleo_wl55jc) with a sub-GHz radio driver and LoRaWAN support in its lorawan module. Useful if you already work with Zephyr on other chips in the project (such as the nRF52840nTermnRF52840The nRF52840 is a Nordic Semiconductor SoC with a Cortex-M4F and ultra-low-power multiprotocol radio (BLE 5 and IEEE 802.15.4), a basis for many Matter/Thread devices.View profile):
/* Zephyr: lorawan_send() */
#include <zephyr/lorawan/lorawan.h>
uint8_t data[] = {0x01, 0x02, 0x03};
lorawan_send(1, data, sizeof(data), LORAWAN_MSG_UNCONFIRMED);STM32WL vs the alternatives
| MCU | LoRa radio | Wi-Fi/BLE | Sleep consumption | Chip price | When to choose |
|---|---|---|---|---|---|
| **STM32WL55** | Native, integrated | No | ~1 µA | ~5 USD | LoRaWAN production node, reduced BOM |
| **[ESP32](/en/hardware/esp32) + SX1276** | External (SPI) | Wi-Fi + BLE | ~10 µA | ~5+3 USD | Prototypes, you already have the ESP32 in the BOM |
| **[nRF52840](/en/hardware/nrf52840) + SX1262** | External (SPI) | BLE/Thread | ~1.5 µA | ~6+3 USD | BLE + LoRa simultaneously on the same node |
| **Murata CMWX1ZZABZ** | STM32L0+SX1276 (module) | No | ~1.5 µA | ~8-12 USD | Less PCB design time |
| **nRF9160** | LTE-M/NB-IoT | No | ~2.5 µA | ~8 USD | Cellular coverage, no LoRa |
The STM32WL's advantage over "ESP32 + SX1276" is not just integration: ST's LoRaWAN stack is optimized so the M0+ manages the receive slots without waking the M4, something impossible to replicate with the same efficiency in an MCU + radio architecture separated by SPI.
When NOT to use the STM32WL
- You need Wi-Fi or BLE: the STM32WL has no 2.4 GHz radio. For Wi-Fi use the ESP32; for BLE with simultaneous LoRa, a combination of nRF52840 + SX1262 or a RAK4631 module.
- Rapid prototyping with Arduino: the STM32WL's Arduino ecosystem is limited compared with the ESP32's. If you just want to test LoRaWAN quickly, a board with an RFM95W and an Arduino Mega is more immediate.
- Cellular coverage: if the LoRaWAN network doesn't exist in the deployment area and you need guaranteed coverage, LTE-MLProtocolLTE-MCellular IoT with mobility and voiceView profile/NB-IoT
ProtocolNB-IoT3GPP-standardized cellular LPWAN — carrier coverageView profile networks with Nordic nRF9160 or Quectel BG77 modems are more robust. - Compute-heavy projects: the Cortex-M4 at 48 MHz with 64 KB of RAM is fine for reading sensors and sending packets, but insufficient for heavy DSP, full TLS protocols in RAM, or image processing.
- Very low volume and you already have an ESP32: if you're building 5 units and you have an ESP32 + SX1276 at home, integrating the STM32WL doesn't offset the learning cost of the ST environment.
Development boards and reference modules
Nucleo-WL55JC
ST's official dev board. It integrates an ST-LINK/V3 for SWD debug/programming with no additional hardware. Two buttons, LEDs, Arduino/Morpho connectors for expansion. Price ~25 USD. The first choice for any evaluation or prototyping project.
RAK3172 (RAKwireless)
A CE/FCC-certified module based on the STM32WLE5CC. SMD package, AT commands over UART, or programmable directly with STM32CubeIDE. Widely used in European commercial IoTITermIoT (Internet of Things)The IoT (Internet of Things) is the network of physical objects with sensors, software and connectivity that collect and exchange data and act autonomously.View profile products.
LoRa-E5 (Seeed Studio)
A module based on the STM32WLE5JC, compatible with the AT commands of ST's LoRaWAN stack. Available in a mini version (21 × 28 mm) and on a development board (LoRa-E5-Dev). Widely used in prototypes that later move to a custom PCB.
Primary sources
- STMicroelectronics — STM32WL Series (accessed: 2026-05)
- STM32WL55JC Datasheet (accessed: 2026-05)
- LoRa Alliance — LoRaWAN Specification (accessed: 2026-05)
Frequently asked questions
What's the difference between the STM32WL55 and the STM32WLE5?+
The STM32WL55 is dual-core: it has a Cortex-M4 for the application and a Cortex-M0+ dedicated to managing the radio. This lets the application core enter deep sleep while the M0+ manages the LoRaWAN receive windows. The STM32WLE5 is single-core (M4 only), simpler but with a somewhat higher combined consumption during the RX slots. For production nodes with long battery life, the WL55 is the choice; for prototypes or small volumes, the WLE5 is sufficient.
Does the STM32WL work with The Things Network?+
Yes. ST's LoRaWAN stack implements LoRaWAN 1.0.3 and 1.1.0, compatible with any standard Network Server: The Things Network, ChirpStack, Helium, private servers. The OTAA join process is standard: you configure the DevEUI, JoinEUI, and AppKey in the code, and the device registers in the TTN or ChirpStack console like any other LoRaWAN node.
How much battery life does the STM32WL provide?+
It depends on the send cycle, SF, and payload. A typical calculation: a node sending 10 bytes every 15 minutes at SF9, with a 2,400 mAh battery (2× AA). Weighted average consumption ~6 µA → estimated battery life >4 years. With hourly sends at SF12, you can exceed 10 years. These are estimates; temperature, battery self-discharge, and connected peripherals change the real result.
Can the STM32WL be programmed with Arduino?+
With limitations. STM32duino (the Arduino core for STM32) supports some STM32WL-based boards, but the support is not as mature as that of the ESP32 or Arduino AVR. For serious production it's better to use STM32CubeIDE with the official HAL, which has full support for the LoRaWAN stack and power-optimized examples.
Which LoRaWAN gateway do I need to use the STM32WL?+
Any LoRaWAN gateway compatible with the standard protocol: Semtech gateways (based on the SX1302/SX1303), RAK Wireless, Dragino, the TTIG from The Things Industries, or one built on a Raspberry Pi with an SX1302 HAT. The STM32WL node doesn't require any ST-specific gateway.
Does the STM32WL have CE certification for Europe?+
The chip on its own has no system-level certification, but the certified modules based on it (RAK3172, LoRa-E5, Murata CMWX1ZZABZ) do. For a commercial product going to the European market, it's advisable to start from one of these pre-certified modules rather than the bare chip.