MCPcopy Index your code
hub / github.com/esp-rs/std-training

github.com/esp-rs/std-training @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
88 symbols 135 edges 36 files 14 documented · 16%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Embedded Rust Trainings for Espressif

CI

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:
  • A basic hardware-check (Source)
  • An HTTP Client (Source)
  • An HTTP Server (Source)
  • An MQTT Client (Source)
  • Some advanced level examples:
  • Low-level GPIO
  • Interrupts in General
  • I2c Driver (Source)
  • I2c Sensor Reading (Source)
  • GPIO/Button Interrupts (Source)
  • Driving an RGB LED
  • Some useful common crates:
  • get-uuid - Provides a compile-time generated UUID
  • mqtt-messages - MQTT helper functions
  • rgb-led - Provides support for the RGB LED (WS2812)
  • wifi - Wifi helper functions

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/esp-rs/std-training.git
~ $ cd std-training/book
~/std-training/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://esp-rs.github.io/std-training 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.

Authors

The content of this training was created by Ferrous Systems GmbH and Espressif Systems.

Code of Conduct

Contribution to this crate is organized under the terms of the Rust Code of Conduct, and the maintainers of this crate promises to intervene to uphold that code of conduct.

Core symbols most depended-on inside this repo

set_pixel
called by 12
common/lib/rgb-led/src/lib.rs
wifi
called by 10
common/lib/wifi/src/lib.rs
uuid
called by 4
common/lib/get-uuid/src/lib.rs
ns
called by 4
common/lib/rgb-led/src/lib.rs
temperature_data_topic
called by 4
common/lib/mqtt-messages/src/lib.rs
hello_topic
called by 4
common/lib/mqtt-messages/src/lib.rs
templated
called by 2
intro/http-server/src/main.rs
templated
called by 2
intro/http-server/examples/http_server.rs

Shape

Function 47
Class 19
Method 15
Enum 7

Languages

Rust100%

Modules by API surface

common/lib/mqtt-messages/src/lib.rs11 symbols
advanced/i2c-driver/src/icm42670p_solution.rs8 symbols
advanced/i2c-driver/src/icm42670p.rs8 symbols
intro/http-server/src/main.rs5 symbols
intro/http-server/examples/http_server.rs5 symbols
common/lib/rgb-led/src/lib.rs4 symbols
intro/mqtt/exercise/examples/solution_publ_rcv.rs3 symbols
intro/http-client/src/main.rs3 symbols
intro/http-client/examples/https_client.rs3 symbols
intro/http-client/examples/http_client.rs3 symbols
intro/mqtt/host-client/src/main.rs2 symbols
intro/mqtt/exercise/src/main.rs2 symbols

For agents

$ claude mcp add std-training \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact