Skip to content

A USB host stack library for embedded Rust applications

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

fralalonde/embedded-usb-host

Repository files navigation

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

About

A USB host stack library for embedded Rust applications

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published