Knowledge Is Power
There are a TON of pages out there on how to solve this error. The problem is none of them worked for me. The typical solutions range from not having the correct serial port or correct Arduino model board selected under the Tools menu in the Arduino software, to not having a driver (or the correct driver) loaded.
However, the frustating part for me is I KNEW I had the correct serial port and board and driver selected because I was getting output from a sketch scrolling in the Serial Monitor window via a USB connection.
The fix? DISCONNECT ANY WIRES going to pin 0 (RX) while you do the upload. The sketch upload function uses the RX pin.
NOTE: You also need to disconnect any wires going to
pin 0 (RX)if you have a sketch with a Serial.read() or Serial.peek() statement, and you want to use the Serial Monitor input field (as shown using the '752' in the example below) to feed data into the running sketch. If you don't disconnect pin 0it will appear as if your data was entered into your sketch but nothing will happen because the data never truly gets input.
Another Awesome Microcontroller
The Texas Instruments Launchpad is a development board that accepts MSP430 microcontroller chips in a socket. The thing that's different is that once you get the chip programmed you can remove it from the socket on the Launchpad development board and use it in a stand-alone manner on a circuit board or breadboard.
There's an open source fork of the Arduino IDE software that you can use to program this board called Energia so if you know how to code for an Arduino you're good to go on this board as well.
Here's a good deal on a bundle that I got off of Amazon:
TI Launpad Kit - http://www.amazon.com/LaunchPad-MSP-EXP430G2-breadboard-wires-bundle/dp/B00SQTCSA2/
UC-Berkeley is offering a free MOOC on electronic interfaces using the Launchpad/MSP430 with the Energia software:
And here's a good introductory video on the Launchpad:
Keith's Home Page