Datasheet
Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button
to shields which block the one on the board.
See also the mapping between Arduino pins and ATmega32u4 ports.
The Leonardo 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 pins 0 (RX) and 1 (TX). 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 Arduino board. The RX 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 on pins 0 and 1).
A SoftwareSerial library allows for serial communication on any of the Leonardo's digital
pins.
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.
The Leonardo appears as a generic keyboard and mouse, and can be programmed to control
these input devices using the Keyboard and Mouse classes.
The Leonardo can be programmed with the Arduino software (download). Select "Arduino
Leonardo from the Tools > Board menu (according to the microcontroller on your board).
For details, see the reference and tutorials.
The ATmega32U4 on the Arduino Leonardo comes 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 also bypass the bootloader and program the microcontroller through the ICSP (In-
Circuit Serial Programming) header; see these instructions for details.
Rather than requiring a physical press of the reset button before an upload, the Leonardo is
designed in a way that allows it to be reset by software running on a connected computer. The
reset is triggered when the Leonardo'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 pressing the reset button on the Leonardo. 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 Leonardo 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 pressing the reset button on the board.
The Leonardo has 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.