Easy Open Source AVR USB Device Development Kit
The USnooBie is a microcontroller kit that does not require any sort of AVR programmer or USB-to-serial converters to load and run compiled code. It's hardware design allows the user to develop low cost USB devices with Atmel's AVR ATmega microcontrollers. It can also be used to develop projects which are not USB devices. It is even compatible with Arduino.
What is it?
It's a board featuring an ATmega328P microcontroller and bits of hardware which makes the microcontroller become a USB device. This design allows the user to develop their own USB gadgets with the USnooBie. It also allows the USnooBie to run a bootloader that does not require any USB-to-serial converter, and also does not require an AVR programmer of any kind.
USnooBie makes heavy use of Objective Development's V-USB. If you are developing USB gadgets, V-USB will become your best friend.
If you are not such an advanced user, it is also compatible with Arduino.
What can you do with it?
This thing is perfect for interactivity between you and a computer! Make a USB mouse, keyboard, joystick, gamepad, steering wheel, flight simulator, or any combination of these devices by creating a HID USB device. Go ahead, throw a few potientiometers, Hall effect sensors, and buttons on an excercise bike and BAM! Greatest racing simlator ever! You wouldn't even need to write any drivers for most HID devices and they will work across all major operating systems.
Or maybe you want something custom, then simply use LibUSB and code your own computer device driver. Go ahead and replicate that USB missile launcher you've always wanted. I've personally made a LCD screen that displays Google Talk messages
Hey I remember seeing this project once that was an AVR microcontroller using USB to...
YES there has been PLENTY of projects out there already using V-USB. There are some crazy creations out there. My favorite ones are: my USB business cards, the Haunted USB Cable and Stealth USB CapsLocker.
But this board uses an ATmega328P and not the AVR microcontroller that (insert project here) uses, how can I made those projects with USnooBie?
Ah but the idea behind USnooBie is to provide you with a board that you can experiment with. The ATmega328P packs many peripheral features such as analog-to-digital converter inputs, several timers with PWM capabilities, and a variety of different data busses. This allows you to develop your ideas on a powerful and flexible platform first, before finalizing the design. One of the beautiful things about V-USB is that it's designed to work with almost all AVR microcontrollers, even the 8 pin ATtiny microcontrollers. So to port over your idea to another chip, just change your configuration and recompile!
There are AVR microcontrollers with built-in USB already, why should I use USnooBie instead?
But do they come in 8 pin DIP packages? No they do not good sir. Although the ATmega328P has 28 pins, you can experiment with it first, and then port the code over to a smaller ATtiny85 later once you've made sure the code works.
Like I've mentioned before, V-USB works with almost all AVR microcontrollers. Prototyping PCBs just for surface mount chips can get expensive and I think there still are people who prefer using through hole components for their hobby DIY projects.
It sounds like I have a lot to learn before I can use this effectively
Oh, remember you can use the USnooBie like any other microcontroller, it doesn't have to be a USB device. It is great for any microcontroller project even if it does not involve USB.
USB is pretty complicated on the inside, but it's pretty easy to make devices using V-USB once you get started. If you know how to compile an AVR project, you are pretty much half way there, V-USB requires you to compile 2 files, include 1 header file, and include another configuration header file. V-USB handles the dirty work such as getting the device recognized by the computer, all you worry about is your application's behaviour.
A common problem people have with V-USB is their device not being enumerated (the device not recognized error), the most common mistakes are errors in the circuitry, mistakes in the configuration, or not initializing V-USB properly (calling a few functions in sequence and enabling interrupts). With USnooBie, you can depend on the circuitry to work at both 3.3 and 5 volts, and you can use the same configuration over and over again, making development MUCH easier and less frustrating.