#esp32 #template #note

bin+lib esp-generate

Template generation tool to create no_std applications targeting Espressif's chips

6 releases

0.3.1 Mar 3, 2025
0.3.0 Feb 24, 2025
0.2.2 Jan 16, 2025
0.2.1 Nov 26, 2024
0.1.0 Nov 7, 2024

#33 in Template engine

Download history 146/week @ 2024-12-02 175/week @ 2024-12-09 175/week @ 2024-12-16 214/week @ 2024-12-23 149/week @ 2024-12-30 206/week @ 2025-01-06 377/week @ 2025-01-13 241/week @ 2025-01-20 220/week @ 2025-01-27 206/week @ 2025-02-03 208/week @ 2025-02-10 209/week @ 2025-02-17 435/week @ 2025-02-24 461/week @ 2025-03-03 275/week @ 2025-03-10 248/week @ 2025-03-17

1,442 downloads per month

MIT/Apache

93KB
1.5K SLoC

esp-generate

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/C6, ESP32-H2, and ESP32-S2/S3. Support for additional devices will be added as they become available.

[!NOTE]

This project is still in the early stages of development. If you encounter any problems, or you would like to see any feature added, please open an issue or start a discussion.

Quickstart

To generate a project using this template:

  1. Install esp-generate:
cargo install esp-generate
  1. Generate a project. There are two options:

    1. Using the Terminal User Interface (TUI):

      esp-generate --chip esp32 your-project
      

      Replace the chip and project name accordingly, and select the desired options using the TUI.

    2. Using the Command Line Interface (CLI), adding the options to the esp-generate command:

      esp-generate --chip esp32 -o alloc -o wifi your-project
      

      Replace the chip and project name accordingly, and select the desired options using the -o/--option flag. For a full list of available options, see Available Options section of this README.

Available Options

  • unstable-hal: Enables esp-hal features that may not be ready for general use yet.
  • alloc: Enables allocations via the esp-alloc crate.
  • wifi: Enables Wi-Fi via the esp-wifi crate; requires alloc.
  • ble: Enables BLE via the esp-wifi crate; requires alloc.
  • embassy: Adds embassy framework support.
  • probe-rs: Replaces espflash with probe-rs and enables RTT-based options.
  • flashing-probe-rs: Contains options that require probe-rs:
    • defmt: Adds support for defmt printing. Uses rtt-target as the RTT implementation.
    • panic-rtt-target: Uses panic-rtt-target as the panic handler.
  • flashing-espflash: Contains options that require espflash:
    • log: Uses the log library to print messages.
    • defmt: Adds support for defmt printing. Uses esp-println and configures espflash to decode defmt logs.
    • esp-backtrace: Uses esp-backtrace as the panic handler.
  • optional: Enables the following set of options:
  • editors: Select the editors that will be used with Rust-Analyzer:
    • helix: The Helix Editor
    • vscode: Visual Studio Code

License

Licensed under either of:

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.

Dependencies

~22–35MB
~529K SLoC