Reference   Language | Libraries | Changes


The Arduino environment can be extended through the use of libraries, just like most programming platforms. Libraries provide extra functionality for use in sketches, e.g. working with hardware or manipulating data. To use a library in a sketch, select it from Sketch > Import Library.
A number of libraries come installed with the IDE, but you can also download or create your own. See these instructions for details on installing libraries. There's also a tutorial on writing your own libraries. See the API Style Guide for information on making a good Arduino-style API for your library.

Standard Libraries

  • EEPROM - reading and writing to "permanent" storage
  • Ethernet - for connecting to the internet using the Arduino Ethernet Shield
  • Firmata - for communicating with applications on the computer using a standard serial protocol.
  • GSM - for connecting to a GSM/GRPS network with the GSM shield.
  • LiquidCrystal - for controlling liquid crystal displays (LCDs)
  • SD - for reading and writing SD cards
  • Servo - for controlling servo motors
  • SPI - for communicating with devices using the Serial Peripheral Interface (SPI) Bus
  • SoftwareSerial - for serial communication on any digital pins. Version 1.0 and later of Arduino incorporate Stepper - for controlling stepper motors
  • TFT - for drawing text , images, and shapes on the Arduino TFT screen
  • WiFi - for connecting to the internet using the Arduino WiFi shield
  • Wire - Two Wire Interface (TWI/I2C) for sending and receiving data over a net of devices or sensors.

The Matrix and Sprite libraries are no longer part of the core distribution.

Due Only Libraries

  • Audio - Play audio files from a SD card.
  • Scheduler - Manage multiple non-blocking tasks.

Due and Zero Libraries

  • USBHost - Communicate with USB peripherals like mice and keyboards.

Zero Only Libraries

  • AudioZero - Play audio files from a SD card.
  • RTC - Real Time Clock to schedule events.

Wifi 101 Only Library

  • WiFi101 - library to be used only with Wifi shield 101

Esplora Only Library

  • Esplora - this library enable you to easily access to various sensors and actuators mounted on the Esplora board.

Arduino Robot Library

  • Robot - this library enables easy access to the functions of the Arduino Robot

Arduino Yún Bridge Library

  • Bridge Library - Enables communication between the Linux processor and the Arduino on the Yún.

USB Libraries (Leonardo, Micro, Due, Zero and Esplora)

  • Keyboard - Send keystrokes to an attached computer.
  • Mouse - Control cursor movement on a connected computer.

Contributed Libraries

If you're using one of these libraries, you need to install it first. See these instructions for details on installation. There's also a tutorial on writing your own libraries.

Communication (networking and protocols):

  • NewSoftSerial - an improved version of the SoftwareSerial library
  • PS2Keyboard - read characters from a PS2 keyboard.
  • SSerial2Mobile - send text messages or emails using a cell phone (via AT commands over software serial)
  • X10 - Sending X10 signals over AC power lines
  • SerialControl - Remote control other Arduinos over a serial connection


  • Debounce - for reading noisy digital inputs (e.g. from buttons)

Displays and LEDs:

  • Adafruit Industries)
  • Improved LCD library fixes LCD initialization bugs in official Arduino LCD library
  • LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.
  • HCMS-29xx scrolling LED display.
  • Matrix - Basic LED Matrix display manipulation library
  • Adafruit Industries)
  • Sprite - Basic image sprite manipulation library for use in animations with an LED matrix
  • FFT - frequency analysis of audio or other analog signals
  • TLC5940 - 16 channel 12 bit PWM controller.