This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Updating DFU via RS-485 and UART without python on nRF52840 DK

Hi!

What would be the best course of action if I have a connection like this:

 Android device (without Bluetooth support) -> RS-485 -> UART ->  Main nRF52840 DK + other devices connected via Mesh to this device

So is it possible to somehow:

1.Upload .hex file to Android device 

2.Send .hex (converted to byte array) via RS-485 / UART to nRF52840 DK

3. Save .hex file on nRF52840 DK flash

4. Convert / update firmware of all mesh devices from nRF52840 DK which is connected to Android device?

Is this even possible, so that firmware update happens, all on DK devices without the need of Over the Air update or update with python libraries which are not present on Android device?

Edit:
I also noticed it could work in a way that 
1. .hex is already converted to .zip file
2. .zip file is sent to nRF52840 DK
3. nRF52840  DK somehow initiates nrfutil dfu serial -pkg dfu_prov-1.zip -p COM9 -b 115200 -i 1 -fc -m
Or
Android starts DFU without nrfuitl(or nrfutil in java/C without python) somehow?

Problem in case when Android tablet would update all mesh devices via UART would be the downtime of system because of serial port(uart) usage for updating, which would last +30 minutes

Thank you!

Parents Reply Children
  • Q1: The nRF52840 with the S140 SoftDevice can be a BLE Central. But the issue here is transferring the firmware image from the Android tablet to the nRF52840, not from the 52840 to the other devices in the mesh. 

    Q2: Yes, if you use the python code from our nrfutil implementation as a reference and convert that to Java, so that the .zip packet is parsed correctly and send via UART. Not sure if dfu_transport_mesh.py is the only source you will have to migrate from python to java.  

Related