Over the past couple of years I have been writing and assembling a common set of libraries, for use with my AVR projects. Most have been written by myself with modifications by Warren Janssens; others have been modified from Atmel application notes and third party libraries.
As of the time of this writing, I have the following libraries included:
- analog - simplifies ADC use, with both synchronous and asynchronous (ISR based) implementations
- Distance - simple library for reading the cheap eBay ultrasonic distance sensors
- eeprom - my first library, reads and writes from / to EEPROM
- i2c - driver for hardware based i2c Master implementation (deprecated; use twi for new projects)
- manchester - mancheter encoding utility, for use with 433MHz transmitter / receiver pairs
- psx - PSX Controller driver, see the dedicated page for details
- pwm - timer / ISR based PWM generation; can be used on any pins
- ring - ring buffer implementation used in serial library
- sd-card - read / write to SD cards
- serial - serial RX and TX; can use synchronous (polling) and asynchronous (ISR) implementations for either RX and TX.
- ShiftRegister - interface with 74595 shift registers
- timer - timer which can provide time-since-startup in both ms and us, depending on available hardware. Multiple implementations for timer0 and timer1, for various AVR chipsets.
- twi - updated twi / i2c library, supports all modes of operation (master read / write and slave read / write) (based off of the Arduino TWI library, and updated for more configurability)
- universal_controller - client library for integrating the universal controller with projects
- ws2811 - control the various RSG LED strips out there (including a version which can be run on 8MHz AVR on internal resonator)
The SD card library is released under the GPL, as per the license declaration in the comments. The twi library is released under the GPL (as that is the license for the version I modified). The i2c library is released for personal use only (the original code is © Atmel Corporation; my changes are © Wyatt Olson). All other libraries are released under the Creative Commons Attribution-NonCommercial-ShareAlike license (the PSX driver has been approved for CC release by Bill Porter).
You can browse the repositories on GitHub, or download the current version of all the libraries (and all my AVR projects too).