hathach / tinyusb
git clone https://github.com/hathach/tinyusb.git
0.21.0 Β· 3mo ago
π₯ on GitHub Trending today
An open source cross-platform USB stack for embedded system
β
stars, 24h
β
stars, 7 days
+121
stars, 30 days Β· #1,923
7.2k
β
total
1.6k
forks Β· 398 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageC
LicenseMIT
Created2012-11-26 (13y ago)
Last pushtoday
Watchers139
OwnerUser
Seen on GitHub Trending
- 2026-10-20 β #11 monthly in c Β· +121 β
GitHub topics
Links
- GitHub: github.com/hathach/tinyusb
- Homepage: https://www.tinyusb.org
- Releases Β· Issues Β· Hacker News mentions
README excerpt
TinyUSB ======= |Sponsor| |License| |Build Status| |CircleCI Status| |Documentation Status| |Static Analysis| |Fuzzing Status| |Membrowse| |CodeRabbit| |Greptile| Overview -------- .. figure:: docs/assets/logo.svg :alt: TinyUSB :align: left .. raw:: html TinyUSB is an open-source cross-platform USB Host/Device stack for embedded systems. Itβs designed for memory safety (no dynamic allocation) and thread safety (all interrupts deferred to non-ISR task functions). The stack emphasizes portability, small footprint, and real-time performance across 50+ MCU families. Sponsors -------- TinyUSB's continued development is made possible by its sponsors. If TinyUSB helps your products or projects, consider funding its development on `GitHub Sponsors`_. Platinum ^^^^^^^^ `Adafruit`_ has backed TinyUSB since day one as its founding and sole Platinum sponsor. Buying their products directly funds the project's development. .. figure:: docs/assets/adafruit_logo.svg :alt: Adafruit Logo :align: left :target: https://www.adafruit.com .. raw:: html Sponsors (QWORD) ^^^^^^^^^^^^^^^^ .. QWORD-SPONSORS-START *No QWORD sponsors yet β be the first!* .. QWORD-SPONSORS-END Backers (DWORD) ^^^^^^^^^^^^^^^ .. DWORD-BACKERS-START *No backers yet β be the first!* .. DWORD-BACKERS-END Supporters (Word) ^^^^^^^^^^^^^^^^^ .. WORD-SUPPORTERS-START cee\*\*\*\* .. WORD-SUPPORTERS-END Thanks (Byte) ^^^^^^^^^^^^^ .. BYTE-THANKS-START `@8086net `__, `@GCRev `__ .. BYTE-THANKS-END .. _GitHub Sponsors: https://github.com/sponsors/hathach .. _Adafruit: https://www.adafruit.com Key Features ------------ * **Thread-safe:** USB interrupts deferred to task context * **Memory-safe:** No dynamic allocation, all buffers static * **Portable:** Supports 50+ MCU families * **Comprehensive:** Includes CDC, HID, MSC, Audio, and Host support * **RTOS-friendly:** Works with bare metal, FreeRTOS, RT-Thread, and Mynewt .. figure:: docs/assets/stack.svg :width: 500px :align: left :alt: stackup .. raw:: html :: . βββ docs # Documentation βββ examples # Examples with make and cmake build system βββ hw β βββ bsp # Supported boards source files β βββ mcu # Low level mcu core & peripheral drivers βββ lib # Sources from 3rd party such as FreeRTOS, FatFs ... βββ src # All sources files for TinyUSB stack itself. βββ test # Tests: unit test, fuzzing, hardware test βββ tools # Files used internally Getting started --------------- See the `online documentation `_ for information about using TinyUSB and how it is implemented. Check out `Getting Started`_ guide for adding TinyUSB to your project or building the examples. If you are new to TinyUSB, we recommend starting with the ``cdc_msc`` example. There is a handful of `Supported Boards`_ that should work out of the box. We use `GitHub Discussions `_ as our forum. It is a great place to ask questions and advice from the community or to discuss your TinyUSB-based projects. For bugs and feature requests, please `raise an issue `_ and follow the templ