Hi,
we have invested noticeable amout of time to let this running without any positive result.
In general there are two mainstream solutions for the Arduino OTA remote update:
1/ Data transfer done in sketch context:
User
sketch includes library (e.g. by jandrassy) which broadcasts “here I am ready
for OTA” and listens on a port for incoming binary;
When the
new binary is coming (e.g. from Arduino IDE in the local network) is
stores the data into unused part of the program flash memory (“second
partition”);
And resets
the board;
Special
bootloader based on Optiboot then copies binary from second partition to
the first one and resets the board;
The new
sketch starts;<div>
2/ Data transfer done in bootloader context:
User
sketch is commanded to reset the board (via Ethernet or Serial line, or
button … );
Special
bootloader based on Ariadne creates TFTP server and waits for new binary;
If it is
coming it flashes it directly to the flash memory and restarts the board;
But there are also other options:
Use
solution 1, but implement a periodical check of some http server;
In a case
of a new FW available it downloads it to the second partition and resets
the device …
Nevertheless – all solutions need a special bootloader and until now we were not able to run such a bootloader on CONTROLLINO.
In general – each existing OTA solution for Arduino boards requires local Ethernet access – so if you need to do it remotely, there is necessary to have some kind of a gateway. Reuse existing solutions for CONTROLLINO is very complicated and up to now we have failed to let it running. Theoretically it is possible to directly access some remote server from CONTROLLINO, but without any sufficient security.
Any hint from your side?
</div>