30 open-source projects similar to hathach/tinyusb, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Tinyusb alternative.
Embassy is an asynchronous framework for microcontrollers that provides a runtime for cooperative multitasking. It enables the execution of multiple concurrent tasks to maximize energy efficiency and CPU usage, utilizing an async executor that puts the processor to sleep when idle. The framework includes a comprehensive set of embedded components, featuring a hardware abstraction layer for peripherals like GPIO, SPI, I2C, and UART, alongside a TCP/IP network stack and a USB device stack. It also provides a Bluetooth Low Energy host stack for wireless communication and a bootloader framework t
libusb is a cross-platform user-space library that provides a consistent C API for discovering, configuring, and communicating with USB devices from applications. It abstracts operating-system-specific USB driver details behind a single interface that works on Linux, macOS, Windows, and other platforms, enabling developers to write portable USB code without platform-specific knowledge. The library supports both synchronous and asynchronous I/O models for USB transfers. Synchronous operations block the calling thread until a transfer completes, offering a straightforward sequential programming
This project is a keyboard firmware framework and programmable keyboard ecosystem designed for Atmel AVR and ARM microcontrollers. It provides the embedded software necessary to implement the USB Human Interface Device standard, allowing hardware to communicate keystrokes and mouse movements to a host computer. The framework distinguishes itself by offering a comprehensive toolchain for custom hardware development, including a command line interface for project scaffolding, firmware flashing, and configuration linting. It supports a variety of flexible configuration methods, allowing users to
OpenTabletDriver is a user-mode graphics tablet driver and USB HID input manager that translates raw USB input from digitizer hardware into system cursor and pen events. It serves as a hardware abstraction layer that normalizes input from various tablet brands into a consistent API, providing a cross-platform pen interface with pressure and tilt sensitivity. The project distinguishes itself through a plugin-based architecture and a profile-based configuration system, allowing for custom filters, interpolators, and persistent hardware setups. It includes specialized tools for hardware driver d
Bruce is offensive security firmware for ESP32 hardware designed for network attacks, radio analysis, and hardware-based identity spoofing. It provides a specialized toolkit for conducting red team operations, including a WiFi penetration testing tool, a multi-protocol radio toolkit, and a system for emulating USB keyboards and mice to inject payloads. The firmware distinguishes itself through a broad range of signal manipulation capabilities, allowing for the cloning and writing of RFID tags and the transmission of disruptive pairing requests to Bluetooth devices. It also includes a multi-pr
IronOS is a low-level soldering iron firmware and thermal control system. It serves as a comprehensive embedded UI framework and hardware controller designed to manage heating elements, temperature regulation, and power delivery for soldering tools. The project distinguishes itself through a specialized USB-PD power controller that negotiates standards like USB-PD EPR and Quick Charge to maximize available wattage. It also features a wireless BLE hardware controller for monitoring real-time telemetry and modifying system parameters from a remote application. The system covers broad capabilit
This firmware transforms an ESP32 device into a portable penetration testing platform by combining an embedded JavaScript runtime with multi-protocol wireless attack capabilities, USB and Bluetooth HID emulation, and a menu-driven user interface. It is designed as a unified system that integrates persistent storage, hardware abstraction for external radio modules, a serial command protocol for headless operation, and a web-based remote desktop that streams the device screen and relays button inputs for remote control. The custom JavaScript scripting environment enables users to write and run
This repository is a comprehensive collection of reference implementations and sample libraries for the Universal Windows Platform. It provides practical examples of how to use Windows Runtime APIs to build cross-device applications, including detailed guidance on XAML-based declarative user interfaces and DirectX-integrated rendering. The project distinguishes itself by providing a wide array of hardware integration suites, covering low-level communication with USB, Serial, I2C, SPI, and GPIO peripherals. It includes specialized implementations for mixed reality holographic rendering, advanc
P4wnP1 is a wireless USB payload framework and attack platform based on the Raspberry Pi Zero. It functions as a USB HID emulator and network adapter, mimicking keyboards and other peripherals to interact with target hardware and execute automated keyboard payloads. The project provides a customizable system for delivering HID attacks and managing remote access via a wireless hotspot. It enables the emulation of composite devices, allowing a single physical port to present multiple functions, such as Ethernet and keyboard interfaces, simultaneously. The framework covers capabilities for hard
iDescriptor is a suite of specialized tools for managing, diagnosing, and interacting with iOS devices. It provides a comprehensive toolkit for device management, hardware diagnostics, remote terminal access, and virtual location simulation across different operating systems. The project includes a device management suite for mirroring screens in real-time, managing files, and installing applications via USB or wireless connections. It features a hardware diagnostic tool to identify internal components and verify the authenticity of USB cables, along with a virtual GPS simulator to override g
Mayhem-Firmware is a custom firmware for the PortaPack add-on that transforms a HackRF software-defined radio into a standalone handheld device capable of receiving, transmitting, and analyzing radio signals across a wide frequency range. The firmware provides a complete operational environment with an event-driven touchscreen interface, a menu-driven application launcher, and a real-time sample streaming pipeline that connects the hardware abstraction layer to a suite of modular applications. All user data, including frequency presets, captures, and configuration files, are stored on a remova
P4wnP1_aloa is a physical security framework designed to transform a Raspberry Pi into a dedicated appliance for red teaming and penetration testing. It functions as a USB gadget emulation tool, a wireless network spoofing utility, and a GPIO automation controller. The system enables the emulation of composite USB peripherals, such as keyboards, mice, and storage devices, without requiring a reboot. It further provides capabilities for broadcasting fake access point beacons and spoofed responses to emulate diverse wireless network environments. The framework includes a remote management inte
ipsw is a specialized toolkit for iOS firmware analysis, binary reverse engineering, and hardware interaction. It provides a suite of tools for downloading, extracting, and analyzing firmware images and kernel caches, alongside a MachO binary analysis tool for disassembling and patching executables. The project distinguishes itself through integrated language-model-powered code reconstruction to translate machine code into high-level source code. It also features an automation client for the App Store Connect API to manage certificates and application settings. The framework covers a broad r
stlink is a toolset for ARM Cortex-M flashing, firmware management, and debug server operations, with specific support for STM32 microcontrollers. It provides an ARM Cortex-M flash programmer for writing binary and hex files, an ITM trace logger for real-time instrumentation data, and a SWD/JTAG debug server. The project includes a graphical user interface for managing MCU firmware and exporting memory, as well as a remote server that allows external debuggers to control execution and inspect registers on target hardware. The toolset covers microcontroller memory management through flash era
rawdrawandroid is a framework for building Android applications using C and Make. It provides a native development system that compiles source code into standalone executable packages, bypassing the standard Java or Kotlin toolchains and virtual machines. The project features a native UI toolkit for creating hardware-accelerated graphics windows and a dedicated hardware interface for direct communication with USB peripherals and onboard sensors. It utilizes a containerized build environment to ensure consistent compilation and signing of binaries without requiring local toolchain installation
ViGEmBus is a Windows kernel-mode driver and USB HID emulation framework that creates virtual gaming peripherals. It functions as a virtual gamepad driver that the operating system recognizes as physical hardware devices at the kernel level. The project enables kernel-level hardware mimicry to bypass game-specific device requirements and supports remote input redirection, allowing controller data to be sent over a network to a remote machine. The system covers a range of capabilities including USB game controller emulation and game input automation, which allows for the recording and playbac
Cello is a programming language extension for C that provides a higher-level implementation of the language. It integrates an object-oriented framework, an automated garbage collection system, and a runtime reflection library to enable dynamic type inspection. The project implements a structured system for object orientation within C, including support for classes, type classes, and polymorphism. It includes a runtime exception handling system to intercept execution errors and initiate recovery procedures. The framework further provides generic programming capabilities for creating reusable
Serial Studio is a desktop application for connecting to, decoding, visualizing, and recording data from hardware devices over multiple communication protocols. It functions as an embedded device debugging toolkit that ingests live data from Serial, Bluetooth, CAN, Modbus, MQTT, and network sockets into a unified dashboard, while also serving as a programmatic automation platform with over 320 commands exposed over TCP, gRPC, and MCP for external control. The application distinguishes itself through a scriptable frame pipeline that routes incoming bytes through configurable detection, decodin
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
This project is a Java library for establishing raw serial port connections between Android devices and external hardware using USB host mode. It provides a communication bridge for interacting with microcontrollers and adapters without requiring root access. The library includes a device identification framework to detect and map serial hardware using vendor and product IDs. It features specialized driver implementations for chipsets such as CDC and FTDI to enable data exchange across different hardware standards. It covers hardware integration capabilities including device discovery, seria
This project is an implementation of the Arduino framework for ESP32 microcontrollers, providing a core that enables firmware development using a familiar API. It functions as a microcontroller hardware abstraction layer and a firmware toolchain integration, bridging external development environments to the hardware for compilation and flashing. The system includes an embedded real-time operating system wrapper to manage multi-core execution and task scheduling, alongside a wireless communication suite for TCP/IP networking and Bluetooth Low Energy. It distinguishes itself by providing an obj
LiteX is an FPGA SoC development suite and SoC builder framework used to programmatically design system-on-chips. It provides a hardware description toolchain that uses a scriptable framework to define hardware layouts and automate the generation of hardware description language code. The project distinguishes itself by orchestrating multiple vendor and open-source toolchains to synthesize digital logic and generate deployable bitstreams. It supports multi-language logic integration, allowing disparate hardware description languages to be combined into a single project. The framework covers
AISystem is a comprehensive AI full-stack infrastructure project covering the entire pipeline from AI chip architecture to high-level training frameworks. It encompasses the development of AI compiler frameworks, inference engines, and distributed training orchestrators designed to coordinate workloads across a heterogeneous compute stack of CPUs, GPUs, and NPUs. The project focuses on the deep integration of software and hardware, employing software-hardware co-design to align tensor layouts with physical memory structures. It provides specialized capabilities for accelerating Transformer mo
ElectronBot is a robotic system comprising custom PCB designs, an embedded circular display driver, an I2C servo controller, and a communication bridge. It integrates hardware schematics and layouts for control boards and sensor arrays with firmware designed to render images and animations on integrated circular screens. The system features a control bridge that links the physical robot hardware to the Unity game engine for real-time visualization and high-level control. Data exchange between the host computer and the embedded hardware is handled via a custom USB CDC serial communication prot
A collection of Yocto layers used to build balenaOS images
Waveshare E-Paper Display driver for devices running Pycom-flavored MicroPython
Utility for decoding an R/C receiver PPM frame signal. This code was based on this article.
A platform agnostic driver to interface with the MAX7219 (LED display driver)