Upload Arduino sketch over-the-air (GPRS SIM900)

I have an Arduino in a remote location and would like to upload new code via GPRS (a SIM900 is connected to the Arduino via tx/rx serial interface). I was thinking about putting the .hex file (or some format) on a webserver and Arduino will automatically check once a day if there is a new sketch available. If a newer sketch is available, the Arduino will download and update itself. I am clueless of how to accomplish this.

Can anyone point me in the right direction? Maybe even someone have accomplished this already and can share their knowledge?

Hi i'm in the same situation.
I'd like to send via sms a command which connects arduino to internet and it checks if there are new updates available.
I don't know where to start, i read something about upgrading arduino via ethernet but i don't know if that process can be adapted to our situation.

Hope someone can help us!

i read something about upgrading arduino via ethernet

If you'd linked to that it would have been helpful.

Hai schanbel,

I am also doing same project,

If you'r find out the solution of your project, please help me,

or else, both working together and beat that problem .

give me the reply , I am waiting for your response.

Thanks in advance.

Trying to achieve the same right now.

What happened with your projects? Did anyone solve it, or at least came up with something in the right direction?

Hello!
I was thinking in implementing this for my project.

A solution could be a second arduino with kind of a bootloader in it.
This "bootloader" must be capable of:

  • using the modem to retrieve data
  • program the main arduino via ISCP or some

So the process could be:
The modem connected to both arduinos.

  1. The startup process is managed by the secondary arduino
    When you power on the system, only the secondary arduino starts. It must intialize the modem, and check if there are any updates
  2. If not, the secondary arduino restarts de modem and starts up the main arduino
  3. If there are updates, it must download the hex file, and reprogram the Main arduino. When it's done, symply it restarts the whole system.
  • If you need to update while it's working, the Main arduino could check if the main server has updates in order to do a self-reset and force the update process.

This bootloader thing seems to be a standar procedure, I dont know if there are any sketch that do this; but could be.

Greetings

Someone has found a firmware update solution using SIM800