DFU-OTA using ESP BLE MESH

gomez9656
Posts: 28
Joined: Mon Mar 14, 2022 7:48 pm

DFU-OTA using ESP BLE MESH

Postby gomez9656 » Wed Dec 06, 2023 3:21 pm

Hello there Espressif team!

I'm using ESP-IDF to control a BLE MESH. The device is working pretty well.

I want to add OTA functionality.

The devices out of wifi range may receive the new firmware using BLE MESH? is there any example?

Thanks a lot in advance :)

ShahinHaque
Posts: 17
Joined: Mon Oct 31, 2022 12:10 pm

Re: DFU-OTA using ESP BLE MESH

Postby ShahinHaque » Sun Mar 03, 2024 11:24 am

Have you made any progress on this?

pkazlauskas
Posts: 4
Joined: Mon Mar 24, 2025 7:49 am

Re: DFU-OTA using ESP BLE MESH

Postby pkazlauskas » Mon Mar 24, 2025 8:01 am

Hello,
I am interested in this too. I have developed huge network of BLE-MESH sensors (about 2000 in each of multiple locations) and it is getting hard to update them one on one. We really need this DFU-OTA function.
In previous IDF version documentations it was mentioned that BLE-MESH DFU-OTA is coming with future releases, but in current 5.4 IDF version, it is not mentioned anymore.
Does anyone know what is the status of BLE-MESH DFU updates?

NDJ_320
Posts: 1
Joined: Fri May 16, 2025 4:20 am

Re: DFU-OTA using ESP BLE MESH

Postby NDJ_320 » Wed Feb 11, 2026 5:24 am

I am also trying to implement DFU in ESP BLE MESH, its successful(kind of) but there are some issues:
1. mesh_adv_task get overflowed when sending OTA binary to the unicast address after sometime of sending block
2. When group address is used, the device broadcasts to the group about the firmware metadata and cause stack-overflow on mesh_adv_task immediately after that
These are the major issues that are seen on the DFU, i am not sure why and also i am not able to debug the issue; nonetheless, the binary is being transmitted.
I have only tested on 2 servers, so i am not aware how many device the DFU can handle safely.
Also, why is it causing the stack overflow, i am not sure,. since all the data provided are persistent and already allocated before starting the mesh.
Sometime the sequence storage, etc.(operations that are performed when persistent connection is enable) also cause deep function calls that might cause stack-overflow. Likewise, disabling logs also helps to preserve stack, however the mesh_adv_task's watermark reduces again and again.

Who is online

Users browsing this forum: Amazon [Bot], Bytespider and 4 guests