Skip to the content
4 layers94.5 × 69.7 mmDemo LoRa Node, the printed circuit board in 3D

STM32WL55-based low-power LoRaWAN platform for testing modular sensors and end-to-end IoT infrastructure.

Size
94.5 × 69.7 mm
Copper layers
4
Thickness
1.61 mm
Parts
109
Nets
105
Pads
401
Tracks, vias
549, 191
Pours
10
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
23 Aug 2026
Updated
17 Sep 2026

Overview

Demo LoRa Node is an open-source printed circuit board by nborkowetz, from the nborkowetz/STM32WL_LoRaSensorNodeDemo repository on GitHub. It is a 4-layer board of 94.5 × 69.7 mm with 109 parts on 105 nets, routed with 549 tracks and 191 vias.

It is built around the BGS 12WN6 E6327, THVD1400D and MT3608, with the SMAJ6.0CA and SMAJ12CA among its other parts. Its parts include 38 capacitors, 27 resistors, 9 diodes, 8 ICs and 8 connectors. It belongs with the radio and wireless and home automation and IoT boards and the STM32 boards of this library.

Main components

5

README

README.md

STM32WL LoRaWAN Sensor Node

Low-power LoRaWAN sensor node based on the STM32WL55, originally designed as a prototype platform for distributed water-monitoring applications.

The original goal was not to build a complete water-quality instrument around a fixed set of probes, but to validate the overall sensing and communication architecture first: a battery-powered node, generic sensor interfaces, LoRaWAN connectivity, a local gateway and a self-hosted backend.

Water monitoring may involve very different sensors and analog front-ends depending on the quantity being measured. For this reason, the sensing layer is intentionally kept generic while the project focuses on validating the reusable parts of the system.

Board 3D render

Concept

The prototype is intended as a test platform for the complete data path:

text
Sensor / External AFE
        |
   Analog / RS-485
        |
        v
   STM32WL55 Node
        |
      LoRaWAN
        |
        v
   Dragino Gateway
        |
        v
    ChirpStack
        |
       MQTT
        |
        v
   Backend / Web UI

The custom node provides a small set of generic interfaces:

  • 3× protected and filtered analog inputs
  • RS-485 interface
  • Switchable 12 V sensor supply
  • STM32WL55 integrated Sub-GHz radio
  • USB-UART debug interface
  • Battery-powered / low-power operation

Sensor-specific amplification, isolation or signal conditioning can be added externally when required.

This allows the LoRaWAN architecture, power-management strategy and backend to be developed independently from the final choice of water-quality sensors.

Firmware

The firmware is being developed around a low-power, event-driven architecture with:

  • periodic sensor acquisition
  • timer-triggered ADC sampling with DMA
  • digital filtering / processing
  • asynchronous UART / RS-485 communication
  • sensor power sequencing and warm-up
  • deep-sleep and periodic wake-up
  • periodic LoRaWAN uplinks
  • UART debug console
  • error handling and watchdog supervision

Typical measurement cycle:

text
Sleep -> Sensor ON -> Warm-up -> Acquire -> Process
      -> Sensor OFF -> LoRaWAN TX (if scheduled) -> Sleep

Firmware development and LoRaWAN validation are currently performed using an STM32WL55 development board. The custom PCB has been designed but has not yet been fabricated.

Synthetic sensor values can be injected during development to validate payload generation and the complete communication path without depending on the final sensing hardware.

LoRaWAN Infrastructure

A second goal of the project is to make the LoRaWAN test environment reproducible and easy to deploy, instead of relying on a manually configured development machine.

The planned local infrastructure consists of:

  • Dragino LoRaWAN gateway
  • ChirpStack network server
  • Mosquitto MQTT broker
  • containerized deployment with Docker Compose
  • deployment / provisioning scripts
  • Python / FastAPI backend for receiving, storing and visualizing measurements

The intended workflow is:

text
docker compose up
        |
        v
ChirpStack + MQTT services
        |
        v
Automated provisioning
        |
        v
Gateway / device registration
        |
        v
End-to-end LoRaWAN test

Configuration files and scripts are kept in the repository so that the test environment can be recreated from a clean machine with minimal manual configuration.

The backend consumes application data exposed by ChirpStack through MQTT; the STM32 node itself only produces the application payload and remains independent from MQTT or the backend implementation.

Repository Structure

text
.
├── Hardware/          # KiCad schematic, PCB and documentation
├── Firmware/          # STM32WL55 firmware
├── Infrastructure/    # ChirpStack / MQTT / Docker deployment
├── Tools/             # Python utilities and provisioning tools
└── README.md

Parts

109
QtyValueFootprintReferences
16100nCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C4, C6, C7, C9, C11, C13, C14, C15, C16, C17, C18, C35, C36
610kResistor_SMD:R_0603_1608MetricR1, R5, R6, R8, R10, R22
51kResistor_SMD:R_0603_1608MetricR13, R14, R15, R20, R24
54u7Capacitor_SMD:C_0603_1608MetricC5, C8, C10, C19, C32
4100kResistor_SMD:R_0603_1608MetricR16, R17, R21, R26
422uCapacitor_SMD:C_0603_1608MetricC30, C31, C33, C38
316k2Resistor_SMD:R_0603_1608MetricR7, R9, R11
3600Ohm@10MHzInductor_SMD:L_0603_1608MetricFB1, FB2, FB3
368pCapacitor_SMD:C_0603_1608MetricC20, C22, C25
3LEDLED_SMD:LED_0603_1608MetricD6, D7, D9
3SMAJ6.0CADiode_SMD:D_SMAD3, D4, D5
3Screw_Terminal_01x03TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3-5.08_1x03_P5.08mm_HorizontalJ2, J3, J4
20Resistor_SMD:R_0603_1608MetricR19, R23
210Resistor_SMD:R_0603_1608MetricR2, R3
210uCapacitor_SMD:C_0603_1608MetricC34, C37
216nInductor_SMD:L_0603_1608MetricL4, L5
26p8Capacitor_SMD:C_0603_1608MetricC26, C27
110uInductor_SMD:L_0805_2012MetricL7
1120Resistor_SMD:R_0603_1608MetricR4
115pCapacitor_SMD:C_0603_1608MetricC23
115uInductor_SMD:L_0805_2012MetricL1
1191kResistor_SMD:R_0603_1608MetricR18
1200mAFuse:Fuse_0805_2012MetricF1
12u2Inductor_SMD:L_0805_2012MetricL8
133nInductor_SMD:L_0603_1608MetricL6
136k5Resistor_SMD:R_0603_1608MetricR27
13p6Capacitor_SMD:C_0603_1608MetricC28
146k4Resistor_SMD:R_0603_1608MetricR12
1470nCapacitor_SMD:C_0603_1608MetricC12
1490kResistor_SMD:R_0603_1608MetricR25
14p3Capacitor_SMD:C_0603_1608MetricC21
14p7Capacitor_SMD:C_0603_1608MetricC29
156nInductor_SMD:L_0603_1608MetricL2
15p6Capacitor_SMD:C_0603_1608MetricC24
16n8Inductor_SMD:L_0603_1608MetricL3
1BGS12WN6E6327Package_LGA:Infineon_PG-TSNP-6-10_0.7x1.1mm_0.7x1.1mm_P0.4mmU4
1BQ25071Package_SON:WSON-10-1EP_2x3mm_P0.5mm_EP0.84x2.4mm_ThermalViasU7
1BatteryConnector_Phoenix_MC:PhoenixContact_MCV_1,5_2-G-3.81_1x02_P3.81mm_VerticalBT1
1CP2102N-Axx-xQFN28Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mmU2
1Conn_01x02TerminalBlock_TE-Connectivity:TerminalBlock_TE_282834-2_1x02_P2.54mm_HorizontalJ8
1Conn_ARM_SWD_TagConnect_TC2030Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_VerticalJ5
1Conn_CoaxialConnector_Coaxial:BNC_TEConnectivity_1478035_HorizontalJ6
1MT3608Package_TO_SOT_SMD:SOT-23-6U6
1SB120Diode_SMD:D_SOD-128D8
1SG-210STF 32MHzOscillator:Oscillator_SMD_SeikoEpson_SG210-4Pin_2.5x2.0mmY1
1SM712_SOT23Package_TO_SOT_SMD:SOT-23D2
1SMAJ12CADiode_SMD:D_SMAD1
1STM32WL55CCUxPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU3
1SW_Omron_B3FSButton_Switch_SMD:SW_SPST_Omron_B3FS-100xPSW1
1Screw_Terminal_01x04TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-4-5.08_1x04_P5.08mm_HorizontalJ1
1THVD1400DPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1TPS63900Package_SON:WSON-10-1EP_2.5x2.5mm_P0.5mm_EP1.2x2mm_ThermalViasU8
1USB_B_Microkicadlib:Amphenol usb micro connectorJ7
1WE-TVS-82400102Package_TO_SOT_SMD:SOT-23-6_HandsolderingU5

The 105 most common of 109 parts.

Similar boards

  • 4 layers67.7 × 43.9 mmSTM32Lora Tempreture sensor, the printed circuit board in 3D

    STM32Lora Tempreture sensor

    AndreyPodlesni/stm32wl-lora-rf-pcb

    4-layer RF PCB design of a low-power LoRa sensor node based on STM32WLE5CCU6, featuring 50Ω controlled impedance RF routing, SMA antenna interface, and HDC2022 temperature & humidity sensor. Designed in KiCad.

    60 parts2MIT
  • 4 layers65 × 44 mmBt lora transciever, the printed circuit board in 3D

    Bt lora transciever

    dylandibeneditto/bt-lora-transciever

    2.4GHz and 915MHz telemetry board

    112 parts1
  • 4 layers24.8 × 35.8 mmLoRa Dongle, the printed circuit board in 3D

    LoRa Dongle

    Loredati-svg/LoRa-USB-Dongle

    USB-C LoRa dongle (868 MHz) with STM32WLE5, CP2102N USB-UART bridge and SMA antenna connector. KiCad 10 hardware design: schematic, PCB and libraries.

    47 parts
  • 4 layersSTMWireless, the printed circuit board in 3D

    STMWireless

    Patronics/STMWireless

    WIP STM32 Wireless support board

    54 parts
  • 6 layers48 × 40 mmDigital, the printed circuit board in 3D

    Digital

    UMDBPP/Terminator

    Flight termination device

    96 parts
  • 4 layers112 × 60 mmPluto cal switch, the printed circuit board in 3D

    Pluto cal switch

    misko/prompt2device

    The separate vNext PCB skill and orchestrator package is available alongside the reference workflow below; existing projects keep their accepted toolchain until an explicit migration.

    77 parts3MIT
  • 2 layers169.4 × 48.8 mmUsb morse keyer, the printed circuit board in 3D

    Usb morse keyer

    dilshan/usb-morse-keyer

    PIC16F886 based CW auto key controller with USB support

    84 parts17MIT

Questions

How big is the Demo LoRa Node PCB?

It measures 94.5 × 69.7 mm and has 4 copper layers, 1.61 mm thick.

What parts does the Demo LoRa Node use?

109 parts, built around the BGS 12WN6 E6327, THVD1400D, MT3608 and SMAJ6.0CA. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Demo LoRa Node KiCad files?

From the nborkowetz/STM32WL_LoRaSensorNodeDemo repository on GitHub, at the commit this page was made from: the board is Hardware/demo LoRa_Node.kicad_pcb and its schematic Hardware/LoRa RF.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Demo LoRa Node design in my own project?

Its repository states no licence, so its author keeps all rights: ask nborkowetz before reusing the design.