Getting Started with the LilyPad Arduino USB

To program the LilyPad Arduino USB, connect it to the computer with a Micro-USB cable. Select "LilyPad Arduino USB" from the Tools > Board menu.

1.  Overview

Like the other LilyPad Arduino boards, the LilyPad Arduino USB is designed to be sewn into clothing and other fabric with conductive thread. The LilyPad Arduino can be powered either from the USB connection or a 3.7V LiPo battery. The board runs at 3.3V; applying more voltage (e.g. 5V) to its pins may damage it. If you connect a USB cable from a computer and a LiPo battery to the LilyPad, it will charge the battery. The switch on the LilyPad allows you to turn the board on or off (use the "CHG" position to turn the board off).

Similar to the Arduino Leonardo and Micro, the LilyPad Arduino uses only a single microcontroller (the Atmel ATmega32U4) to both run your sketches and communicate over USB with the computer. This means that you only need a USB cable to program the LilyPad Arduino USB (as opposed to an FTDI USB-serial adaptor as with other LilyPads) but it also means that there are some differences in the way that the USB communication works.

For information on making connections between the LilyPad Arduino and other components with conductive thread, see Leah Buechley's LilyPad Arduino tutorial.

2.  Differences from Other LilyPad Arduino Boards

The LilyPad Arduino USB uses a single processor (the ATmega32U4) to both run your sketches and communicate over USB with the computer. This provides more flexibility - for example, the board can emulate a keyboard or mouse - but it also means that the USB connection resets whenever the processor does (e.g. when you upload a new sketch).

For details on these differences, see the guide to the Arduino Leonardo and Micro. In addition, see the following section for a few differences between the LilyPad Arduino USB and the Leonardo or Micro.

3.  Differences from the Arduino Leonardo and Micro

Because it operates at 3.3V, the LilyPad Arduino USB is limited to an 8 MHz clock speed vs. 16 MHz for the Leonardo and Micro. Your sketches should behave the same on either board (e.g. delay(1000) will pause for 1 second), but it's important to correctly select the appropriate board in the boards menu. Uploading to a LilyPad Arduino USB with the board set to "Arduino Leonardo" or "Arduino Micro" will mean that your sketch won't be able to communicate over USB (and the timing of other things will be off). If this does happen, you'll need to recover using the method described in the next section.

4.  Uploading Sketches to the LilyPad Arduino

Typically, you'll upload to the LilyPad Arduino USB as you do with other Arduino boards: select "LilyPad Arduino USB" from the Tools > Board menu and the appropriate serial port from the Tools > Serial Port menu and press the upload button. This will reset the LilyPad, launching the bootloader, which receives the new sketch from the computer and stores it on the board. The bootloader then automatically launches the new sketch. You can tell when the bootloader is running because the on-board (pin 13) LED will fade in and out (breathe).

Sometimes, however, this automatic reset fails. This can happen, for example, if you upload a sketch to the LilyPad with a different board (e.g. the Leonardo or Micro) selected in the Tools menu. If this does happen, there's an easy fix: you can press the reset button on the LilyPad twice in quick succession to initiate the bootloader. To upload with this technique, first press the upload button in the Arduino software; then, when you see the status message "Uploading..." press the reset button twice. This should initiate the bootloader, and the Arduino software will upload your sketch. You might have to play a bit with the relative timing of pressing the upload button in the software vs. the double-press of the reset button on the board.

5.  Additional Resources

The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the guide are released into the public domain.