UsbHost
tinyusb
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
UsbHost
-
A project to improve my computer's experience - Second keyboard for macros, CAN-USB transreceiver, Window Explorer symlink creator, Graphs for Indoor Air Quality
CustomMacro - Currently requires an external Nucleo L495ZG board with UART-TTL to USB adapter for transmitting keypresses to PC. The nucleo is just a simple USB Host, which receives key-presses from the connected keyboard and transmits it to PC via UART. It could be done with hooking in windows, but this solution always crashed the debugger in MSVC, so I went with the more expensive way. Macros can be added in configuration page or in settings.ini file directly. Firmware for Nucle board is available here: https://github.com/kurta999/UsbHost
tinyusb
- An open source cross-platform USB stack for embedded system
-
Bluetooth to USB Audio bridge
Implementing the required USB host interface is another hurdle, but tinyusb seems to have sorted most of that out, except that UAC2 is implemented as a device while you need a host.
- So I started porting braids to the PI PICO and ended with a generative drum machine
-
USB CDC: Multiple Virtual COM Ports
Have a look at TinyUSB. It supports the STM32WB and demo programs for the Nucleo-WB55RG. It even offers an example for dual CDC ports, so very close to what you're looking for.
-
Looking for well written, modern C++ (17/20) example projects for microcontrollers
Second: Distrust, misunderstanding, and out of date opinions of C++ in embedded spaces. I often see "compatibilty" thrown around as a goal for using C and not C++, but for most modern embedded systems, C++ compilers exist and are (usually) well tuned. Arm is a shining example here*. C++ is more optimizable than C as the intent can be clearer to the compiler. C++ constexpr and templates are a godsend for embedded systems, and I used both heavily in my recent arduino and pico testing. I combined both of them for a really cool experimental USB interface descriptor builder that runs at compile time and avoids the need to count byte sizes, but I gave up on it when the maintainer said C only, despite the fact that C can't do that. I was similarly disappointed when the pico "C++" was C only, as there was no backwards compatibility necessary.
-
Pico + CH559 = USB Midi host?
I looked at this but the fork seems to have had a lot of problems from looking at the PR: https://github.com/hathach/tinyusb/pull/1219
-
Badger 2040: tiny kit ereader
I think a better solution might be to use a USB flash drive in the usbc port. Unfortunately micropython and circuitpython don't support this (yet), so you'd have to use c++ https://github.com/hathach/tinyusb
-
ESP32-S3 Update via USB?
It's possible to make the s3 be a mass storage device via TinyUSB. https://github.com/hathach/tinyusb/tree/master/examples/device/cdc_msc_freertos
- Microcontroller that can read voltage?
- how do emulate a keyboard over usb? wherever I look I only see libraries and tutorials on how to use the eps32 as a Bluetooth keyboard not a wired one
What are some alternatives?
CustomKeyboard - A swiss knife for myself - automotive development tools and a plenty of other things
esp32-s2-usb-host-cdc
consolecast - This repo contains open source example code and schematics for ConsoleCast, the Universal Serial to WIFI bridge development board. ConsoleCast has on-board WIFI, RS232 and USB host capabilities. The factory loaded firmware features an on-board Terminal emulator. You can connect and "talk" to your serial device, like network equipment, measuring equipment, etc. over Wifi just by using your browser, no cable, no special software needed and platform independant. Please see consolecast.nickstick.nl for details.
libusb - A cross-platform library to access USB devices
wxFormBuilder - A wxWidgets GUI Builder
lufa - LUFA - the Lightweight USB Framework for AVRs.
hid-remapper - USB input remapping dongle
rt-thread - RT-Thread is an open source IoT real-time operating system (RTOS).
Adafruit_TinyUSB_Arduino - Arduino library for TinyUSB
arduino-esp32 - Arduino core for the ESP32
CherryUSB - CherryUSB is a tiny and portable USB Stack (device & host) for embedded system with USB IP
EspTinyUSB - ESP32S2 native USB library. Implemented few common classes, like MIDI, CDC, HID or DFU (update).