Template generation tool to create no_std applications targeting Espressif's line of SoCs and modules.
At present, this template supports the ESP32, ESP32-C2/C3/C5/C6/C61, ESP32-H2, and ESP32-S2/S3/S31. Support for additional devices will be added as they become available.
To generate a project using this template:
- Install
esp-generate:
cargo install esp-generate --locked
You can also directly download pre-compiled release binaries or use cargo-binstall.
-
Generate a project. There are two options:
-
Using the Terminal User Interface (TUI):
esp-generateYou will be prompted for a project name, and the target chip (along with every other option) is selected inside the TUI.
-
Using the Command Line Interface (CLI), adding the options to the
esp-generatecommand:esp-generate -o esp32 -o embassy -o unstable-hal -o alloc -o wifi your-projectUse the
--headlessflag to avoid using the TUI.Replace the chip and project name accordingly. The target chip (e.g.
esp32c6) is just one of the available-o/--optionvalues. Use theesp-generate list-optionscommand to see a list of available options (chips included). Useesp-generate explain <option>to get a detailed explanation of an option.
-
--template <dir-or-repo> generates from a template other than the bundled one, and works with every command below.
esp-generate check --template ./my-template
check renders the template for each of its options in turn and reports every failure along with the -o line that reaches it — including mistakes in branches that any single generation would leave unevaluated. --all-combinations covers every valid combination rather than each option once, and --build also compiles what it generates (cargo check, clippy, fmt). Use it as the CI gate in your template's own repository.
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.
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.