Tuesday, May 24, 2011

USB CDC toy


This was originally going to be my calling card for Maker Faire. It's a very simple implementation of Osamu Tamura's AVR-CDC project, realized without a board. I had planned to make it a small device that can be plugged into a USB port and observed on a terminal spitting out information about me. The Great Global Hackerspace Challenge project took a lot out of me, though, so I didn't get it done in time.

The blobby on the left is an I/O module- three input switches, three output LEDs, and a reset switch and power LED. It plugs onto the header that is currently being used for programming. The circuitry is pretty simple: 100nF bypass capacitor, the 5V in from the USB port goes to the positive supply pin through a 1N4001, and the USB D+/D- are connected to a couple of the I/O pins.

Some words about that 1N4001: it was chosen specifically for its high forward voltage. See, the USB input wants a 3.6V input or so, and the AVR doesn't want to run at the 16+MHz needed for this project below about 4V. Originally, following the schematic on the project home page, I was using a red LED as a voltage drop. The AVR never ran stably- the voltage (about 3.3V) was just too low. Now, it's running at about 4.2V, and the 68-ohm resistors between the AVR and the USB limit the current to just a few mA, and everybody's happy.

Right now, I'm up to my elbows in the source code of the original project, removing the serial I/O code and replacing it with easily used hooks for internal functions. Ultimately I'll bend it to be programmable through the Arduino interface- for now I'm working in AVRStudio5. Once I have it all done I'll release all the deets so anybody can make one. I may also make a PCB and sell kits for it through NoCube, and probably just the pre-programmed IC, as well.

1 comment:

  1. Interesting post...I'm glad that i came across here.
    I wondering if? are you willing to buy a new high
    quality AVR here are tips for that problem.
    Come and visit? I’m from: Denon avr 1611 .

    ReplyDelete