Continuing the discussion from FYI: Model 01 ICSP pin numbering is rotated:
the Model 01 seems to present an electrical challenge for my Arduino Micro as ISP (too much current?); I had to dig out the Dragon and leave the keyboard powered on to get the ATtinys to do ISP programming reasonably.
One of the symptoms I observed is that even when the Model 01 was powered through USB, the Arduino Micro had trouble talking SPI to it. I observe on the schematic that LEFT_NRESET
is wired directly (no series resistor) between the ATmega and the left keyscan ATtiny. Also, the Caterina bootloader code actively drives that pin high when it’s done checking for the PROG key. So any connected ISP will have to fight the ATmega’s current source capability on that pin. (The Micro is also a 32u4, so it’s a tossup who will win, and that might depend on power supply details of both.)
The Caterina bootloader should probably turn the output off, instead of actively driving it high. (Or maybe turn off the output after holding it high for a brief period, if there is a concern about it not floating up quickly enough to get a clean reset.)
A possible workaround is to jumper RESET_MCU
to ground when attempting to program the left hand ATtiny. (Note that the ATmega shares a power bus with the left ATtiny, so powering the ATtiny through the ICSP connector turns on both.)