Home

Awesome

microUPDI

DIY UPDI programmer with open-source hardware. Available for purchase at my Tindie store!

Hardware

The microUPDI programmer is based on the Sparkfun Pro Micro 5V/16MHz board (cheaper knock-offs also compatible) together with a daughterboard. This makes the programmer both cheap and easy to assemble.

<img src="https://i.imgur.com/Pb6wjoD.png" width="265"> <img src="https://i.imgur.com/Rl2J9at.png" width="260"> <img src="https://i.imgur.com/gsxmxBR.png" width="261">

Features

Firmware

To flash the Pro Micro with mEDBG firmware you'll have to install a hardware package to Arduino IDE.

Boards Manager Installation

Manual Installation

Visit microUPDIcore, and click on the "Download ZIP" button. Extract the ZIP file, and move the extracted folder to the location "~/Documents/Arduino/hardware". Create the "hardware" folder if it doesn't exist. Open Arduino IDE and a new category in the boards menu called "microUPDI Firmware Uploader" will show up.

Flashing the Arduino Pro Micro

Usage

After the Pro Micro is flashed with mEDBG firmware it will present itself to the computer as an mEDBG CMSIS-DAP device. In Atmel Studio it will show up as a generic mEDBG device, while in Arduino IDE it will show up as an *Arduino UNO WiFi Rev2.

If you're using the microUPDI programmer with megaTinyCore you just select the Xplained Mini (mEDBG, debug chip: ATmega32u4) option in the Programmers menu. For MegaCoreX it's Atmel mEDBG (microUPDI).

Here's an example command on how you can communicate with an ATmega4809 through Avrdude:

$ avrdude -C avrdude.conf -v -p atmega4809 -c xplainedmini_updi

Pinout

The UPDI pinout is based on the standard 6-pin ISP pinout. It's reverse insertion tolerant, just like the "old" ISP interface. It's also compatible with the Atmel ICE UPDI pinout. This means if you've designed a board to work with this (microUPDI) programmer, you can safely connect and use an Atmel ICE programmer without damaging your board or the ICE programmer.<br/> Note that the RXD and TXD lines are swapped on the target.

Click to enlarge:

<img src="https://i.imgur.com/pUzZbEq.png" width="500">