-
Notifications
You must be signed in to change notification settings - Fork 414
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DFU OTA always fails (nRF52840 board) #35
Comments
the package zip file is also created by Arduino (next to hex file), can you use nRF connect/toolbox app to perform OTA with that file. |
I tried the .zip file. Different error message, but still no success. Now it says:
The file itself is ok. I can flash it over USB or convert to uf2 and flash it by copying it to the 52840's drive after plugin to PC. I tried as well to force the bootloader into DFU OTA (pins 15 & 19 to GND) so it shows up as AdaDFU. But still same error. ========================== It's not the bootloader! It has something to do with either the Huawei tablet or Android 8.0.0. Neither nRFConnect nor nRF Toolbox can do OTA update on the Huawei tablet. The Samsung tablet has no problems with either. Looking on the error message I get in nRF Toolbox, it seems to be a timeout in the communication. On the Huawei tablet it start uploading (1%) then stops and reports error. ========================== Closed as it is not a bootloader problem. |
This is an issue with the bootloader. Download this source code and modify The resolution was to modify src/sdk_config.h and increase the value of HCI_RX_BUF_QUEUE_SIZE to 16 resolved all issues. For the developers, I have a handful of Adafruit nrf52840 boards. I traced hci_mem_pool_rx_produce() throwing an error NRF_ERROR_NO_MEM due to m_rx_buffer_queue.free_window_count == 0 |
I got it to work by changing the Nordic DFU library and build my own Android app to do OTA DFU without problems with the original bootloader. Will try your changes as well. Working on a modified bootloader based on this code for my custom nRF52832 modules. Thanks for pointing to this. |
Hi, @beegee-tokyo |
thanks @beegee-tokyo we will check to see what we could do about this. |
@hathach |
@beegee-tokyo Thanks ! |
Hello, I've seen similar/same issue on 52832 based board, I tried to recompile bootloader with HCI queue size set to 16 however there is not enough RAM on 52832 for this (linker fails with ram overflow into stack). What seems to be related and helped me is to decrease number of packets sent by nrfConnect for Android. There is Settings menu with DFU options and there I lowered number of packets from 10 to 5. Looks like 10 packets is too much for queue size of 8? |
Confirming that I required this change (HCI_RX_BUF_QUEUE_SIZE = 16 in src/sdk_config) for OTA DFU to work using nRF Connect on Android using a Sparkfun MicroMod nRF52840. |
Someone has an idea? Am I using the tools wrongly?
DFU OTA update over nRFutil always fails after
Build environment:
Hex file is created with Arduino IDE V1.8.7
Adafruit nRF52 board version 0.9.1
Board has Bootloader/Softdevice
pca10056_bootloader_s140_6.1.1r0
(Tried feather_nrf52840_express variant, but no difference)
Creation of DFU OTA package:
adafruit-nrfutil dfu genpkg --application PPG-Prod.ino.hex Raytac-Prod-52840.zip
Content of created manifest.json:
nRF52 log:
The text was updated successfully, but these errors were encountered: