Skip to content

Latest commit

 

History

History
110 lines (77 loc) · 3.14 KB

readme.md

File metadata and controls

110 lines (77 loc) · 3.14 KB

tinyAVR Series-0/1 Multipurpose Peripheral

Demo board of a key pad & RGB leds. The keypad uses Snaptron BL10280 back lit domes (the first switch is populated).

Keypad using current mirror approach.

🇨🇦 Maple Leaf demonstration board with 29 LEDs. :)

Purpose

I wanted a framework to build modular components in to my design. For example, a controller dedicated to keypad input or a driver for those WS2812 LEDs. I also wanted to see if I could exploit the AVR architecture to build a WS2812 driver using the hardware found in ATTINY402 without resorting to bitbanging.

Ideally, you'd drop the chip in to your design, load the firmware, and provision the settings in the EEPROM or custom firmware.

This was also a project where I explored certain methods for making the software more modular with fewer inter-dependencies without the overhead.

Status

Features

  • LED Support: Yes (RGB888)
  • KeyPad: Analog (Preliminary)
  • Configurable Address: Yes
  • Sleep: Idle, Standby, Powerdown (Default: Standby)

Documentation

Parts

Support Devices

  • ATTINY402
  • Future: ATTINY40x, ATTINY8xx, ATTINY16xx

Incompatible Devices

  • ATTINY412 Some tinyAVR Series-1 devices may be supported. ATTINY412 does not have a LUT0 output. May have been able to use event system but this conflicts with I2C.

Development Environment

  • MPLab X IDE 5.50
  • Compiler: GCC 7.4.0 (Arduino toolchain)
    • GCC 5.4, builds, but not tested.

Reference Designs

See ATTINY402 details for more information.

Future Work:

  • Encoders & keypads feature
    • Matrix Keypad, Simple Keypad
  • Improve Analog Keypad support
    • And KeyPad calibration stored in NVRAM
  • Fancy LED Encoding
    • Color spaces (RGB888, RGBW8888, RGB565, Pallet)
    • LED effects feature?
  • Improve EEPROM support to persist defaults (beyond device ID)
  • Transparent SPI bridge variant (direct SPI to WS2812 only)
  • Variant with other protocols like CAN Bus? (❤️ CAN!)
    • This really allows super fancy stuff.

Contact Information

Feel free to contact opensource@bananasluglabs.com.

Please reach out to let me know if you find this useful or have included it in a product or project.