Our great sponsors
-
Reticulum
The cryptography-based networking stack for building unstoppable networks with LoRa, Packet Radio, WiFi and everything in between.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
esp-idf-svc
Type-Safe Rust Wrappers for various ESP-IDF services (WiFi, Network, Httpd, Logging, etc.)
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I'll go through it after work. I always wondered on how mature Rust is for embedded systems programming. So this will be useful. My hope is to be able to write something like Reticulum related firmware in Rust.
We even have our own installer (written in Rust of course :D) - https://github.com/esp-rs/espup
One option, if you used esp-idf in your old firmware, could be to use the rust standard library approach and replace components with Rust equivalents, one at a time. We have a quickstart template for creating projects with rust-based components here: https://github.com/espressif/esp-idf-template.
If you would like to try the standard library port for espressif chips, there is already an async interface for wifi & drivers which uses embassy crates, but not the embassy executor: https://github.com/esp-rs/esp-idf-svc
I previously used the esp32-c3 both with bare-metal and with the idf in rust, but I did not like the experience. With the idf you get poor ide support and poor documentation and with bare metal you used to get no wifi at all, but the experience is a lot better. I have seen the new rust wifi driver https://github.com/esp-rs/esp-wifi and i am very interested, but this is still a sync driver afaik.