modm
tinyusb
Our great sponsors
modm | tinyusb | |
---|---|---|
5 | 48 | |
697 | 4,532 | |
2.3% | - | |
9.1 | 9.8 | |
6 days ago | 3 days ago | |
C++ | C | |
Mozilla Public License 2.0 | MIT License |
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.
modm
-
Looking for well written, modern C++ (17/20) example projects for microcontrollers
Have a look in the modm.
-
how come there aren't any open source drivers for MCUs?
Something like https://modm.io ?
-
C++ for embedded - low level applications
On my way i found modm.io which can generate a HAL for (a lot) STM32 controller. They use C++17 and have lots of examples for different controllers the STM32 F4 Disco examples show some applications.
- Modm: A C++20 library generator for AVR and ARM Cortex-M devices
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?
EmbeddedProto - Embedded Proto is a C++ Protocol Buffers implementation specifically suitable for microcontrollers. It is small, reliable and easy to use.
esp32-s2-usb-host-cdc
libopencm3 - Open source ARM Cortex-M microcontroller library
libusb - A cross-platform library to access USB devices
deepC - vendor independent TinyML deep learning library, compiler and inference framework microcomputers and micro-controllers
lufa - LUFA - the Lightweight USB Framework for AVRs.
etl - Embedded Template Library
hid-remapper - USB input remapping dongle
threeboard - A fully-functional open source and open hardware mechanical USB computer keyboard with only three keys!
rt-thread - RT-Thread is an open source IoT real-time operating system (RTOS).
platform_specific_components - Low-level components and hardware drivers for various Cyphal-related projects
Adafruit_TinyUSB_Arduino - Arduino library for TinyUSB