Page 2 of 3

Re: ESP32 OTA via BLE

Posted: Mon Feb 05, 2018 10:18 am
by Nespressif
hello, although I suppose you have already thought about it, an alternative way is that the app installed on the client's smarphone, configure the phone as AP wifi with some keys that ESP knows and pressing, for example, the reset of ESP this connects to the smartphone and updates.

Greetings,

Re: ESP32 OTA via BLE

Posted: Thu Mar 08, 2018 12:50 am
by sumesh
hi folks,

we tried implementing OTA over BLE ( product requirement), 700KB taking around 52 minutes .. roughly 200 bytes per second with long write.
could anyone advise what could possibly wrong.. we built data transfer rate over the gattt_server example code.

i see in the websites that we could hit upto 2K with BLE, any one could explain how to get that rates?

ios is not allowing write without response. please help me folks, we are in a dire need to speed up with data rates.

Re: ESP32 OTA via BLE

Posted: Tue Mar 13, 2018 5:41 am
by sumesh
Resolved by changing the MTU to 500 from client

Re: ESP32 OTA via BLE

Posted: Tue Mar 13, 2018 8:21 pm
by Lucas.Hutchinson
Also try making your connection interval shorter. this may improve the transfer time.

Out of curiosity approximately what is the update time once you increased the MTU to 500?

Re: ESP32 OTA via BLE

Posted: Wed Mar 14, 2018 8:12 am
by sumesh
it is around 5 minutes 720K

Re: ESP32 OTA via BLE

Posted: Thu May 07, 2020 7:32 am
by xiaoyao
hi,
I'm doing related BLE OTA functions. Has anyone made any suggestions ? Now I am looking at the DFU of Nordic to find some solutions.

Re: ESP32 OTA via BLE

Posted: Thu May 07, 2020 11:29 pm
by chegewara
sumesh wrote:
Wed Mar 14, 2018 8:12 am
it is around 5 minutes 720K
I just measured. It takes me less than 30 sek to OTA update over BLE with MTU 512 and file size around 950kB.
xiaoyao wrote: hi,
I'm doing related BLE OTA functions. Has anyone made any suggestions ? Now I am looking at the DFU of Nordic to find some solutions.
I dont know if can advice or disadvice to use DFU, because i dont know it. I only know its nordic semiconductor proprietary protocol and you would have to learn how it works to implement it on esp32. I know its sending notifications with data and peer device has to send back CRC, not every received packet but i dont know how often. There is for sure going on more in that protocol, but that all i know right now.

I am using OTA over BLE a lot and its custom made implementation and it works good to me.

Re: ESP32 OTA via BLE

Posted: Fri May 29, 2020 9:23 pm
by anthony
I just measured. It takes me less than 30 sek to OTA update over BLE with MTU 512 and file size around 950kB.
Hi, I am quite interested in this. I just did a very basic test, no optimization at all writing to a gatt characteristic that just discards the data and getting about 1kB/s which seems extremely low. Could you share some info on your setup?
I'm also using BLE for OTA update, but it takes about 7 minutes for a full update at that speed, 1-2 min for differential update.

Re: ESP32 OTA via BLE

Posted: Sat May 30, 2020 12:16 am
by chegewara
Simple code, using Kolban's library, the same which is in arduino-esp32. No CRC or any other error correction, sending with notifications, MTU 512. Client app to OTA update is ionic on android, iOS app is using max 185 MTU and update is longer accordingly.
I am using it in few projects, also commercial projects.

Re: ESP32 OTA via BLE

Posted: Fri Jan 29, 2021 10:19 pm
by ralfaro
Very late to this thread, but we successfully ported Nordic legacy buttonless DFU...we get timing of ~2.5 minutes for ~1.4MB binary. Keep in mind the DFU service uses write-no-response and we don't use the prn flow-control.

The one issue I'm noticing however is Apple CoreBluetooth doesn't allow higher connection timeout and sometimes ble disconnects when OTA is needing to erase a previously used slot. On very first OTA after flashing, this is not an issue.