
Communication
The Robot has a number of facilities for communicating with a computer, another Arduino, or other
microcontrollers. The ATmega32U4 provides UART TTL (5V) serial communication, which is available on
digital the 10-pin board-to-board connector. The 32U4 also allows for serial (CDC) communication over
USB and appears as a virtual com port to software on the computer. The chip also acts as a full speed USB
2.0 device, using standard USB COM drivers. On Windows, a .inf file is required. The Arduino software
includes a serial monitor which allows simple textual data to be sent to and from the Robot board. The RX
(LED1) and TX LEDs on the board will flash when data is being transmitted via the USB connection to the
computer (but not for serial communication between boards).
Each one of the boards has a separate USB product identifier and will show up as different ports on you
IDE. Make sure you choose the right one when programming.
The ATmega32U4 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire
library to simplify use of the I2C bus; see the documentation for details. For SPI communication, use the
SPI library.
Programming
The Robot can be programmed with the Arduino software (download). Select "Arduino Robot Control
Board" or "Arduino Robot Motor Board" from the Tools > Board menu. For details, see the getting started
page and tutorials.
The ATmega32U4 processors on the Arduino Robot come preburned with a bootloader that allows you to
upload new code to it without the use of an external hardware programmer. It communicates using the
AVR109 protocol.
You can bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial
Programming) header; see these instructions for details.
Automatic (Software) Reset and Bootloader Initiation
Rather than requiring a physical press of the reset button before an upload, the Robot is designed in a way
that allows it to be reset by software running on a connected computer. The reset is triggered when the
Robot's virtual (CDC) serial / COM port is opened at 1200 baud and then closed. When this happens, the
processor will reset, breaking the USB connection to the computer (meaning that the virtual serial / COM
port will disappear). After the processor resets, the bootloader starts, remaining active for about 8 seconds.
The bootloader can also be initiated by double-pressing the reset button on the Robot. Note that when the
board first powers up, it will jump straight to the user sketch, if present, rather than initiating the
bootloader.
Because of the way the Robot handles reset it's best to let the Arduino software try to initiate the reset
before uploading, especially if you are in the habit of pressing the reset button before uploading on other
boards. If the software can't reset the board you can always start the bootloader by double-pressing the
reset button on the board. A single press on the reset will restart the user sketch, a double press will
initiate the bootloader.
USB Overcurrent Protection
Both of the Robot boards have a resettable polyfuse that protects your computer's USB ports from shorts
and overcurrent. Although most computers provide their own internal protection, the fuse provides an extra
layer of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the
connection until the short or overload is removed.