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

sending DFU over serial port working in windows but not working in linux

Hello,

I am in big problem, just couple of months ago i managed to run dfu over BLE mesh. Even now its working in windows platform but for some strange reason its not working in linux anymore.

I am using linux  with following specifications:

Linux iotgateway 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

While i give the following command:

sudo nrfutil --verbose dfu serial -pkg dfu_test_v_1.zip -p /dev/ttyACM0 -b 115200 -fc --mesh

It takes time and finally comes with following errors.

Upgrading target on /dev/ttyACM0 with DFU package /home/iot/Downloads/dfu_test_v_1.zip. Flow control is enabled.
Flushing com-port...
Opened com-port
Starting DFU upgrade of type 4, SoftDevice size: 0, bootloader size: 0, application size: 113584
Sending DFU start packet, afterwards we wait for the flash on target to be initialized before continuing.
PC -> target: 0502aabbccdd
PC -> target: 0502aabbccdd
PC -> target: 0502aabbccdd
PC -> target: 0502aabbccdd
PC -> target: 0502aabbccdd


Failed to upgrade target. Error is: Failed to establish connection

Possible causes:
- bootloader, SoftDevice or application on target does not match the requirements in the DFU package.
- baud rate or flow control is not the same as in the target bootloader.
- target is not in DFU mode. If using the SDK examples, press Button 4 and RESET and release both to enter DFU mode.
Closing serial port...

I tried to change the access properties of the port /dev/ttyACM0 by following command

chmod 777 /dev/ttyACM0

but nothing changed.

Any help?

Parents
  • Hey i have overcome the problem, however i do not know what was exactly the mistakes. I guess that was with the flashing. I programmed the devices in windows and then tried to send the upgrade in linux environment. It was not successful though. But when we programmed devices in linux and transferred upgrade in linux, it worked. I do not if anything else was in background. But this the way how get out of the trouble.

Reply
  • Hey i have overcome the problem, however i do not know what was exactly the mistakes. I guess that was with the flashing. I programmed the devices in windows and then tried to send the upgrade in linux environment. It was not successful though. But when we programmed devices in linux and transferred upgrade in linux, it worked. I do not if anything else was in background. But this the way how get out of the trouble.

Children
No Data
Related