I realised that the Arduino Uploader (featured here earlier) doesn’t work for Mega2560s. Easy enough to fix, but I wanted something that’d work out the box so I’m recommending XLoader instead. Works much the same way. In fact, I’m just going to leave you with this screenshot and a couple of links.
Download XLoader from the XLoader site.
And download the precompiled firmware you want to update to (do right-click-> save target as…):
Start XLoader, load the hex file you downloaded into it, select your device (Mega(ATMEGA2560) for PolargraphSD machines, Duemilanove/Nano (ATMEGA328) for older Polargraph machines), select your COM port and press UPLOAD.
UPDATE- [minor] WARNING WILL ROBINSON.
Kongorilla points out to me that XLoader is a little unforthcoming in the event of a problem – If you load a file that isn’t a hex file, then it still goes through the charade of loading it, but then quietly announces at the end “0 bytes uploaded“. So keep an eye on the status line to make sure it actually does what you think it’s doing.
Some interesting stuff that you probably aren’t interested in:
Note that I’m going to start uploading the compiled hex files to the SVN repository so I don’t have to faff on with updating zips and things. The problem with this is that the hex file will not automatically be the compiled version of the code that is next to it in the repo. I’ve still got to do that bit manually so it’ll probably be out-of-sync much of the time.
The way to check to see if the source code has been updated since the hex file has been compiled is to look at the revision numbers:
In this case, the source code (the .ino file) has been updated in the same revision as the compiled file (the .hex file). This means that there hasn’t been any updates to the source code since the hex file was compiled.
If the source code has a higher revision number than the hex file, then the hex file is an older version and won’t reflect the changes in the source code. You should compile it yourself (the regular way, through Arduino IDE).