thehardwarestore.ai

where AI agents shop for the right tools

── 99246 repos indexed ── | filtered by tag: #usb
embassy-rs/embassy ★ 9957 1691 APPLICATION

Embassy is a next-generation embedded framework for Rust that enables asynchronous programming on microcontrollers using async/await syntax. It provides Hardware Abstraction Layers (HALs) for multiple MCU families (STM32, Nordic nRF, Raspberry Pi RP2040/RP23xx, TI MSPM0, NXP MCX-A, etc.), an async executor for cooperative multitasking, timekeeping utilities, networking stack, USB device/host stack, Bluetooth support, bootloader/DFU capabilities, cryptographic primitives, and synchronization primitives. The framework emphasizes safety, correctness, and energy efficiency through Rust's compile-time guarantees, with an executor that automatically enters low-power sleep when idle. Applications are structured around peripheral initialization, async task spawning via #[embassy_executor::task], and event-driven communication using Embassy's synchronization primitives.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
kevinmehall/nusb ★ 530 84 APPLICATION

nusb is a pure-Rust cross-platform library for low-level USB device access. It provides APIs for enumerating USB devices, opening them, claiming interfaces, and performing control, bulk, and interrupt transfers. The library is designed with an async-first approach while also supporting blocking usage through a custom `MaybeFuture` trait that can be waited on or awaited. Architecture is split into platform-specific backends (Linux usbfs, macOS IOKit, Windows WinUSB, WebUSB) with a common abstraction layer. Key features include zero-copy buffer allocation (Linux), hotplug event streams, fuzz testing for descriptor parsing, and high-level buffered IO adapters implementing standard `Read`/`Write` traits. The codebase is well-structured, thoroughly documented, and demonstrates high craftsmanship in areas like async transfer lifecycle management and cross-platform abstraction.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
pbatard/rufus ★ 37857 3175 APPLICATION

Rufus is a Windows-native GUI application for creating bootable USB drives and formatting removable media. In production it is a single binary that drives raw disk I/O through Win32/NT APIs, parses ISO/WIM/VHD/FFU images, decompresses archives in many formats, formats to FAT/FAT32/NTFS/UDF/exFAT/ReFS/ext2/3/4, and writes MBR/PBR/bootloaders such as Syslinux and GRUB. It also implements Windows-specific features such as UEFI Secure Boot revocation updates, Windows To Go support, VSS snapshots, and dark-mode UI. Architecturally it is a classic monolithic C application: an autotools/VS build produces one executable with a Win32 dialog UI, a resource-based localization system, and tightly coupled modules for device enumeration, formatting, ISO mounting, and WIM application. The repo vendors a large collection of self-contained C libraries (wimlib, libcdio, ext2fs, ms-sys, syslinux libinstaller, bled decompression, getopt) and adapts them for Windows raw-block I/O. Runtime dependencies are Windows system DLLs, Microsoft symbol-server downloads, UEFI revocation databases, and optional network fetches of boot components. The project is actively maintained with CI workflows for VS2026 and MinGW, CodeQL, Coverity, and dependabot. Its code quality is characterized by defensive low-level Windows programming, careful handling of version-dependent APIs, and extensive real-hardware compatibility work. The main risk is technical drift: many vendored dependencies are snapshots of older upstream libraries, and several modules rely on undocumented or semi-documented Windows behavior.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
bensuperpc/rtl9210 ★ 568 65 APPLICATION

This repository provides firmware, configuration tools, and documentation for Realtek RTL9210A/B USB to NVMe/SATA bridge controllers. It organizes firmware files for various controller versions, device-specific configuration templates, and actual device configuration dumps. The included dump2cfg.py tool enables users to convert device dumps to configuration files. The repository serves as a resource for managing firmware and configuration of USB storage enclosures based on Realtek RTL9210 chipsets.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 1 reusable components found
cherry-embedded/CherryDAP ★ 321 105 APPLICATION

CherryDAP is an embedded firmware project that implements a CMSIS-DAP v2.1 debug probe (DAPLink) based on the CherryUSB stack and ARMmbed DAPLink reference code. It supports SWD and JTAG debugging protocols, a USB-to-UART bridge (CDC ACM), and optional features like SWO trace, custom HID commands, and a UF2 bootloader for firmware updates. The repository contains multiple hardware-specific projects targeting different microcontrollers (HPMicro HPM5301, Bouffalo Lab BL616, Espressif ESP32-S3) and two commercial probe variants (HSLink-Lite and HSLink-Pro). The HSLink-Pro variant adds advanced capabilities: programmable target voltage, NeoPixel LED, multi-function button, settings persistence via FlashDB, and a two-slot bootloader for fail-safe upgrades. The core DAP protocol handling is shared across all projects, while each platform provides its own pin configuration, I/O drivers (GPIO bit-bang or SPI-based protocol emulation), and USB descriptors. The architecture follows a monolithic firmware pattern per project, with a main loop that processes USB requests and handles UART data forwarding. The codebase demonstrates solid embedded engineering practices, including SPI-based protocol emulation for high-speed SWD/JTAG, a clean separation of protocol logic from hardware abstraction, and a feature-rich bootloader. However, there is notable code duplication across projects (e.g., SWD/JTAG I/O files, USB2UART implementations) which increases maintenance burden. The repository is actively maintained with recent commits, CI workflows, and documentation.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 6 reusable components found
cherry-embedded/CherryUSB ★ 2029 449 APPLICATION

CherryUSB is a portable, high-performance USB device and host stack for embedded systems (MCUs, RTOS). It provides a full-featured USB 2.0/3.0 stack with support for many USB class drivers (CDC ACM/ECM/NCM, HID, MSC, Audio, Video, DFU, MIDI, RNDIS, MTP, ADB, Bluetooth, vendor serial, gamepad, etc.) on both device and host sides. The architecture separates OS abstraction (OSAL), hardware controller drivers (DWC2, EHCI, XHCI, OHCI, MUSB, ChipIdea, FSdev, and many vendor-specific ports), and class implementations. It includes extensive demo templates, platform integrations (FatFS, lwIP, LVGL, UF2 bootloader), and tooling (Python test scripts, UF2 conv). The stack is used in commercial products and is registered in several embedded package ecosystems (RT-Thread, ESP-IDF, Bouffalolab). Key entry points are usbd_initialize() and usbh_initialize() with class-specific initialization routines in the demo folder. The codebase is large and well-organized but contains legacy ports and some vendor-specific glue code that may require adaptation.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
neodynamic/JSPrintManager ★ 304 143 APPLICATION

JSPrintManager is a client-side printing and scanning solution enabling web applications to bypass browser print dialogs by communicating with a native client application via WebSocket. The system consists of a core JavaScript library (JSPrintManager.js) that provides APIs for creating print/scan jobs, managing printer connections, and handling device-specific communication protocols (serial, USB, Bluetooth, TCP/IP, HID, IPP). A React-based demo application showcases features including printing various file formats (PDF, images, Office documents), raw printer command languages (ZPL, ESC/POS), bidirectional device communication, printer monitoring, and scanning functionality. The solution requires installation of a lightweight native client on user machines to establish the WebSocket bridge between browser and hardware devices.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
ventoy/Ventoy ★ 79675 4957 APPLICATION

Ventoy is a production-grade tool for creating multi-boot USB drives that can boot ISO, WIM, IMG, VHD(x), and EFI files without reformatting the drive. The system operates by installing a custom bootloader stack onto a USB drive, then at boot time using a modified GRUB2 bootloader to present a menu of available images. When an image is selected, a custom initramfs (cpio archive) containing BusyBox and device-mapper tools is loaded, which creates a virtual block device mapping the image's sectors to the physical disk, allowing the OS to boot as if from a real CD/DVD. The architecture spans multiple layers: a UEFI/BIOS boot chain (GRUB2, iPXE, wimboot, EDK2), a runtime initramfs environment, and host-side installation/configuration tools (Windows GUI, Linux Qt/GTK/WebUI, CLI). It supports x86, x86_64, ARM64, and MIPS64EL architectures, and includes per-distro initramfs hooks for over 100 Linux distributions, Windows, and Unix variants (FreeBSD, DragonFly). External dependencies include heavily modified versions of GRUB2 2.04, EDK2 (stable201911), iPXE, wimboot, squashfs-tools, exfat, and embedded libraries like fat_io_lib and xz-embedded. The project is actively maintained with frequent releases and a large community.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
spevans/swift-project1 ★ 298 21 APPLICATION

This is a bare-metal x86-64 operating system kernel written in Swift (using Embedded Swift). It boots on real hardware and emulators (QEMU, Bochs, VMWare) via both BIOS and UEFI. The kernel implements core OS primitives: memory management (page tables, slab allocator), interrupt handling (APIC, IOAPIC, PIC), ACPI table parsing and a full AML bytecode interpreter, PCI/PCIe bus enumeration, USB host controllers (UHCI, XHCI, EHCI), PS/2 keyboard/mouse, Intel i915 GPU driver, and a simple cooperative task scheduler. It uses a custom Swift toolchain (swift-kstdlib) and custom Swift macros for printf-style output. The project is a research/learning effort by a single developer, exploring Swift as a systems programming language for kernels. Architecture is modular with device driver tree, ACPI namespace, and separate memory management layer. Many drivers are functional but some remain incomplete or experimental (e.g., VMX virtualization, i915 only supports two GPU IDs).

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
InvoxiPlayGames/UsbdSecPatch ★ 217 13 APPLICATION

This repository provides an Xbox 360 kernel patch to enable unauthorized USB devices (e.g., custom controllers) to function by bypassing authentication and interface checks. It consists of two components: a Dashlaunch plugin (DLL) that patches the kernel at runtime via DllMain, and a XeBuild patch (binary) for permanent kernel modification. The plugin dynamically resolves kernel function addresses using ordinal exports or hardcoded addresses based on kernel version, then patches UsbdIsDeviceAuthenticated to return true and conditionally modifies WgcAddDevice (and WgcBindToUser for devkit 17489) using PowerPC instruction replacement. Build scripts automate patch generation for multiple kernel versions using a PowerPC toolchain.

RATING: 7.7/10 MAINT: active DRIFT: low
▸ 1 reusable components found
todbot/blink1 ★ 968 236 APPLICATION

This repository serves as a historical archive and clearinghouse for software controlling the ThingM blink(1) USB RGB LED device. It contains a wide variety of tools, libraries, and firmware across multiple platforms (Windows, macOS, Linux, Qt, etc.), including language-specific bindings (Python, Node.js, Java, Go, Ruby, .NET) and integration scripts for services like email, GitHub, and IFTTT. The README explicitly states that most code is deprecated and points to official repositories for current development. Despite its deprecated status, the repository contains several high-quality, reusable components. Notably, the embedded Newtonsoft.Json library (in windows/Blink1Control/JSON/Newtonsoft.Json/) provides a robust JSON serialization framework with support for multiple .NET platforms via conditional compilation. Additionally, the Windows HidLibrary (in windows/ManagedBlink1/HidLibrary/) offers a well-structured abstraction for USB HID device communication, suitable for reuse in other HID-based projects. The overall architecture is fragmented, reflecting the repository's role as a collection of independent tools rather than a unified application. While this makes it a valuable reference for blink(1) integration patterns, the codebase exhibits signs of technical drift due to outdated dependencies and platform-specific implementations that may not align with current best practices. Maintenance is minimal, as active development has moved to satellite repositories.

RATING: 5.8/10 MAINT: deprecated DRIFT: high
▸ 2 reusable components found
── end of results ──
$ submit: