esp-template
[!NOTE]
We have created our own project generation tool, esp-generate, which is now available for general use. We are recommending use of this new tool for creating new projects.This template will no longer receive updates or support, and is no longer recommended for use.
A minimalist template for use with cargo-generate to create no_std
applications targeting Espressif’s line of SoCs and modules. At present, this template supports the ESP32, ESP32-C2, ESP32-C3,ESP32-C6, ESP32-H2, ESP32-S2, and ESP32-S3; additional devices will be added as they become available.
To generate a project using this template:
cargo generate esp-rs/esp-template
After running the command, there will be a few prompts:
Project Name
: Name of the crate.Which MCU to target?
: SoC model.-
Configure advanced template options?
: Iffalse
, skips the rest of the prompts and uses their default value. Iftrue
, you will be prompted with:Enable allocations via the esp-alloc crate?
: Addsesp-alloc
dependency, and initializes the heap.Configure project to support Wokwi simulation with Wokwi VS Code extension?
: Adds support for Wokwi simulation using VS Code Wokwi extension.Setup logging using the log crate?
: Addslog
dependency and initializes logging.-
Configure project to use Dev Containers (VS Code and GitHub Codespaces)?
: Adds support for:Dev Containers also allow flashing from the container using web flash and have the VS Code Wokwi extension already installed.
For a more detailed explanation of the template, see Understanding esp-template chapter of The Rust on ESP Book. If you’re seeking a beginner’s guide for utilizing no_std
(bare metal), consult the Embedded Rust (no_std) on Espressif training.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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 dual licensed as above, without any additional terms or conditions.