Libraries for Arduino
Navigation
Audio
Communications
- arduiNode - arduinode is a protocol for a wireless sensor network (WSN). Communication is handled in the background, neighbor nodes find each others and span the net. Some of its core features are: multi hop packet routing, dynamic id allocation, collision avoidance and rebroadcasting of lost messages.
- Streaming - C++-style Output with '<<'
- SerialDebugger is a library that enhance code readability, and debug control.
- NewSoftSerial: An interrupt-driven Software Serial library now used in the latest arduino releases.
- EasyTransfer: Easy communications between Arduinos over Serial.
- Buffered and non-blocking serial writes Serial manager that allows non-blocking serial writes along with a simple way of packetizing serial data by calculating checksums and appending packet headers in a transparent way for the user. Also provides packetized serial reception with a function callback when a full and checksum-correct packet has been received.
- SerialIP provides Internet connectivity over the serial port (no shields required)
- multiCamereIrControl Library, controlling Nikon, Canon, Sony, Minolta, Olympus and Pentax cameras just with an IR LED.
- http://geekcowboy.net/downloads/x10.zip: A library to both send and receive the X10 home automation communication protocol messages.
- TwitterLibrary assists in posting your data to twitter
- UComms A library that facilitates packetizing of data. This library is very flexible and allows you to define and implement your own protocol on top of the packetization. Comes fully commented/documented and with an example.
- TinyREST is a library that implements a REST-like server on top of the WiShield library. It provides ability to read and write to pins and EEPROM, but also ability to receive REST callbacks on changes.
- ModbusMaster: Arduino class library for communicating with Modbus slaves over RS232/485 (supports Arduino 1.0)
- RF24 - Stable, mature library for driving Nordic nRF24L01+ wireless RF radios. Includes tutorials and plentiful examples.
- GNTP - Arduino library for sending Growl notifications to your Mac, Linux or Windows PC over the network, using GNTP.
- Tx433_Proove - A simple lib to use remote controlled power outlet switches of the brand Proove.
Cryptography
- Arduino MD5:An easy-to-use MD5 library for the Arduino, for all your hashing needs.
Data Structures and Algorithms
Input / Output
- SoftPWM - Software based PWM library that moves any pin between any 2 states (low, high, high impedence, or pull up)
- Simple Voltmeter Class - uses the internal reference voltage (1.1V) to get an absolute voltage reading; can even be used to read own power source voltage value
- OneWire Interface (Atmel QTouch)
- GetOneWireTemp
- H48C - Library for use of Parallax H48C module
- PIDLibrary - Provides basic feedback control
- PIDAutotuneLibrary - Provides tuning parameters for the PID Library.
- Ping - Simplify the usage of Ping))) Ultrasonic Sensors
- Charlieplex - simplifies the coding of charlieplexed networks.
- DigitalToggle - register based pin toggle library
- TButton - Toggle a pin using a momentary button
- MomentaryButton - track short taps and long presses on a momentary button
- getOneWireTemp
- Morse is a library which speaks morse code
- Morse (another): sends without blocking (no delay()) and which uses String instead of char*
- Morse endecoder Another non-blocking Morse code library, both encoding (sending) and decoding (audio or digital/keyer), asynchronously.
- FancyLED: Another simple hardware abstraction library that enables blinking "N" times at custom rates, toggling, has a "fuse" example that allows for blinking to start after some lead time.
- PCA9685 test code: Simple test code interfacing I2C with PCA9685 pwm chip.
- Button (carlynorama) Another button abstraction library. Event based, also allows for being used with shift registers, debounce, holdDelay (like keyboards) etc. Lots of examples.
- N64Controller Library Supports N64 controllers on various pins. Based on this work.
- (Serial) Dbg A Serial Debugger class that supports printf syntax.
- SyncLED An LED class for blinking patterns and numbers asynchronously. Includes PWM support for smooth fade blinking.
- AtTouch A library for the Atmel AT42QT1070 7-channel Touch Capacitance Sensor IC via i2c
- GEColorEffects A library for controlling GE Color Effects RGB LED holiday light strings via a one-wire protocol
- SerialLCD A library for easy hardware serial interface with SparkFun 20x4 Serial Ready LCD screen. Based on SfLCD2
- shiftOutX A library to easily add up to 64 or more digital outputs to an Arduino by using 74HC595 shift Registers.
- MCP23S17 A Class for the MCP23S17 SPI I/O Expander.
Interrupts
- PcInt - simple pin change interrupts
- PinChangeInt - Preformance and size improved revision to PCInt
LCDs (Textual)
- serLCD - Sparkfun serLCD Library
- SevenSegmentLibrary - 4 Digit 7-Segment Display library
- LiquidCrystal use SPI and A 74HC595 shift register with Arduino's LiquidCrystal library.
- AXE133Y Software library for picaxe AXE133Y OLED 16x2 module
- LCDBitmap - Display graphics on a normally text-only LCD display
LCDs (Graphical)
Math
Schedulers and Pseudo Operating Systems
- os_wrap - OS wrapper: Tasks using cooperative multitasking, Semaphores, Message Queues, Timers, Odometer, EEPROM logging.
- EventFuse - Recurring events via a software count-down
- Aiko - A small modular, event-driven framework for structuring Arduino sketches
- Event System - includes events, an event queue class and a dispatcher class
- Finite State Machine Library for organizing complicated sketches.
- QP - The QP state machine framework for Arduino, which is like a modern event-driven RTOS specifically designed for executing state machines.
Sensors
Storage
Strings
- PString: A very lightweight string class that enables printing to buffer using the same code as Serial.print().
Testing, Utilities and Power Saving
- ArduinoUnit - Test suite
- Enerlib: easy-to-use wrapper for AVR's Sleep library.
- Sleep_n0m1: A Library to sleep for a specific length of time or until interrupt.
- Logging: easy-to-use logging library like log4j.
Timing
- Timer simple to use timed pin control and callbacks.
- swRTC - A software RTC (Real-Time Clock) based on timers available for Arduino and several microcontrollers
- Timer1 - Pwm, interrupt and stopwatch utilities for 16bit timer1.
- Frequency Counter - using Timer1
- MsTimer2 - - library to use Timer2 on milliseconds.
- FlexiTimer2 - library to use Timer2 with a configurable interval.
- Frequency generation using a hardware timer to drive a pin accurately or generate a periodic interrupt calling a function you supply.
- Metro - Implementation of recurring timed events like blinking LEDs or servo motor control
- TimedAction - a resource-friendly library for Timed Actions that occur every x millisecond.
- SimpleTimer simple library to launch timed actions.
- StopWatchClass - measure elapsed time with this elementary StopWatch Class based upon millis()
- Time - Software real time clock
- Tween Class - for ramps (PWM fades, for instance)
- millis() Rollover Handling - a function for detecting and handling rollover of the millis()
- Prescaler - easy get/set of the prescaler and alternative functions to millis() / delay()
- DCF77 - library to use DCF77 radio signal to set internal clock to atomic time