Embedded Rust Trainings for Espressif
This repository contains Training Material for learning to use Embedded Rust with the Espressif ESP32-C3.
We suggest you start by reading the book.
Contents
There is:
- A book you can work through - (Source) (Published)
- Some introductory level examples:
- Some advanced level examples:
- Some useful common crates:
esp32-c3-dkc02-bsc
- Board-Support for the ESP32-C3-DKC02get-uuid
- provides a compile-time generated UUIDmqtt-messages
- MQTT helper functionsimc42670p
- basic sensor driver
- Some extra bits:
mqtt-python-client
A Python MQTT client, for testing
Please note, much of this material remains a work in progress!
Development
Each Rust example crate provided here can be built in the usual fashion. See the Embedded Rust Bookshelf for general details, or each crate's own README.md file for specifics.
The book is written in Markdown, using mdbook. You can render a local copy by running:
~ $ cargo install mdbook
~ $ git clone https://github.com/ferrous-systems/espressif-trainings.git
~ $ cd espressif-trainings/book
~/espressif-trainings/book $ mdbook serve
A local web-server will be started on http://127.0.0.1:3000 where you can view the rendered book. It will update automatically as you modify Markdown pages on disk.
Note that you must not push to the main
branch. Instead undertake any
changes in a branch, either in this repository (if you have access) or in a
fork. Please do then feel free to open a Pull Request in Github to merge the
changes to our main
branch.
This work is continually updated and as such there are no 'releases'. Every
commit to main
gets published to
https://espressif-trainings.ferrous-systems.com automatically.
Licence
The material in this repository is licensed CC BY-SA 4.0. All material is Copyright 2022 Ferrous Systems GmbH, unless otherwise stated.
You are free to Share and Adapt but you must give Attribution and Share Alike.
In addition, the source code contained within this repository (either in the book, or as separate examples) is made available under either the MIT or Apache-2.0 licenses, at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
Code of Conduct
Contribution to this crate is organized under the terms of the Rust Code of Conduct, and the maintainer of this crate, Ferrous Systems GmbH, promises to intervene to uphold that code of conduct.