tinyusb
Marlin
tinyusb | Marlin | |
---|---|---|
48 | 755 | |
4,601 | 15,969 | |
- | 0.5% | |
9.8 | 9.8 | |
4 days ago | 6 days ago | |
C | C++ | |
MIT License | GNU General Public License v3.0 only |
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.
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
Marlin
-
Why Prusa is floundering, and how you can avoid their fate
There is _a lot_ wrong with Marlin. It is a complex codebase, full with ancient artefacts, litterred with preprocessor ifdefs every 2-3 lines of code, dynamic includes in the middle of CPP files, etc[1]. It's about as unreadable as C++ code gets--well, I guess it's not template metaprogramming.
Klipper by contrast is a breeze to read through[2].
I am very grateful for Marlin, for all of reprap, and everyone who has contributed to it. But saying there is nothing wrong with it is straight up misguided.
[1]: https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.1.x/M...
[2]: https://github.com/Klipper3d/klipper/blob/master/src/lcd_hd4...
-
E steps way off.
I think you are mistaken. I can't speak for implementations preceding the Ender 3 V2, so what you're saying may have been true at some point for other machines. However, here you can see Marlin developers confirm that there is an EEPROM on the stock E2V2 board using diagrams from Creality and photographic confirmation. Here is the datasheet for the EEPROM. Here is a thread discussing this Marlin release, and also the then-recent release of official Creality firmware which resolved the same issue. Since the stock firmware is based on Marlin, and at the time Marlin did not support this type of EEPROM, the EEPROM was not usable at launch. Any mainstream firmware (official or third-party) from the last three years will be using the onboard EEPROM unless the user intentionally specified otherwise.
-
FYI: Marlin 2.1.2.1 on Sapphire plus v2
pull latest Marlin from github: https://github.com/MarlinFirmware/Marlin
-
Ender 3 Pro + Octoprint = Thermal Malfunction, system stopped! Heater_ID: E0
Also, checked the following discussion but seems like I need to update the firmware to be able to comment that like right? Temperature variance monitor tweaks by zeleps · Pull Request #23571 · MarlinFirmware/Marlin · GitHub
- Marlin DACAI Screen Bug
-
Anycubic Kobra Marlin 2.1+ based custom firmware
i spent some time and successfully rebased Kobra 2.8.2 OG firmware from an unknown Marlin ~2.0.8 frankenstein to a clean latest (as of now) release (not bugfix) 2.1.x -- v2.1.2.1 + 1 commit
-
Digraphs and Trigraphs
As an example, check the macropocalypse in Marlin - but the actual trigger for me to start was Reprap firmware doing a floating point divide in interrupt context while targeting AVR8 core…
-
Need advice on intermittent thermal runaway (Ender 3 V2)
Any change of thermistor or to a PT100/PT1000 will require recompiling the firmware, because every type has different characteristics. Marlin uses an internal table to calculate the temperature for whatever reading it gets from the CPU's analogue-to-digital converter. It has many tables for different thermistors, but only one is ever incorporated at compile time. So you have to specify which type you're using. You can see the commonly-used types in the list in Marlin's Configuration.h file, in the section headed // @section temperature. The tables themselves are in Marlin/src/module/thermistor.
- Marlin ramps1.4
-
Has anyone actually edited Marlin source code and added a new feature?
FWIW It IS open source but the GNU General Public License v3.0 rules apply. https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.1.x/LICENSE
What are some alternatives?
esp32-s2-usb-host-cdc
MKS-TinyBee - MKS TinyBee is a mainboard for 3d printing, based on ESP32 module
libusb - A cross-platform library to access USB devices
SKR-2
lufa - LUFA - the Lightweight USB Framework for AVRs.
klipper - Klipper is a 3d-printer firmware
hid-remapper - USB input remapping dongle
Marlin-2.0.X-MKS-Robin-Nano - Marlin 2.0.X for the MKS Robin Nano 1.1/1.2
rt-thread - RT-Thread is an open source IoT real-time operating system (RTOS).
BIGTREETECH-SKR-mini-E3 - BIGTREETECH SKR-mini-E3 motherboard is a ultra-quiet, low-power, high-quality 3D printing machine control board. It is launched by the 3D printing team of Shenzhen BIGTREE technology co., LTD. This board is specially tailored for Ender 3 printer, perfectly replacing the original Ender3 printer motherboard.
Adafruit_TinyUSB_Arduino - Arduino library for TinyUSB
Ender-3 - The Creality3D Ender-3, a fully Open Source 3D printer perfect for new users on a budget.