Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 1.57 KB

README.md

File metadata and controls

37 lines (27 loc) · 1.57 KB

embedded-usb-host

An all-in-one host-side Rust USB stack implementation destined for embedded (no_std) use.

Includes host driver for SAMD chips (for now).

Includes class drivers for keyboard and MIDI devices.

Status

Work in progress, alpha-level code but compiles and runs.

Confirmed working with classic Dell SK-8115 keyboard, see examples/bootkbd

Also See https://github.com/fralalonde/usbmidi-host for sample MIDI application.

Not yet published on crates.io for obvious maturity reasons.

Missing

  • Concurrent, non-blocking transfers (yep, still all single threaded now)
  • STM32, RP2040 support would be nice
  • Get string descriptors from device (forked UTF16 is ready!)
  • More class drivers (Hub, Mouse, etc.)
  • Alternative Async API
  • Harmonize with usb-device crate for full OTG madness

Known bugs

  • Double fault on device reconnect (this is new)
  • MIDI not coming in (Arturia Beatstep)
  • HP keyboard (KU-1156) fails to get descriptor, why?

Reference

Thanks

ATSAMD USB and bootkbd drivers based on https://github.com/bjc/bootkbd and https://github.com/bjc/atsamd-usb-host