- Notifications
You must be signed in to change notification settings - Fork83
Experimental device-side USB framework for microcontrollers in Rust.
License
rust-embedded-community/usb-device
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
USB stack for embedded devices in Rust.
The UsbDevice object represents a composite USB device and is the most important object forapplication implementors. The UsbDevice combines a number of UsbClasses (either custom ones, orpre-existing ones provided by other crates) and a UsbBus device driver to implement the USB device.
The UsbClass trait can be used to implement USB classes such as a HID device or a serial port. Animplementation may also use a custom class if the required functionality isn't covered by a standardclass.
The UsbBus trait is intended to be implemented by device-specific crates to provide a driver foreach device's USB peripheral.
atsam4 - device-driver implementation for atsam4e & atsam4s microcontrollers (UDP). Examples can be foundhere. While not expressly supported with this crate, atsam3s and atsam55g could also be supported with a similar code-base.
atsamd - device-driver implementation for samd21 & samd51 microcontrollers. An example for theitsybitsy_m4 board from Adafruit can be foundhere.
imxrt-usbd - device-driver implementation for NXP i.MX RT microcontrollers. Examples fori.MX RT boards, like the Teensy 4, are maintained with the driver.
musb - device-driver implementation for musb (Mentor USB, USB2.0 IP), widely used in various microcontrollers and SoCs from vendors like TI, MediaTek, Puya, and Allwinner.Examples can be found inpy32-hal.
rp2040-hal -device-driver implementation for the raspberry pi RP2040microcontroller. Examples can be found in the various boardscrateshere.
stm32-usbd - device-driver implementation for multiple STM32 microcontroller families.Examples can be found in each individual HAL crate that implements the USB peripheral.
- usbd-hid
- HID class
- usbd-human-interface-device
- HID class
- usbd-serial
- CDC-ACM serial port class
- usbd-storage
- (Experimental) Mass storage port class
- usbd-dfu
- Device Firmware Upgrade class
- usbd-picotool-reset
- picotool-reset class
- usbd-midi
- MIDI class
- usbd-audio
- (Experimental) Audio class
Other implementations for USB in Rust
- TheEmbassy project has an async USB stack, embassy-usb.
About
Experimental device-side USB framework for microcontrollers in Rust.
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.