/espflash

Serial flasher utility for Espressif SoCs and modules based on esptool.py

Primary LanguageRust

espflash

Actions Status Crates.io

Serial flasher utility for Espressif SoCs and modules based on esptool.py.

Currently supports the ESP32, ESP32-C3, ESP32-S2, ESP32-S3, and ESP8266.

cargo-espflash

cargo-espflash is a subcommand for Cargo which utilizes the espflash library. This tool integrates with your Cargo projects and handles compilation, flashing, and monitoring of target devices.

Please see the cargo-espflash README for more information.

Example

$ cargo espflash --release --example=blinky /dev/ttyUSB0

espflash

espflash is a standalone binary and library contained within the same crate. This tool does not integrate with Cargo, but supports all of the same features as cargo-espflash which are not related to compilation.

Please see the espflash README for more information.

Example

$ espflash /dev/ttyUSB0 target/xtensa-esp32-none-elf/release/examples/blinky

Installation

Either application can be installed using cargo as you normally would:

$ cargo install cargo-espflash
$ cargo install espflash

Alternatively, you can use cargo-binstall to install pre-compiled binaries on any supported system. Please check the releases to see which architectures and operating systems have pre-compiled binaries.

$ cargo binstall cargo-espflash
$ cargo binstall espflash

Notes on Building

Requires rustc >= 1.59.0 in order to build either application from source. In addition to the Rust toolchain libuv must also be present on your system; this can be installed via most popular package managers.

macOS

$ brew install libuv

Ubuntu

$ sudo apt-get install libuv-dev

Fedora

$ dnf install systemd-devel

License

Licensed under the GNU General Public License Version 2. See LICENSE for more details.