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.

Cypress Semiconductor

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.


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

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

ST-Ericsson (formerly Philips)

Note that the PDIUSBD11 has been discontinued.

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.

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.