Uploading sketch over internet

What will be general way to upload sketch over internet or wireless firmware upgrade?

What I understand from searching so far:

-Download and save the .hex file to the external flash memory.

-modify the bootloader to upload sketch from the flash.

is that a good starting point?

I don't know if its a trivial step or not, any clue suggestion will be appreciated.

In general, this is difficult, and I've not seen any 'hacked-up' solutions that actually work. If you search on "arduino wireless programming" you'll find several (hacker) pages, like on adafruit, but none of those work worth poo, that I've seen. There are some commercial units for sale, and you might also look at the Moteino device from low power labs, which allows programming using RFM12 and RFM69 radios.

I use this one with great success.

https://github.com/d0ughb0y/NetLoad

Cool, I've not seen that one. Looks like they use a special bootloader, like Moteino does. When I tried the various older "wireless programming" schemes, using avrdude and XBee for instance, I came to the conclusion that data was being lost due to limited buffering capability of the XBee modules and that avrdude was really not written to handle multiple possible retries due to RF link errors. However, I imagine Ethernet boards will not have such serious buffering limitations; data will be thoroughly buffered at both ends, and retries done automatically.

@sorscode, post #1 - good one! ... Does this work with router wifi RF connections, or only with direct Ethernet connections? How do you do it?

you mentioned about buffering capability limitations. I feel that too. What happens in case of larger sketches? or not so reliable internet connections? Isn't it safer to save it to a local memory before?

I see the spark core has a on board flash memory, "SST25VF016B-75-4I-S2AF-T" of 16 mbit. Can I assume that they used it as a buffer? or as I was initially thinking, the sketch is downloaded and saved to the local memory first before flashing.

So the way I use the mentioned bootloader on Arduino Megas with the Ethernet Shield. Now granted I don't have Ethernet ran everywhere I use the Megas, so I use this neat little device.

http://www.netgear.com/home/products/connected-entertainment/gaming-home-theater/WNCE2001.aspx

Best Buy awhile back had them on sale for $10-15 a piece, and I bough a stock pile of them. I have a VLAN in my house along with a specific hidden SSID just for all my Arduino Controllers.

Hi

I have a remote Arduino system plugged into a USB port on my remote server that runs 24 hours a day. The remote server has the Arduino development software installed.

I update the remote Arduino system by logging in with remote desktop to the remote server, copying the Arduino sketch and library files to the server and then recompling/uploading the sketch on the server to the remote Arduino system.

Since the remote Arduino system has an integrated ethernet shield I can log into it remotely via a browser for testing - or I can test it locally using the browser on the server.

Cheers

Catweazle NZ

hello, do you have any result ? i also try to upload the sketch via network , but i have no idea on choosing board. Can you give me any advice?

KappaTseng: hello, do you have any result ? i also try to upload the sketch via network , but i have no idea on choosing board. Can you give me any advice?

An ESP8266 can do this without any problems.

Do have a look at ArduRF1, they implemented wireless upload in their bootloader

cbrandt: Do have a look at ArduRF1, they implemented wireless upload in their bootloader

ArduRF1 looks a neat idea but they themselves say " it hasn't been done right yet" , wonder why they went over making a board when they could have built a shield that could have possibly provided ability to upload code from internet

PS: I found this thread on arduino.stackexchange: https://arduino.stackexchange.com/q/58548/51902