This release improves radio diagnostics and reliability, corrects board-specific display and bootloader configurations, and expands firmware distribution with complete factory images and per-variant GitHub Release packages.
Highlights
- Updated all 16 firmware variants to
v1.0.1. - Added complete
firmware.factory.binimages for all 13 ESP32-family targets. - Added UF2 firmware files for all three nRF52 targets.
- Added automatic GitHub Release packaging with one ZIP per firmware variant.
- Corrected the Station G2/G3 OLED controller and driver.
- Corrected the XIAO nRF52 Wio SoftDevice and application layout.
- Improved Heltec SX126x current-limit handling and TX-power diagnostics.
- No wire-protocol changes were introduced.
Radio and TX-Power Improvements
The SX126x current limit is now set to 140 mA on:
- Heltec V3
- Heltec V4
- Heltec V4.2
- Heltec V4.3
Additional diagnostic logging now reports:
- Requested TX power
- Applied TX power
- Board power ceiling
setOutputPower()result- SX126x over-current protection values before and after configuration
Received SET_CONFIG commands also log the requested:
- Frequency
- Bandwidth
- Spreading factor
- Coding rate
- TX power
- Sync word
- Preamble length
Station G2/G3 Display Fix
The Station G2/G3 onboard display was incorrectly configured as an SH1107.
This release:
- Corrects the controller to SH1106
- Switches the implementation to
Adafruit_SH1106G - Restores accurate display documentation
XIAO nRF52 Wio Bootloader Compatibility
The XIAO nRF52 Wio firmware now uses the correct S140 7.3.0 bootloader layout.
Changes include:
- SoftDevice updated from S140 6.1.1 to S140 7.3.0
- SoftDevice FWID updated from
0x00B6to0x0123 - Added a dedicated S140 v7 linker script
- Application origin moved to
0x27000 - Maximum application size updated for the new layout
- Regenerated HEX, DFU ZIP, and UF2 artifacts
Important: XIAO nRF52 Wio users must install a compatible Adafruit nRF52 bootloader using S140 7.3.0 before flashing this firmware.
Complete ESP32 Factory Images
Every ESP32-family firmware directory now includes:
firmware.factory.binfirmware.binbootloader.binpartitions.binSHA256SUMS.txtmanifest.jsonwhere supported
Which File Should I Use?
Use firmware.factory.bin at address 0x0 for:
- First-time installation
- Recovery
- Replacing a damaged or incompatible bootloader/partition layout
Use firmware.bin at address 0x10000 for:
- Compatible app-only USB updates
- Web UI OTA updates
curlOTA updates
The factory image contains the bootloader, partition table, OTA initialization data, and application at the correct offsets for each board.
ESP32-P4 targets retain their required layout:
Bootloader: 0x2000
Partition table: 0x8000
OTA initialization: 0xe000
Application: 0x10000
The asset builder now removes stale factory output before incremental builds, preventing an older firmware.factory.bin from being packaged with a newer application.
nRF52 Firmware Formats
All three nRF52 targets now include:
firmware.hexfirmware.zipfor Adafruit serial DFUfirmware.uf2SHA256SUMS.txt
Affected targets:
- Heltec T114
- XIAO nRF52 Wio
- RAK4631 WisMesh Ethernet
Build and Asset Tooling
- Added deterministic per-variant ZIP generation.
- Added validation of tracked firmware checksums before packaging.
- Added release-level checksums for all variant ZIPs.
- Added UF2 generation to the canonical nRF52 asset builder.
- Consolidated the legacy all-environment release script around the canonical asset builder.
- Marked BIN and Intel HEX files as binary in Git.
- Updated installation and flashing documentation.
Updating an Existing ESP32 Device
Download the correct firmware.bin for your board from:
https://github.com/openhop-dev/openhop_modem/tree/main/firmware
You can then install it using the modem Web UI or curl.
Web UI
- Log in to the modem Web UI.
- Open the OTA update section.
- Select the correct
firmware.bin. - Start the update and wait for the modem to reboot.
curl
curl --user <username>:<password> \
-F "firmware=@firmware.bin" \
http://<modem-ip>/updateUse firmware.factory.bin instead when performing a complete USB installation or recovery.
Verification
- All 16 PlatformIO environments built successfully.
- All compiled firmware reports
v1.0.1. - All 16 firmware checksum sets verified.
- All 11 applicable web-flasher manifests verified.
- All 13 ESP32 factory-image layouts verified.
- ESP32-P4 bootloaders confirmed at
0x2000. - All 16 per-variant release ZIPs generated and verified.
- Release-level ZIP checksum manifest verified.
- No wire-protocol changes were introduced.
What's Changed
- test fix for tx power issue by @matthew73210 in #34
- fix: set Heltec V4 SX126x current limit by @yellowcooln in #35
- firmware: update generated firmware assets [skip ci] by @yellowcooln in #36
- fix: update XIAO nRF52 Wio to S140 v7 layout by @yellowcooln in #39
- firmware: update generated firmware assets [skip ci] by @yellowcooln in #40
- Fix Station G2/G3 display by @etienn01 in #42
- feat: add combined factory images and fix Station G2 display by @yellowcooln in #43
- release: publish v1.0.1 firmware packages per variant by @yellowcooln in #44
- firmware: update generated firmware assets [skip ci] by @yellowcooln in #45
New Contributors
Full Changelog: v1.0.0...v1.0.1