At the very least, MB should have put a "How to program firmware.txt" file on the github page - it is not reasonable to expect people to know that right-click save-as doesn't work as expected..
I'm curious how you expect the bootloader to protect against someone using "their own FW upload tool" ?
If the bootloader worked properly there would never be a need to use a seperate tool.
Obviously all bets are off as soon as someone hooks up to the ISP port.
.
Hit upload, wait a fraction of a second, and then press the reset button. 1.8 It will take a little while, but soon you should see a message telling you that your firmware has been updated successfully.
If your firmware does not update successfully, don't worry -- the timing can be really tricky because it will vary a lot from computer to computer. Try different timings, like pressing the reset switch just before you hit the upload button, or waiting a full second between hitting the upload button and pressing the reset switch. The process of figuring out exactly when to press each button can be frustrating, but you can't harm your bot by getting the timing wrong. And once you have it right, you'll know what works best with your computer and you'll have a head start next time.
Once you see the "Firmware update succeeded!" message, you're set! Go back to printing with your exciting new firmware.
WTF? Jeez what a bunch of idiots.
OK Makerbot, if you're listening, this how you do it properly :
1) Provide a mechanism for your application code to jump into the (write-protected) bootloader on command from the host with no other user interaction. You run the update code on the host and it just works. If the bootloader doesn't hear anything for a few secs, it should exit back into the application code (in case it somehow got entered accidentally).
2) As a fallback in the case of a bad download, provide a way to force entry to the bootloader at power-up, e.g. by holding one or more buttons down at power-up, no stupid timing windows. Have a clear indication that the button sequence has worked - e.g. flash a LED or the display backlight while in bootloader mode.
If you don't have buttons available , then just wait a few secs at startup to see if the host is trying to talk to you.
3) You may also want to have the bootloader do a checksum on the app code before jumping into it to ensure it's valid - in some cases this is just icing and not essential, although for a mechanical device that could suffer or cause damage if the software freaks, it would be irresponsible to not validate the code. The checksum can be generated by the PC software that does the firmware update, to avoid having to figure out how to get the AVR devtool to do it
That's it. Not hard. Half a day's work, couple of hundred byes of code tops.
Secondly, it is a really really good idea for the bootloader to be the first piece of code you write on a new product, and where possible you should use it as the default way to upload code during development. That way it gets plenty of testing and any issues will quickly become apparent.
Doing the bootloader at the last minute is asking for trouble as you won't have time to test it.