The good folks at FTDI make a handy single-chip USB interface, and offer royalty-free drivers for a bunch of different systems. But it’s tricky playing with surface mount parts without custom boards, so the guys at DLP Design offer the FTDI chip on a little DIP pattern carrier board along with its support logic. That means I can stick a USB interface onto something I slapped together on a protoboard! So I bought one from Mouser and tried hooking it to an AVR microcontroller. It turns out that it was basically working from the get-go, except for two problems. One was that I wasn’t using the supplied driver, and for some reason, libusb can write and send control messages, but for some reason can’t read data back. The other problem is that the AVR gcc port has some sort of problem iterating through string pointers. But I tweaked the code and used the driver, and I now have two-way communication with my microcontroller! Now to reflash the EEPROM, so the USB device identifies itself as mine!
The ribbon cable lets me reprogram the AVR without unplugging it — fizzygeek thought it was a good idea. She was right.