Features of the tinyAVR

SpecificationsATtiny204ATtiny404ATtiny804ATtiny1604
Flash (program memory)2048 bytes4096 bytes8192 bytes16384 bytes
Flash w/Optiboot1536 bytes3584 bytes7680 bytes15872 bytes
RAM128 bytes256 bytes512 bytes1024 bytes
EEPROM64 bytes128 bytes128 bytes256 bytes
BootloaderOptiboot (optional, not recommended)Optiboot (optional, not recommended)Optiboot (optional)Optiboot (optional)
GPIO Pins12 (11 usable)12 (11 usable)12 (11 usable)12 (11 usable)
ADC Channels10 (9 usable)10 (9 usable)10 (9 usable)10 (9 usable)
DACNoNoNoNo
PWM Channels6666
Timer Type B1111
Timer Type DNoNoNoNo
InterfacesUART, SPI, I2CUART, SPI, I2CUART, SPI, I2CUART, SPI, I2C
Clock optionsInternal 20/16/10/8/5/4/1 MHzInternal 20/16/10/8/5/4/1 MHzInternal 20/16/10/8/5/4/1 MHzInternal 20/16/10/8/5/4/1 MHz
SpecificationsATtiny214ATtiny414ATtiny814ATtiny1614
Flash (program memory)2048 bytes4096 bytes8192 bytes16384 bytes
Flash w/Optiboot1536 bytes3584 bytes7680 bytes15872 bytes
RAM128 bytes256 bytes512 bytes2048 bytes
EEPROM64 bytes128 bytes128 bytes256 bytes
BootloaderOptiboot (optional, not recommended)Optiboot (optional, not recommended)Optiboot (optional)Optiboot (optional)
GPIO Pins12 (11 usable)12 (11 usable)12 (11 usable)12 (11 usable)
ADC Channels10 (9 usable)10 (9 usable)10 (9 usable)10 (9 usable)
DACYesYesYesYes
PWM Channels6666
Timer Type B1112
Timer Type DYesYesYesYes
InterfacesUART, SPI, I2CUART, SPI, I2CUART, SPI, I2CUART, SPI, I2C
Clock optionsInternal 20/16/10/8/5/4/1 MHzInternal 20/16/10/8/5/4/1 MHzInternal 20/16/10/8/5/4/1 MHzInternal 20/16/10/8/5/4/1 MHz

Reference: https://github.com/SpenceKonde/megaTinyCore

Pinout

ATtiny814_DevBoard_pinout.png

Preparing Arduino IDE

  • Install megaTinyCore
  • Open the Arduino IDE
  • Go to "Tools" -> "Board" -> "megaTinyCore" and select your chip
  • Go to "Tools" and set the desired board options
  • Go to "Tools" -> "Programmer" and select "jtag2updi(megaTinyCore)"
  • Connect the UPDI programmer to the UPDI header on the development board. You can find such programmers in my projects or you can use an Arduino Uno as a UPDI programmer.
  • Go to "Tools" -> "Burn Bootloader"
  • Now you can upload your sketch

ATtiny814_DevBoard_pic1.jpgATtiny814_DevBoard_pic2.jpg