No description
  • C 99.3%
  • Assembly 0.4%
  • CMake 0.3%
Find a file
2026-03-04 08:31:00 +01:00
.vscode Copy repo from another project 2026-03-03 19:32:58 +01:00
cmake Copy repo from another project 2026-03-03 19:32:58 +01:00
Core Copy repo from another project 2026-03-03 19:32:58 +01:00
Drivers Copy repo from another project 2026-03-03 19:32:58 +01:00
LoRaWAN Copy repo from another project 2026-03-03 19:32:58 +01:00
Middlewares/Third_Party Copy repo from another project 2026-03-03 19:32:58 +01:00
Utilities Copy repo from another project 2026-03-03 19:32:58 +01:00
.clangd Copy repo from another project 2026-03-03 19:32:58 +01:00
.gitignore Add ld scripts for STM32WLE5JCIX and STM32WLE5XX 2026-03-04 08:31:00 +01:00
CMakeLists.txt Copy repo from another project 2026-03-03 19:32:58 +01:00
CMakePresets.json Copy repo from another project 2026-03-03 19:32:58 +01:00
LICENSE.md Copy repo from another project 2026-03-03 19:32:58 +01:00
README.md Copy repo from another project 2026-03-03 19:32:58 +01:00
Seeed-LoRa-E5 Debug.launch Copy repo from another project 2026-03-03 19:32:58 +01:00
Seeed-LoRa-E5.ioc Copy repo from another project 2026-03-03 19:32:58 +01:00
Seeed-LoRa-E5.pdf Copy repo from another project 2026-03-03 19:32:58 +01:00
Seeed-LoRa-E5.txt Copy repo from another project 2026-03-03 19:32:58 +01:00
startup_stm32wle5xx.s Copy repo from another project 2026-03-03 19:32:58 +01:00
STM32WLE5JCIX_FLASH.ld Add ld scripts for STM32WLE5JCIX and STM32WLE5XX 2026-03-04 08:31:00 +01:00
STM32WLE5XX_FLASH.ld Add ld scripts for STM32WLE5JCIX and STM32WLE5XX 2026-03-04 08:31:00 +01:00

Seeed-LoRa-E5

LoRaWAN end node built from scratch using STM32CubeIDE/CubeMX for the LoRa-E5 WLE5x

STM32CubeMX: v6.16.1 STM32CubeIDE: v2.0.0

Initial integration of FreeRTOS support in branch FW1.4.0-FreeRTOS - somewhat tested, Class A periodic ULs.

This project can be freely re-configured with CubeMX and re-generated. Note that if you do that, you must add code for the peripherals you add, which is not different than any other STM32CubeMX project. I can offer limited help with these kinds of changes.

If something doesn't appear right, or if you implement new LoRaWAN features, please feel free to open a PR.

UPDATE 18 Jan 2026: I have updated to STM32WL firmware v1.4.0, and specifically tested NVM storage of context (including devNonce). Version 1.4.0 also addresses a serious issue with the ADC hanging on power-on after being in the STOP state. I have promoted V1.4.0 to the default repo.

If you're looking for an RAK3172 version of this, have a look at https://github.com/danak6jq/RAK3172

Note: the project defaults to disabling SWD/probe pins and enabling low-power mode. For development with an ST/Link, I recommend enabling the debugger and disabling low-power mode.

image

This assumes a general familiarity with STM32CubeIDE and LoRaWAN concepts.

If you haven't used STM32CubeIDE before, I suggest doing a couple of smaller projects using ST Nucleo boards to familiarize yourself.

From the Seeed-Studio repo: Before starting

image

  • Before erasing the Seeed factory AT firmware, get the Device EUI. Connect a USB-C cable to the LoRa-E5, and send AT command AT+ID=DevEui to get your Device EUI:
image
  • Do not lose this Device EUI; it is unique for each LoRaWAN device. If you manage to lose the Device EUI, you are able to retrieve it by scanning the QR code on the LoRa-E5 chip using a generic QR code scanner.

Building the repo

  • Clone this repo onto a system with STM32CubeIDE, v1.7.0 or later. Using "Open Projects From Filesystem"
image
  • Locate and open the top-level directory of the cloned repo:
image
  • Modify your Device EUI, Application EUI, Application KEY and your LoRawan Region

  • Use Cube to reconfigure the project to your LoRaWAN commissioning parameters:

image

and

image

  • Save the IOC file and generate code when prompted:
image image
  • Note that generating code overwrites many files; in particular, if you've selected Hybrid Mode to operate a in a sub-band, you need to check and correct the channel mask after generating code - example here is for US915 Sub-band 2:

image

  • Build project and program it into the LoRa-E5
image image

Starting a new project