Hardware:
FTDI ft232 Breakout board3.3V 3.3V
GND GND
TX MOSI
CTS MISO
RX SCK
DTR RST_N
All connections are on the end to the breakout board (except 3.3V)
Software:
Reference https://electronut.in/bootloader-atmega32u4/Avrdude that has the ft232 driver
Addtion to avrdude-serjtag04n "avrdude.conf"
programmer
id = "ftdi";
desc = "FT232R BitBang Programmer";
type = ft245r;
miso = 3; # cts
sck = 1; # rxd
mosi = 0; # txd
reset = 4; # dtr
# baudrate = 4800 ;
;
Sparkfun Pro Micro 3V bootloader
https://github.com/sparkfun/SF32u4_boards/tree/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro8.hex
Put "Caterina-promicro8.hex", "avrdude.conf" and avrdude-serjtag04n's "avrdude.exe" in the same directory.
Output
avrdude: BitBang OK
avrdude: pin assign miso 3 sck 1 mosi 0 reset 4
avrdude: drain OK
ft245r: bitclk 4800 -> ft baud 2400
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9587
avrdude: reading input file "0xff"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xff:
avrdude: load data lfuse data from input file 0xff:
avrdude: input file 0xff contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xd8"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xd8:
avrdude: load data hfuse data from input file 0xd8:
avrdude: input file 0xd8 contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.02s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xce"
avrdude: writing efuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xce:
avrdude: load data efuse data from input file 0xce:
avrdude: input file 0xce contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.02s
avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.
avrdude: BitBang OK
avrdude: pin assign miso 3 sck 1 mosi 0 reset 4
avrdude: drain OK
ft245r: bitclk 4800 -> ft baud 2400
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9587
avrdude: safemode: Fuses OK
avrdude done. Thank you.
C:\avrdude-serjtag04n\bin>avrdude -P ft0 -c ftdi -p m32u4 -B 4800 -U lfuse:r:low_fuse_val.hex:h -U hfuse:r:high_fuse_val.hex:h
avrdude: BitBang OK
avrdude: pin assign miso 3 sck 1 mosi 0 reset 4
avrdude: drain OK
ft245r: bitclk 4800 -> ft baud 2400
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9587
avrdude: reading lfuse memory:
Reading | ################################################## | 100% 0.02s
avrdude: writing output file "low_fuse_val.hex"
avrdude: reading hfuse memory:
Reading | ################################################## | 100% 0.02s
avrdude: writing output file "high_fuse_val.hex"
avrdude: safemode: Fuses OK
avrdude done. Thank you.
C:\avrdude-serjtag04n\bin>avrdude -P ft0 -c ftdi -p m32u4 -B 4800 -U flash:w:Caterina-promicro8.hex
avrdude: BitBang OK
avrdude: pin assign miso 3 sck 1 mosi 0 reset 4
avrdude: drain OK
ft245r: bitclk 4800 -> ft baud 2400
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9587
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
ft245r: bitclk 4800 -> ft baud 2400
avrdude: reading input file "Caterina-promicro8.hex"
avrdude: input file Caterina-promicro8.hex auto detected as raw binary
avrdude: writing flash (32768 bytes):
Writing | ################################################## | 100% 217.75s