I'm working on a project which is bound to let users interact from their iPhones (maybe Androids later on) to an Arduino.
For this I'd like to see some kind of delta updates straight from internet to the SD-card and let the Arduino load it up.
All forms of encryption I will take care myself.
In theory, the code i write on my computer i can compile to hex myself. Then I'll have to transmit the hex to the Arduino's rom via serial?
Is it possible to, with or without modifications to the Arduino, load up delta updates?
And if possible: could I set up some of the code to be private? ( no security through obscurity or anything but just to make it a little harder to manipulate Arduino)
Then I'll have to transmit the hex to the Arduino's rom via serial?
That's how the IDE does it. Of course, because it uses a wire, it can also trigger the reset switch functionality automatically. Wirelessly, that is not going to be possible.
For this I'd like to see some kind of delta updates straight from internet to the SD-card and let the Arduino load it up.
This is not the same thing at all. The Arduino's bootloader is not designed to load a hex file from an SD card. You'd need to create a new bootloader that can do this. Certainly not an easy task.
could I set up some of the code to be private?
Some of the code? It's a hex file that gets uploaded. It is private in that the only copy is the one on my PC, until I publish the source code, then the source code is public, but the hex file is still private because the compiler/linker only lives on my computer.
Load up the the hex file up to the SD-card via internet and have the Arduino load it up to its rom.
my question again is:
Is it possible to, with or without modifications to the Arduino, load up delta updates?
Do I need some kind of serial interaction with the Arduino's P IC?
Is making a custom boot loader a too difficult task to achieve?
Best Regards,
--sv
UPDATE: looking at this page: http://wickedboot.wickeddevice.com/ , it definitly seems possible.
Though I am at school right now, I'll check it out in the evening and let you hear what ive found out.
For my current project I just included a slave micro to handle starting up, searching for updated firmware on an SD card, and then flashing it to the main micro if there is any. No worries about having to squeeze SD library code into the reserved bootloader size. How you get the hex file onto the SD card in the first place is up to your main micro.
PaulS:
No. The whole hex file gets replaced every time.
With the Arduino's what?
Too difficult for who? Me? Yes, given my experience level with bootloaders. You? I have no idea.
Posted July 25th, with no updates in 2 months. Yep, a breakthrough can be expected any minute...
Clearly it needs tweaking, but the core seems to be already working.
My experience with boot loaders is nil like yours, that doesn't mean that I don't like a challenge!
Try to be a little more positive sometimes!
Later today I'll try to make the code posted on Github try to work on my project. I'll probable fail though.
About the delta updates; I seem to have misformulated my question, a better title would have been: "Update firmware of Arduino via Ethernet upon encountered delta "; Not incremental updates.
@extent
Do you have some code i can get my hands on? Or did you write your own?