rp-hal
A Rust Embedded-HAL for the rp series microcontrollers (by rp-rs)
tinyusb
An open source cross-platform USB stack for embedded system (by hathach)
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
rp-hal
Posts with mentions or reviews of rp-hal.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-03-06.
-
Embedded Swift on the Raspberry Pi Pico
probably, I didn't really check it, but I found [1]. Rust has a lot of support for embedded systems, even from the companies that provide the chips, like STM and Espressif.
[1] https://github.com/rp-rs/rp-hal
- Rp-hal: a Rust Embedded-HAL for the pi pico series microcontrollers
-
I built a column staggered keyboard with firmware written in Rust!
About the same time, I was learning Rust and discovered how it could be used on embedded targets from Low Level Learning on YouTube, the video introduced me to the amazing rp-hal crate that provides abstractions to talk to the Raspberry Pi Pico microcontroller. Getting used to the no_std mode took some time, the most challenging was not being able to collect an iterator to a container.
-
How can I access the Pico W's LED with the rp-hal crate?
Well, just as I posted this, I came across the issue on Github: https://github.com/rp-rs/rp-hal/issues/525
-
&[u8] to *const u8
Have a read of https://github.com/rp-rs/rp-hal/issues/257 for more info.
-
Question: Elegant way of getting a 'static reference?
I've made an example for a RPI Pico (PR for the RP2040 HAL project here) .
-
Pico as a usb hid without circuitpy
Here's an example: https://github.com/rp-rs/rp-hal/blob/main/boards/rp-pico/examples/pico_usb_twitchy_mouse.rs
-
Learning Embedded rust
Embedded rust for the raspberry pi pico: https://github.com/rp-rs/rp-hal
-
The Rise of Rust, the ‘Viral’ Secure Programming Language That’s Taking Over Tech
What are you on about, can you clarify? Rust can compile in no-std/embedded style just as fine (or better) than C can for basically any ARM or RISCV based processor, and quick googling shows this hal for nearly all pi needs and even MEGA65 is "as supported" (read: not at all officially by anything, fan-only) as any current C compiler. Setting up rust for a new target, so long as the code-gen is supported somehow by LLVM, LLVM plugin, LLVM IR transpiler (and maybe libgcc-jit sort of soon) is just as painful or unpainful as setting up a whole team to work via C/C++ with comparable testing harnesses. This doesn't mean easy and is an area Rust is still improving rapidly by the various enterprise agencies (Ferrous systems, Oxide, more I can't remember...) who specifically want to bring rust to such low end hardware because frankly both C and C++ suck with vendor proprietary tool chains and quirks.
-
"pub use bare_metal::CriticalSection;" Error
He says he can't find crate for 'bare_metal'. He was setting up and testing the HAL for the pico (https://github.com/rp-rs/rp-hal). While compiling it pulls down critical-section-0.2.7/src/lib.rs and bars on line 7
tinyusb
Posts with mentions or reviews of tinyusb.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-05.
- 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?
When comparing rp-hal and tinyusb you can also consider the following projects:
tutorials - 📚 Stash of tutorials completed for learning cool stuff.
esp32-s2-usb-host-cdc
embassy - Modern embedded framework, using Rust and async.
libusb - A cross-platform library to access USB devices
rlox
lufa - LUFA - the Lightweight USB Framework for AVRs.
edn - Extensible Data Notation
hid-remapper - USB input remapping dongle
rp2040-project-template - A basic rp2040-hal project with blinky and rtt logging example code. With this you can quickly get started on a new rp2040 project
rt-thread - RT-Thread is an open source IoT real-time operating system (RTOS).
avr-hal - embedded-hal abstractions for AVR microcontrollers
Adafruit_TinyUSB_Arduino - Arduino library for TinyUSB