As a second exercise in soldering, I decided to make a tinyUSBboard. It’s a pretty cool gadget – a prototyping board with an AVR chip (can be programmed through the Arduino IDE). The USBasploader bootloader makes it very easy to program the chip without any extra ISP programmer; to run the bootloader just hold the “Program button” while resetting the board. Check out its website for some examples, and also the files to add to the Arduino IDE for programming through it.
The original uses an ATmega8, but I had only an ATmega8L (a low-power version), which runs on at most 8MHz (at least according to specs). So no good for a direct USB connection, which needs at least 12MHz. Thus I used an ATmega328p (the same chip as in today’s Arduino Uno). Of course the bootloader (and any program) is chip-dependent, but Stephan Baerwolf (the inventor of the board) kindly provided the firmware. Alternatively, one can compile the USBasploader from sources, after making the appropriate changes.
The second change from the original is a bit different wiring on the board, since I used a stripboard with 3x1 strips, and not a usual perfboard. This means less soldering, but probably more wires. I ran the wires (and one resistor) underneath the IC socket. This called for a precision socket, as it has more space underneath (apart from making it easier to swap the chips). It’s also one row shorter (the chip is closer to the USB socket).
(My soldering skills are pretty bad at the moment – I know that I left at least one cold joint.)