The developer's resource for computer interfacing, especially USB, serial (COM) ports, mass storage, and embedded networking. (Formerly

Home > USB Central > USB Code

USB Device Code
and Companion Host Software

Links to firmware examples for USB devices and applications that communicate with the devices. Chip providers are another good source for example code.

Generic | Atmel | Cypress | Freescale | FTDI | Microchip
National Semiconductor | ST-Ericsson/Philips | Firmware-only projects
Other projects

Also see:

HID Page | WinUSB

Generic Device Firmware

MCCI has USB DataPump firmware that supports many controllers and classes.

Nucleus RTOS includes real-time software components for devices. From Mentor Graphics.


AT89C5131 USB micro-controller evaluation firmware using the ALERT embedded real-time OS. From M. J. Bauer.

LUFA (Lightweight USB Framework for AVRs) is an open-source, driver for the AT90USBXXX AVR microcontroller series. From Dean Camera.

yampp is an on-going project to design MP3 players with USB interfaces. From Jesper Hansen.

Partner Links

Cypress Semiconductor

SourceForge has EZ-USB example code and driver code, mostly for Linux.

The EZUSB2131 Project Homepage has projects as well.

USB link neatly measures temperature. Uses the EZ-USB and Visual Basic, no VB source code. From Mary Burke, Analog Devices. From EDN.

USB-serial converter experiments. Taking a converter apart and finding out what's inside and what it can do. From Wim Lewis.

Freescale Semiconductor/Motorola

The USB08 Project Page presents a peripheral design using the HC908JB8. From Oliver Thamm.


Embedded USB Design By Example. A free ebook from John Hyde and FTDI.

A Simple USB Oscilloscope for the PC. By Dr Eddie Insam. Uses FTDI's FT8U245AM.

USB on a Basic Stamp. Using FTDI Chip's controller. From Lennard Electronics.


M-Stack open source USB device stack for Microchip PICs. From Alan Ott at Signal 11 Software.

Using Microchip's generic driver with C# .NET Applications. From Mat at

Interacting with Microchip Full Speed USB Demo board using Visual Studio Tools (Visual Basic .NET and Visual C++ .NET). From Vidya Panuganti and others.

National Semiconductor

usbn2mc library for the USBN9603/04 . From Benedikt Sauter.

USBGPS OpenSource Project. A GPS receiver using Dallas Semiconductor's DS89C420 and National Semiconductor's USBN9603. From Yu Lu.

ST-Ericsson (formerly Philips)

Note that the PDIUSBD11 has been discontinued.

Craig Peacock's Beyond Logic has an article The Philips PDIUSBD11 USB Peripheral with I2C Serial Interface that will help in understanding the data sheet and an example project with a 'D11 interfaced to a PICMicro 16F87x.

Nintendo Game Boy Advance USB Interface using a PIC and PDIUSBD12. From Robert Meerman.


Firmware-only projects (no hardware USB controller)

World’s Smallest Low-speed USB Analyzer (Atapchi) controlled entirely by an Ubicom SX microcontroller (X48BD/TQ). There is no hardware USB controller in this project. USB communications are handled entirely in firmware.

A firmware-only low-speed device using the Atmel AVR Microcontroller. From Objective Development Software GmbH.

Other projects

Connecting two PCs via USB. The easiest solution by far is to buy a cable with embedded circuits that do it for you such as the FastLynx USB bridge cable from Sewell Development.