“The AVRgpp (General Purpose Programmer) is open source hardware and software designed for use with the Arduino IDE. It provides the following functions in a single unit:
an ISP programmer,
a UPDI programmer (with or without a 12V programming pulse),
a USB to serial interface.
Functions are selected via a 128x32 I2C OLED LCD and two buttons. The left button selects functions, the right button selects options.
AVRgpp can optionally provide power (5V or 3.3V) to the target system - within the limits of USB power.
With the supplied firmware AVRgpp supports programming but not JTAG debugging. It provides two spare data lines (plus ground) on a test/debug header which could be used for diagnostics or debugging - via software serial and suitable firmware.”