Success! Performing an OTA Bluetooth Firmware Update on a Meshtastic Node

One of the questions that comes up frequently in the BuffaLoRa community is: “How hard is it to update Meshtastic firmware over Bluetooth?” This week, I finally took the plunge and successfully performed an OTA (Over-The-Air) Bluetooth firmware update on one of my nRF52 based Meshtastic nodes (RAK WisMesh Tag) from iOS—and I’m happy to report that it worked exactly as advertised.

This post walks through the experience, highlights a few practical tips, and shows what the process looks like in the real world.

Why OTA Updates Matter

OTA firmware updates are a big deal for Meshtastic deployments, especially for:

  • Nodes mounted in hard-to-reach places
  • Solar or remote installations
  • Community mesh infrastructure where physical access is limited

Being able to update firmware wirelessly over Bluetooth saves time, reduces risk, and lowers the barrier to keeping nodes secure and up to date.

Following the Official Meshtastic Guide

I followed the official Meshtastic documentation for nRF52 OTA updates, which you can find here:
👉 https://meshtastic.org/docs/getting-started/flashing-firmware/nrf52/ota/

The guide is clear and well-structured, and it closely matches what you’ll see in the Meshtastic tooling.

Step 1: Download the Latest Stable Firmware

Before opening any mobile apps, I first downloaded the latest stable Meshtastic firmware for my hardware.

I navigated to the official Meshtastic downloads page:
👉 https://meshtastic.org/downloads/

From there, I followed the link to the Official Meshtastic GitHub releases and downloaded the appropriate firmware ZIP file for my node.

For my device (an nRF52840-based node), the correct file was:

firmware-nrf52840-2.7.15.567b8ea.zip

I downloaded the ZIP file locally on my phone so it would be available to select during the OTA update process.

I then used the Files app to open and “unzip” this file, allowing access to the device specific ZIP files within.

Click the ZIP file to unzip contents to a folder of the same name

Step 2: Launch the nRF Device Firmware Update App

All subsequent steps were performed using Nordic Semiconductor’s nRF Device Firmware Update app, which is required for Bluetooth DFU.

The app is available on the Apple App Store:
nRF Device Firmware Update (iOS)

Once installed, I opened the app and saw that I landed on the Firmware Upgrade screen.

Step 3: DFU Settings Changes

Before starting the update, I clicked on Settings to review and edited the DFU settings in the app:

  • Packets receipt notification: Enabled
  • Number of Packets: 5 (Reduce from defaults)
  • Alternate Advertising Name: Enabled
  • Disable resume: Left off
  • Force scanning: Enabled
  • External MCU DFU: Enabled

DFU settings screen, which closely matches the options described in the Meshtastic documentation

It is critical to change the “Number of Packets” setting to a lower number. This ensures that less data is sent to the device over Bluetooth at a time between confirmations during the OTA update process. The other default settings worked perfectly for my node—no additional tuning required.

Click back to the Firmware Upgrade screen to save the changes.

Step 4: Selecting the Firmware and Device

Within the nRF Device Firmware Update app screen, I selected:

  • The unzipped folder created from the downloaded firmware ZIP file (firmware-nrf52840-2.7.15.567b8ea) and navigated within to select an embedded ZIP file specific to my device (firmware-rak_wismesh_tag-2.7.15.567b8ea.zip)
  • The target device (shown as Meshtastic_65c2)

At this point, the app verified the file and prepared the device for DFU (Device Firmware Update) mode.

Step 5: DFU Initialization and Upload

I then clicked Upload. Once initiated, the app walked through the DFU process automatically:

  • ✅ Bootloader enabled
  • ✅ DFU initialized
  • ⬆️ Uploading firmware

The progress bar advanced steadily, and the app provided real-time feedback, including transfer speed. In my case, the upload ran at about 1.5 kB/s, which is normal for Bluetooth LE DFU.


Firmware Upgrade screen shows the firmware file selected, the device identified, and the update process beginning.

Tip: Avoid backgrounding the app or letting your phone lock during the upload.

Completion and Results

Once the firmware upload completed, the node rebooted and reconnected normally. After reconnecting:

  • The node reported the new firmware version
  • Existing configuration and channels were preserved
  • No manual recovery steps were required

In short: a smooth, successful OTA update.

The OTA Firmware Update was a success!

⚠️ Common DFU Pitfalls (and How to Avoid Them)

  • Using the wrong firmware file:
    Always confirm the firmware matches your hardware (e.g., nrf52840 vs nrf52832). Flashing the wrong target can result in a non-booting node.
  • Unzipping the firmware:
    The nRF Device Firmware Update app expects the ZIP file for your device. You will need to unzip the downloaded file for the release but do not also extract the device specific one too before selecting it in the app.
  • Letting your phone lock or background the app:
    Bluetooth DFU is sensitive to interruptions. Keep the screen on and the app in the foreground until the upload completes.
  • Low battery on the node:
    Make sure your Meshtastic node has sufficient power (or is plugged in). A power loss mid-update can require recovery flashing over USB.
  • Bluetooth range issues:
    Stay physically close to the node during DFU. Even moderate interference or distance can slow transfers or cause failures.
  • Impatience during slow uploads:
    Transfer speeds of 1–2 kB/s are normal for BLE DFU. Slow does not mean stuck—give it time.
  • Forgetting to reconnect after reboot:
    After DFU completes, the node may briefly disappear from Bluetooth. Simply rescan and reconnect once it finishes rebooting.

Takeaways for the BuffaLoRa Community

  • ✅ OTA Bluetooth updates are possible for Meshtastic nRF52 nodes on iOS
  • 🧭 Using the official firmware and tools minimizes risk
  • 📱The nRF Device Firmware Update app provides excellent visibility
  • 🗺️ This process is well-suited for remote or elevated deployments

If you’ve done an OTA update—or are planning one—consider sharing your experience with the BuffaLoRa community. The more we document real-world workflows, the easier it becomes for everyone to grow the mesh.

📡 Stay connected, and keep the mesh strong.