Made My Own Arduino Board - ATMEGA32U4 - Bootloader Questions

Hi Nick,

However, all those use SPI programming, whereas your chip uses PDI. Now I don't have a hardware PDI programmer, and although I have an AVR Dragon this model doesn't (seem to) support the PDI interface.

I attempted to make a PDI programmer using a Uno, but the documentation for the protocol is somewhat sparse, and I haven't succeeded yet.

I had a look in the data sheet, if I interprete things right, PDI is just a term used in the data sheet for ICSP. But it uses plain SPI underneath: see the block diagram of the chip: port B is connected to the spi block which in turn is connected to the programming logic.
The data sheet uses PDI and PDO as signal names because not on all packages they are on the same pins as the MOSI and MISO signals used when not in programming mode. (but on the atmega32u4 they are)

If I had one, I could download the firmware from my Leonardo, and confirm whether or not it agrees with the hex file we were discussing.

Seen the above, you can just connect an arduino running ArduinoISP, to the atmega32u4 and download it as follows:

    avrdude -P/dev/ttyUSB0 -b9600 -cavrisp -pm32u4 -U flash:r:leo.hex:i

I tried it (my leo serving as atmega32u4), it results indeed in a hex file of 76KB.

That is why fm suggested you can use any "old" arduino as programmer. BTW, in mean time you can also use a "new" arduino: the leonardo (so probably also a vinciduino).