hathach/tinyusb

An open source cross-platform USB stack for embedded system

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 58 minutes ago
Added to GitGenius on September 9th, 2026
Created on November 26th, 2012
Open Issues & Pull Requests: 269 (+0)
GitHub issues: Enabled
Number of forks: 1,506
Total Stargazers: 7,085 (+0)
Total Subscribers: 135 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 8.2 hours
Mean response time: 52.0 days
90th percentile: 66.6 days
Tracked items: 254

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 77% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "Prio 📌" is answered fastest, typically in under an hour, while "Feature 💡" waits about 4 days. Only 7% of issues opened in the past year have been closed. Three people close 80% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 86
New in 7 days: 12
Closed in 7 days: 3
Avg open age: 654 days
Stale 30+ days: 61
Stale 90+ days: 52

Recent activity

Opened in 7 days: 12
Closed in 7 days: 3
Comments in 7 days: 0
Events in 7 days: 4

Top labels

  • Bug 🐞 (194)
  • Feature 💡 (65)
  • Prio 📌 (14)
  • followup (11)
  • Prio Top 🚨 (10)
  • Adafruit 🌸 (4)
  • Port DWC2 (4)
  • Sponsor 💖 (4)

Detailed Description

TinyUSB is an open-source cross-platform USB Host and Device stack for embedded systems.

The project addresses the challenge of implementing USB functionality on resource-constrained microcontrollers. It solves this by providing a memory-safe stack that uses no dynamic allocation and keeps all buffers static, combined with thread-safe interrupt handling that defers USB interrupts to non-ISR task functions. This design prioritizes real-time performance and safety in embedded environments where these constraints matter.

The tool suits developers building USB-connected embedded devices who need to support multiple MCU families without rewriting USB code. It works across more than fifty microcontroller families and integrates with bare metal systems as well as real-time operating systems including FreeRTOS, RT-Thread, and Mynewt. The stack includes support for CDC, HID, MSC, Audio, and Host-mode USB, making it applicable to a wide range of device types from simple serial interfaces to mass storage and human interface devices. The project provides example implementations and board support files for common development boards to accelerate getting started.

Development activity shows consistent engagement with the community through GitHub Discussions as the primary forum for questions and advice. The project maintains active issue tracking with templates to guide bug reports and feature requests. Testing infrastructure includes unit tests, fuzzing, and hardware testing to validate functionality across supported platforms. Documentation is actively maintained with online guides covering getting started, implementation details, and porting procedures for adding new MCU and board support.