RFOXiA LogoRFOXiA Club
← Back to DevHub

MultiNav Pro+ BLE - firmware OTA update over a 50km link, anyone tried?

Michelle RiggsJuly 25, 2026
So I've got a deployment scenario where a few of these BLE modules are going to end up in pretty hard-to-reach locations - think rooftop enclosures, maybe some pole-mounted stuff out in a rural area. Physically getting to them for maintenance is going to be a pain, so I'm trying to figure out if doing OTA firmware updates reliably over a long-range link is actually realistic or if I'm setting myself up for a headache. Like, in theory the link budget should be there, but OTA is a different beast than just streaming sensor data - you've got bigger payloads, timing constraints, error recovery, all that.
💬 1 replies👍 0 likes👁 0 views

💬 Want to join this discussion?

Join the Community on RFOXiA Club →

Replies

AdamJuly 25, 2026
@Michelle Riggs yeah this is a really valid concern and you're right to separate "link budget exists" from "OTA will actually work" — those are two different problems.
 
The STM32WB07 does support OTA via the ST BLE stack, and the GitHub repo has the firmware source so you can actually see what's implemented and what you'd need to build on top of. The honest answer is that at 50km you're going to be dealing with meaningful latency and potentially some packet loss depending on conditions, so your OTA implementation needs solid chunk-level acknowledgment and retry logic — if it's just fire-and-forget with no error recovery baked in, a dropped packet mid-transfer means you're in a bad spot with a half-flashed device. The STM32WB07 has dual-bank flash which is your best friend here — it lets you write the new firmware to the inactive bank while the current one keeps running, and only swap on a verified successful transfer, so a failed OTA doesn't brick the node.
 
Realistically I'd treat this less as "can I push OTA over the air" and more as "can I design a transfer protocol that degrades gracefully" — checksums on every chunk, explicit ACK per block, automatic rollback if the new image doesn't boot cleanly. That's doable, it's just not trivial to implement from scratch. Worth digging through the repo and seeing what's already there before you build anything custom.

💬 Want to join this discussion?

Join the Community on RFOXiA Club →