To build a Unified Program and Debug Interface (UPDI) programmer1, I started with a USB-2TTL “USB to TTL Serial Communication Conversion Module” from eBay. The chip on the board is a CH342. This is a USB-to-UART/TTL adapter utilising a chip manufactured by WCH (Jiangsu Qinheng Microelectronics), which provides a USB-C interface. The latest drivers for the CH family of chips are available for download on the WCH website.
I chose the two-channel version of the USB-TTL converter so that I can use the second channel as TTL UART (RS232) or RS485 in the future.
To build my adaptor, I am using the following components:
- 1N5817 Schottky Diode.
- 1 kΩ 1/4 W resistor.
- 470 Ω 1/4 W resistor.

Disabling the TX and RX LEDs
Due to the way that the TX and RX LEDs are populated on the USB-2TTL board, we need to disable them on the channel that we are converting to UPDI. I converted UART1; these LEDs are the two closest to the yellow voltage selection jumper.


There are several ways of disabling the LEDs; I went with removing the current-limiting resistors, using a soldering iron and a pair of tweezers.


Wiring up the UDI cable
The three components were wired up as per the schematic above, using Dupont wires as the cables to interface between the USB-to-UART/TTL adapter and the microcontroller (in this case, an ATtiny 1614)




Checking it works
I will cover the Arduino IDE settings for the ATtiny 1614 in a second post.
- Not as Adafruit call it “Unusually Playful Device Interfacer”
- The colour codes I have used (RD, BN, YE, and BK) are from DIN 47100. It is very useful to use the codes when drawing or making cable harnesses.