esp-println
Provides print!, println! and dbg! implementations for various Espressif devices.
- Supports ESP32, ESP32-C2/C3/C6, ESP32-H2, ESP32-S2/S3, and ESP8266
- Dependency free (not even depending on
esp-hal, one optional dependency islog, another iscritical-section) - Supports JTAG-Serial output where available
- Supports RTT (lacking working RTT hosts besides probe-rs for ESP32-C3)
no-opfeatures turns printing into a no-op
RTT on ESP32-C3 / ESP32-C6
The cli utility should work for flashing and showing RTT logs on ESP32-C3 by using it's run command.
You need to use the direct-boot feature of the HAL to flash via probe-rs.
Usage
In your Cargo.toml, under [dependencies], add:
esp-println = { version = "0.3.1", features = ["esp32"] }
Choose a recent version and your chipset.
Then in your program:
use esp_println::println;
You can now println!("Hello world") as usual.
Logging
With the feature log activated you can initialize a simple logger like this
init_logger;
There is a default feature colors which enables colored log output.
Additionally you can use
init_logger_from_env;
In this case the following environment variables are used:
ESP_LOGLEVELsets the log level, use values liketrace,infoetc.ESP_LOGTARGETSif set you should provide the crate names of crates (optionally with a path e.g.esp_wifi::compat::common) which should get logged, separated by,and no additional whitespace between
If this simple logger implementation isn't sufficient for your needs you can implement your own logger on top of esp-println - see https://docs.rs/log/0.4.17/log/#implementing-a-logger
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.