You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Just downloaded the OTAFIX and "upgraded" my RAK4631 mini board with it. I was using the (DFU) nRF Device Firmware Update app from Nordic to perform OTA updates on the stock bootloader and it has been working great.
As soon as I "upgraded" to the OTAFIX bootloader that app would no longer work, it timed out right after "Enabling bootloader". No setting combination I tried could get it to work, and the board would hang and have to be hard rebooted.
I was able to finally get an OTA upgrade to work using the far more complicated nRF Connect for Mobile app also from Nordic. In it I have to manually enter DFU mode before uploading the firmware. The app is far messier and more complicated.
It would be nice if whatever bug was introduced in OTAFIX to cause this timeout could be identified. It makes me very worried having this bootloader running on my boards knowing it has at least this one bug.
How to reproduce ?
Drag the .uf2 file onto the RAK4631 "drive"
Use MeshCore webflasher to erase and flash the board a few times as instructed.
Open the (DFU) nRF Device Firmware Update app
Follow the simple instructions with default settings in that app.
Never mind. Using the recommended settings it does work. Still feels a bit odd that the old bootloader worked, while the new bootloader requires specific settings to work. More details on that would be wonderful.
Packet Receipt Notification (PRN): ON
Number of packets: 30
Reboot time: 0ms
Scan timeout: 2000ms
Request high MTU: ON for Android (See notes below) / Not available on iOS
Disable resume: ON
Prepare object delay: 0ms
Force scanning: ON
Keep bond: OFF
External MCU DFU: OFF
After hours of messing around with this OTAFIX bootloader, my conclusion is that (while it might fix some very specific bricking issue), it is far less stable than the stock bootloader. My boards crash during flashing far more often when running OTAFIX, and when they crash it does not self recover, it requires a physical reset button double tap to bring the board back online.
When using Meshtastic 2.8.2 and the OTAfix bootloader: Do not try to update firmware OTA using either Nordic DFU Firmware Upgrade App or Nordic NRF DFU App, it will not work. It will stay stuck in "Entering DFU Mode" with Nordic DFU Firmware Upgrade App and will maybe go through with Nordic NRF DFU App, but not reboot.
and then this project here, which is forked off adafruit-boatloader.
When using Meshtastic: I recommend anyone to not use the Nordic DFU Firmware Upgrade App or Nordic NRF DFU App together with Meshtastic 2.8.x or any other software like Meshcore that uses libraries based on GCC 12.3.1.
In Meshtastic, when going from 2.7.x to 2.8.x, it is necessary to do a full device erase anyways, meaning USB connection is required.
Once in 2.8.2, just use the Meshtastic Android-App-integrated Firmware upgrade app, they have their own libraries for OTA BLE now in the meshtastic project and I can confirm it works. I am on oltaco/Adafruit_nRF52_Bootloader_OTAFIX 2.2 on a RAK 4631.
Activity
jeremeguenther commentedon Mar 24, 2026
Never mind. Using the recommended settings it does work. Still feels a bit odd that the old bootloader worked, while the new bootloader requires specific settings to work. More details on that would be wonderful.
Packet Receipt Notification (PRN): ON
Number of packets: 30
Reboot time: 0ms
Scan timeout: 2000ms
Request high MTU: ON for Android (See notes below) / Not available on iOS
Disable resume: ON
Prepare object delay: 0ms
Force scanning: ON
Keep bond: OFF
External MCU DFU: OFF
jeremeguenther commentedon Mar 25, 2026
After hours of messing around with this OTAFIX bootloader, my conclusion is that (while it might fix some very specific bricking issue), it is far less stable than the stock bootloader. My boards crash during flashing far more often when running OTAFIX, and when they crash it does not self recover, it requires a physical reset button double tap to bring the board back online.
rdoeffinger commentedon Oct 4, 2026
I opened #62 since that is my experience as well, as far as I can tell it breaks OTA completely instead of fixing it.
shalberd commentedon Nov 7, 2026
agreed. It is something with gcc 12.3.1 (C Compile version update) in Meshtastic > 2.7.26.
meshtastic/firmware#12220
When using Meshtastic 2.8.2 and the OTAfix bootloader: Do not try to update firmware OTA using either Nordic DFU Firmware Upgrade App or Nordic NRF DFU App, it will not work. It will stay stuck in "Entering DFU Mode" with Nordic DFU Firmware Upgrade App and will maybe go through with Nordic NRF DFU App, but not reboot.
First, upstream adafruit bootloader https://github.com/adafruit/Adafruit_nRF52_Bootloader
needs to make changes similar to this done at Meshtastic, though I am not involved deep enough in the technical details
meshtastic/Adafruit_nRF52_Arduino#8
and then this project here, which is forked off adafruit-boatloader.
When using Meshtastic: I recommend anyone to not use the Nordic DFU Firmware Upgrade App or Nordic NRF DFU App together with Meshtastic 2.8.x or any other software like Meshcore that uses libraries based on GCC 12.3.1.
In Meshtastic, when going from 2.7.x to 2.8.x, it is necessary to do a full device erase anyways, meaning USB connection is required.
Once in 2.8.2, just use the Meshtastic Android-App-integrated Firmware upgrade app, they have their own libraries for OTA BLE now in the meshtastic project and I can confirm it works. I am on oltaco/Adafruit_nRF52_Bootloader_OTAFIX 2.2 on a RAK 4631.