How to upload the firmware to Mesh End Node
1. Choose the correct update workflow
| Workflow | Main use |
|---|---|
| FirmwareUpdateUtility User mode | Normal APP update through USB serial or PC BLE |
| FirmwareUpdateUtility Advanced update | First-time programming or recovery under instructions from Dragino support |
Instructions for FirmwareUpdateUtility and the other desktop tools are available in the Dragino MeshNode repository. The mobile upgrade feature is still under development.
2. Normal APP update
Use FirmwareUpdateUtility in User mode for a normal APP update through USB serial or PC BLE. Follow Developer Instruction section 2 for the complete procedure.
3. Build firmware from source
The firmware is a PlatformIO project targeting STM32WL and built on Windows with VS Code. Follow Developer Instruction section 1 to build the APP firmware from source.
4. First-time programming and firmware recovery
In FirmwareUpdateUtility, Advanced update opens the STM32 Programming workspace for first-time programming and recovery. Use this procedure only when instructed by Dragino support.
4.1 Production/service connection
Use a 3.3 V TTL adapter because 5 V will damage the MCU.
| USB-TTL | Device |
|---|---|
| TX | RX |
| RX | TX |
| GND | GND |
4.2 Flash layout
Dragino Mesh Node firmware uses a Bootloader + APP layout on STM32WLE5JC (256 KB flash, 2 KB pages). The APP starts at 0x08007800; a normal APP upgrade only writes from that offset onward.
Do not erase the factory identity, application version control, or Bootloader regions during a normal APP upgrade. The factory identity page (0x0803E000) holds the DevEUI and root key used for private-key derivation; losing it requires re-provisioning at Dragino's factory. The application version control page (0x0803F000) must also be preserved. STM32 programming, Bootloader programming, and custom Flash addresses are production or service operations. Do not change addresses or use those advanced functions without explicit instructions from Dragino.
4.3 Program with FirmwareUpdateUtility
STM32 Programming uses the STM32 ROM Bootloader over UART and requires switching the device to ISP.
- Open the device enclosure.
- Switch the device to ISP and press reset.
- Connect the USB-TTL adapter to the device serial port and to the PC.
- Open FirmwareUpdateUtility, confirm Advanced update, and open STM32 Programming.
- Select the correct serial port and click Detect device.
- Confirm that the expected chip, DevEUI, and identity status are reported.
- Select the programming target and the firmware file or files supplied for the procedure.
- Select the
MeshFlash layout. Do not use custom addresses unless Dragino provides them. - Click Preflight and build plan, then review the validated files, addresses, erase ranges, protected areas, and verification operations.
- Click Start programming, review the final confirmation, and wait for completion.
- Switch the device from ISP back to normal mode and press reset to start the new firmware when required.
Do not power off the device or disconnect the USB-TTL adapter during programming. FirmwareUpdateUtility protects the factory identity and application version control pages during normal programming. Do not select Allow invalid identity (lab only), custom addresses, or other advanced options unless specifically instructed by Dragino.
5. Upgrade troubleshooting
| Symptom | Likely cause | How to diagnose / fix |
|---|---|---|
| No COM port is listed | Cable, power, driver, or port conflict | Check the cable, power, and USB serial driver; close other serial software; then click Refresh |
| USB port opens, but communication fails | Incorrect wiring or device state | Confirm the 3.3 V connection and TX/RX wiring, then retry the Device Overview handshake |
| BLE scan shows no device | Bluetooth is disabled or the device is not advertising | Enable computer Bluetooth, confirm that the device is advertising, move it closer, and scan again |
| Firmware file is rejected | Unsupported file or incorrect product firmware | Confirm that the firmware belongs to the target product and is a supported .bin, .hex, or .ihex image |
Start update remains disabled | Device information has not been read or the connection is incomplete | Complete Device Overview and keep the connection open |
| STM32 detection fails during recovery | Device is not in STM32 ROM Bootloader mode | Switch the device to ISP, reset it, confirm the correct COM port and wiring, then detect it again |
| STM32 programming remains disabled | Detection or preflight is incomplete | Detect the device and run Preflight and build plan after the last input change |
| The device behaves abnormally after an upgrade | Firmware does not match the product model or shipping Region | Confirm that the firmware matches the product model and Region, then rebuild or re-flash the correct file |
Device works but factory identity reads all-FF | The factory identity page was erased | Contact Dragino for re-provisioning |