Error while performing OTA update

I want to perform OTA update micropython program to my digimesh devices. I generate public and private keys and put public keys to remote devices and i created on one of them fs.ota file (i used generated private key). In process i got error "Could not send ‘Image Notify’ packet > transmit status was not received’ do not know what to do next with it.

Are you using API mode or transparent mode?

I am using API on the central node and transparent on the routers which i want to update. I cannot change it to API because it will disable Micropython i tested this on the central node and on the routers they go to transparent mode as soon as i activate micropython.

If you want to update a remote module via a Module that is already running Micro Python, then you need to disable the Micro Python app first. Then use standard API mode (API mode 1 and 2). Once the update is done, you can re-enable your Micro Python app.

So, how i can do that. This is my scenario:

  • I have 50 elements of digimesh and all of them run the same micropython program and i want to update them all. Do I need to connect them individually to disable micropython or i can do this in smart way. Is there any AT command or anyhing that i can use?

If you are going to do it over the air, then you are going to have to do it one module at a time. What I would suggest is you use the over the air commands to disable Micro Python. Format the file system and then upload your Micro Python app. Finally enable the auto start.

What is the command to disable micropython? Can you please do it step by step (i already generated keys and made ota file)

These would be all API frames using remote AT Commands. I would suggest you use the API Frames Generator in XCTU to help you assemble your packets.

The commands would be AP0
ATFS_format_confirm
Send the image
AP4

Ok, I still do not understand.
I created remote AT command request with AT command field AP and leave parameter value empty. And this return success. And now how do I write in AT command ATFS_format_confirm?

7E 00 1D 17 01 00 00 00 00 00 00 00 00 FF FE 02 46 53 46 6F 72 6D 61 74 5F 63 6F 6E 66 69 72 6D 99

7E 00 1D 17 01 00 13 A2 00 41 E0 E0 95 FF FE 02 46 53 46 6F 72 6D 61 74 5F 63 6F 6E 66 69 72 6D 4E
And i got response 02 (Invalid command)

Looks like you will need to issue the format locally instead of from a remote AT command.