cherry-embedded/CherryUSB
CherryUSB is a tiny and beautiful, high performance and portable USB host and device stack for embedded system with USB IP observed · 2026-08-28
Health v2 · maintenance only
89/100
- Activity 99
- Release rhythm 69
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-02. Adoption (stars, forks) is never an input.
- gap_med: 63
- age_days: 1880
- days_rel: 128
- days_push: 8
- n_releases_24m: 10
Adoption not part of the score
2009 stars · 438 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-30, confidence not recorded
CherryUSB is a portable, high-performance USB host and device stack written in C for embedded systems with various USB IPs. It provides class drivers (CDC, HID, UVC, UAC, DFU, RNDIS), a USB core, and porting layers for controllers like DWC2, EHCI, XHCI, and MUSB.
Use cases
- implement usb device firmware on an mcu
- add usb host support to an embedded system
- create a cdc virtual serial port over usb
- implement usb hid keyboard or mouse device
- stream video over usb with uvc
- port a usb stack to a custom usb ip core
- achieve near-theoretical usb bandwidth with dma
When to choose
- you need a lightweight, portable USB stack for bare-metal or RTOS embedded projects
- you want zero-copy, DMA-friendly USB performance
- you need both host and device support in one stack
- you want readable, well-structured USB code for learning
When to avoid
- you need a USB stack for desktop operating systems
- your project already uses a vendor-provided USB stack with no porting needs
- you need USB 3.x features not covered by supported IPs
Facets
library · maturity active
embedded sdk file-system embedded-systems hardware developer-tools embedded c cross-platform usb-host usb-device usb-stack hid cdc uvc dfu dwc2 ehci xhci
1 source
- readme: https://github.com/cherry-embedded/CherryUSB · fetched 2026-08-28 · 3cf6ad62d03d
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| cherry-embedded/CherryUSB | main | 89 |
For agents
markdown · JSON · MCP: product_card(name="cherry-embedded/CherryUSB")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem