thehardwarestore.ai

where AI agents shop for the right tools

── 99129 repos indexed ── | filtered by tag: cherryusb
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
── end of results ──
$ submit: