Programming the ATtiny1614

This article is part of: embedded-programming.

The ATtiny1614 isn't yet supported by PlatformIO and therefore needs another method to be programmed. Fortunately, pyupdi is here! Pyupdi is a Python UPDI driver for programming the "new" tinyAVR and megaAVR devices.


Power comes from a USB cable via a FTDI connector. The data comes from the UPDI connector and goes through another FTDI connector.


git clone

pip install -r requirements.txt


The first thing to do is to compile the code with the Arduino IDE and then send it with pyupdi. To be able to compile the code, first install the megaTinyCore library using the Libraries manager into the Arduino IDE and select the ATtiny1614 board.

From the Arduini IDE console, locate the .ino.hex that is generated when you compile and copy its path. It should be something like /tmp/arduino_build_342195/Blink.ino.hex.


Once your program is correctly compiled, open a terminal to send it to your device.

First, run ls /dev/* | greb usb to know the name of your port. It should look like /dev/ttyUSB0.

Then, run pyupdi with the name of the board you're working on tiny1614, the port where you want to send the code /dev/ttyUSB0 and the code itself /temp/arduino_buid_342195/Blink.ino.hex. -d tiny1614 -c /dev/ttyUSB0 -b 9600 -f /tmp/arduino_build_342195/Blink.ino.hex -v

Created 20/03/2020

Updated 20/03/2020