# Awesome AVR Microcontrollers
A curated list of awesome AVR tools, libraries, resources, and shiny things. Inspired by awesome-... stuff.

- [Awesome AVR](#awesome-avr)
	- [Boot Loader](#boot-loader)
	- [Driver](#driver)
	- [EEPROM](#eeprom)
	- [I2C](#i2c)
	- [ISP](#isp)
	- [JTAG](#jtag)
	- [Keyboard](#keyboard)
	- [LCD](#lcd)
	- [PWM](#pwm)
	- [SPI](#spi)
	- [TWI](#twi)
	- [USART](#usart)
	- [USB](#usb)
	- [Wireless](#wireless)
		- [nRF24L01](#nrf24l01)
		- [ZigBee](#zigbee)
	- [Xmega](#xmega)
	- [Miscellaneous](#miscellaneous)
- [Hardware](#hardware)
	- [Programmers](#programmers)
- [Software](#software)
	- [Compilers](#compilers)
	- [Integrated Development Environments](#integrated-development-environments)
	- [Simulators](#simulators)
- [Resources](#resources)
	- [Articles](#articles)
	- [Books](#books)
	- [Videos](#videos)
	- [Websites](#websites)
- [Other Awesome Lists](#other-awesome-lists)
- [Contributing](#contributing)

## EEPROM
* [i2ceeprom](https://github.com/w0qs1/i2ceeprom) - A simple C library for interfacing with 24CXX series I2C EEPROMs.

## I2C

* [i2cdevlib](https://github.com/jrowberg/i2cdevlib) - I2C device library collection for AVR/Arduino or other C++-based MCUs.
* [I2C-master-lib](https://github.com/g4lvanix/I2C-master-lib) - Lightweight I2C library for 8-bit AVRs. 

## Keyboard

* [tmk_keyboard](https://github.com/tmk/tmk_keyboard) - A keyboard controller firmware for Atmel AVR USB family.
* [AVR-Keyboard](https://github.com/BathroomEpiphanies/AVR-Keyboard) - USB Keyboard firmware for Atmel AVR microcontrollers.

## LCD
* [I2CLCD](https://github.com/w0qs1/i2clcd) - A simple C library for interfacing with I2C LCDs.

## SPI

* [AVRLib/SPI](http://www.tinkerer.eu/AVRLib/SPI/) - Serial Peripheral Interface.

## USB

* [v-usb](https://github.com/obdev/v-usb) - A Firmware-Only USB implementation for Atmel's AVR Microcontrollers.
* [LUFA](https://github.com/abcminiuser/lufa) - A lightweight USB Framework for AVRs.
* [libusbx](https://github.com/libusbx/libusbx) - A cross-platform user library providing access to USB devices.

## Wireless

* [rf24boot](https://github.com/nekromant/rf24boot) - nRF24L01+ bootloader for avr and other mcus.
* [libnrf24l01p](https://github.com/omriiluz/libnrf24l01p) - NRF24L01+ Transceiver library.
* [RF24Network](https://github.com/maniacbug/RF24Network) - Network Layer for nRF24L01(+) Radios.
* [nrf24L01_plus](https://github.com/kehribar/nrf24L01_plus) - Portable nrf24L01+ library with auto acknowledgement and auto retransmission support.
* [arduino-nrf24l01](https://github.com/aaronds/arduino-nrf24l01) - An Arduino port of the [nRF24L01](http://www.tinkerer.eu/AVRLib/nRF24L01) library.
* [NRF24-BTLE-Decoder](https://github.com/omriiluz/NRF24-BTLE-Decoder) - Sniff and decode NRF24L01+ and Bluetooth Low Energy using RTL-SDR.
* [AVRLib/nRF24L01](http://www.tinkerer.eu/AVRLib/nRF24L01/) - Nordic Semiconductor nRF24L01.

## Miscellaneous
*Useful libraries or tools that don't fit in the categories above or maybe just not categorised yet*

* [AVR Libc](http://www.nongnu.org/avr-libc/) - A high quality C library for use with GCC on Atmel AVR microcontrollers.
* [light_ws2812](https://github.com/cpldcpu/light_ws2812) - A lightweight library to control WS2811/WS2812 based LEDS and LED Strings for 8-Bit AVR microcontrollers.
* [avr-os](https://github.com/chrismoos/avr-os) - A multitasking OS for Arduino and AVR platforms.
* [AVR-Crypto-Lib](http://avrcryptolib.das-labor.org/) - A library providing implementations of cryptographic algorithms for the AVR 8-bit microcontroller family.
* [libemb](https://github.com/wendlers/libemb) - A collection of libraries which try to make things needed in many MCU based projects more convinient.
* [Pocket AVR Programmer](https://github.com/sparkfun/Pocket_AVR_Programmer) - Example firmware and board files for the Pocket AVR Programmer.
* [avr-tutorials](https://github.com/abcminiuser/avr-tutorials) - LaTeX typeset versions of my popular AVR Tutorials.
* [AVRliberty](https://github.com/dreamiurg/avr-liberty) - Library of routines for AVR microcontollers.
* [AVR-EAX-AES-bootloader](https://github.com/sirgal/AVR-EAX-AES-bootloader) - Bootloader for AVR microcontrollers featuring EAX mode encryption in 1024 bytes.
* [ArduinoAES256](https://github.com/qistoph/ArduinoAES256) - Ilya's byte-oriented AES-256 implementation implemented for Arduino.
* [Arduino AESLib](https://github.com/DavyLandman/AESLib) - Arduino Library for AES Encryption (source based on avr-crypto-lib).
* [avr-libs](https://github.com/supermucca/avr-libs) - Some other libraries and code examples for interfacing AVR microcontrollers with external devices

# Software
*Software for creating a development environment.*

## Compilers
*List of AVR compilers*

* [avr-gcc](https://gcc.gnu.org/wiki/avr-gcc)

## Integrated Development Environments
*List of AVR nominal IDEs.*

* [Atmel® Studio](http://www.atmel.com/tools/atmelstudio.aspx)
* [CodeVisionAVR]()

## Simulators
*List of AVR Simulators*

* [simavr](https://github.com/buserror/simavr) - A lean, mean and hackable AVR simulator for linux & OSX.

# Resources
*Various resources, such as books, websites, and articles for improving your AVR development skills and knowledge.*

## Articles
*Fantastic AVR related articles.*

## Books
*Fantastic AVR related books.*

* [Make: AVR Programming](http://littlehacks.org/AVR-Programming) - Learning to Write Software for Hardware.

## Videos
*Fantastic AVR related videos.*

## Websites
*Useful AVR related websites.*

* [AVR Freaks](http://www.avrfreaks.net/) - AVR Freaks Forum.
* [AVR Projects](http://www.avrprojects.net/) - Free projects for 8-bit atmel avr microcontrollers.
* [Arduino for Projects](http://duino4projects.com/)
* [ATmega32 AVR](http://atmega32-avr.com/)
* [PIC-Microcontroller](http://pic-microcontroller.com/)

## Persian Websites

* [avr92](http://avr92.ir/)

## Other Awesome Projects
*Collection of useful codes, snippets, ...*

* [AVR-Programming](https://github.com/hexagon5un/AVR-Programming) - Code examples for the book "Make: AVR Programming".
* [AvrProjects](https://github.com/KonstantinChizhov/AvrProjects) - Different projects and drafts for Atmel's avr controllers.
* [Tinkerer's AVRLib](http://www.tinkerer.eu/AVRLib/) - A small collection of code snippets which are often needed programming Atmel AVR-Controllers.

# Other Awesome Lists
*Other amazingly awesome lists*

* [lists](https://github.com/jnv/lists) - List of (awesome) lists curated on GitHub
* [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - A curated list of awesome awesomeness.
* [awesome](https://github.com/sindresorhus/awesome) - A curated list of awesome lists.
* [awesome-cpp](https://github.com/fffaraz/awesome-cpp) - Awesome C/C++ frameworks, libraries, resources, and shiny things.
* [free-programming-books](https://github.com/vhf/free-programming-books) - List of Freely Available Programming Books
* [papers-we-love](https://github.com/papers-we-love/papers-we-love) - Papers from the computer science community to read and discuss.

# Contributing
Please see [CONTRIBUTING](https://github.com/fffaraz/awesome-avr/blob/master/CONTRIBUTING.md) for details.
