USB library

This summary page is auto-generated from the github repository. Click here to visit the main repository page.

Go to repository index


Stable release:unreleased
Status:feature complete
Description:Library to interface with USB2 PHY

Key Features

  • Source code to deal with common requests of endpoint0
  • Source code to deal with multiple endpoints in a single thread using interrupts (experimental)
  • Example Mouse HID application
  • Example combined Mouse/Keyboard HID application
  • Example CDC/ECM (Ethernet over USB) application
  • Example CDC/PSTN (Virtual COM port) application
  • Example CDC/EEM (Ethernet Emulation) application (experimental)

To Do

  • Port documentation
  • Complete the Interrupt experiment (vcom) by porting endpoint0 to the interrupt layer.

Firmware Overview

This module contains the code that deals with the common requests on endpoint0, and a series of example USB devices that can be built, including HID, and three CDC devices (Ethernet, Modem).

Known Issues

  • The virtual COM port example is experimental and uses interrupts to reduce thread-count - this needs more testing to check that the turnaround times are reliable.
  • Some devices are based on a funky keyboard with two embedded L1s, other on the L1-audio board. All should be ported to the L1-audio board so that there is a platform on which this code can be ran.
  • The EEM example needs testing - it needs a host that supports EEM!

Required Repositories

  • xcommon
  • sc_xud
  • sc_ps2 (keyboard+mouse only)


Issues may be submitted via the Issues tab in this github repo. Response to any issues submitted as at the discretion of the maintainer for this line.