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 so once you get the chip programmed you can remove it from the socket on the Launchpad development board and use it on a breadboard, protoboard or circuit board.
There's an open source fork of the Arduino IDE software that you can use to program the TI Launchpad called Energia so if you know how to code for an Arduino you're good to go on this board as well.
The University of Texas is offering a free self-paced MOOC on embedded systems using an ARM-based TI Launchpad (but you can use an MSP430 Launchpad or Arduino if you want to):
In the past UC-Berkeley offered a free MOOC on electronic interfaces using the Launchpad/MSP430 with the Energia software:
And here's a good introductory video on the Launchpad:
Here's a good deal that I got off of Amazon:
TI Launpad Kit
Keith's Home Page