Elliot Williams

Building your Own USB Devices for AVR with the V-USB Library

Date: This event took place live on June 20 2014

Presented by: Elliot Williams

Duration: Approximately 90 minutes.

Cost: Free

Questions? Please send email to


Everyone loves USB devices. But the low-level details of the USB protocol make it a pain to work with.

Enter V-USB, an AVR microcontroller firmware library that lets you create your own USB devices for only a few dollars, using easily available parts.

This webcast will walk you through two example projects: a custom scrollwheel mouse and a USB temperature controller. The scrollwheel project demonstrates what's necessary to implement a Human-Interface Device like a mouse, keyboard, or gamepad. This project opens up the world of custom input devices.

The USB temperature controller project demonstrates how to get data from your device into your computer, and vice-versa. We'll build a generic "vendor specific" device that gives us full control. A few lines of host-side Python code can then build up a GUI or webserver to control and respond to the temperature controller.

Along the way, you'll learn about the USB protocol and exactly how the V-USB routines provide what your microcontroller needs to get the job done. If you're comfortable building projects for microcontrollers in C, and want to ditch your USB-serial adapter cable and go straight to the real deal, this webcast will get you up and running as quickly and painlessly as possible.

About Elliot Williams

Elliot is a Ph.D. in Economics, a former government statistician, and a lifelong electronics hacker. He was among the founding members of HacDC, Washington DC's hackerspace, and served as president and vice-president for three years. He now lives in Munich, Germany where he works for an embedded hardware development firm which has to date exactly one employee (and CEO). His first book (Make: AVR Programming) came out of his experiences teaching AVR programming workshops at HacDC.

You may also be interested in: