AVR Programmer 1.0 is Built and Working

The boards arrived from Dorkbot yesterday. I learned my lesson from last time and assembled all three in parallel (taking the risk that the circuit was bad and that I’d waste 3x the materials). I flashed the bootloader to the first one using the alpha version of the board (in the back with the blue shunt), then self-programmed it over USB with the AVRISP mkII firmware. Final test:

I read the fuses from my Hypna Go Go’s ATtiny13A, and I got the lovely Device signature = 0x1e9007 that seems to play a critical role in many dreams I recall nowadays. Success!

Bringing up the other two boards was a bit more difficult. The first would program and would blink its bootloader status LED, but it wouldn’t program. A cold solder joint on the ‘32u2’s core GND pin was the cause. The last board was a more serious case: the ‘32u2 got hot when I plugged in the USB, and other than being ISP-programmable, it was dead to the world. I never found the short, but I did scrub off the flux more carefully, and I resoldered a couple capacitors that looked slightly suspicious, and when I plugged it back in again, it was fine.

Next steps:

  • Validate that the new HWBE jumper works.
  • Port over the JTAG Whisperer.
  • Expose the USB-TTL serial functionality.
  • Fix a few layout issues (obscured labels, component placement that is inconvenient for assembly).
  • Switch to a version of the USB socket that has pegs. I can already tell a high-use application like this is going to need a little more strength than just SMD solder pads.
  • Replacement of the current-limiting resistor on the LED. Someone please remind me why I picked 1K ohms. My gorgeous purple LEDs are hardly visible!

(Update: linked to this post on Reddit.)