feat: add display UI with splash screen, dashboard, and RSSI sparkline
Implement full SSD1306 OLED display support: - Splash screen on boot (1.5s) with project name, version, board - Dashboard showing radio state, config, counters, RSSI/SNR - RSSI history sparkline (64-sample ring buffer, 2px-wide bars) - DisplayOn/DisplayOff host commands routed via dedicated channel - Pure render functions against generic DrawTarget (no hardware coupling) - Display on/off control bypasses radio task entirely Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
17624 files changed
+4564928
-38
No files matched your search
Vendored
+364
@@ -0,0 +1,364 @@
|
||||
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
|
||||
#
|
||||
# When uploading crates to the registry Cargo will automatically
|
||||
# "normalize" Cargo.toml files for maximal compatibility
|
||||
# with all versions of Cargo and also rewrite `path` dependencies
|
||||
# to registry (e.g., crates.io) dependencies.
|
||||
#
|
||||
# If you are reading this file be aware that the original Cargo.toml
|
||||
# will likely look very different (and much more reasonable).
|
||||
# See Cargo.toml.orig for the original contents.
|
||||
|
||||
[package]
|
||||
edition = "2021"
|
||||
rust-version = "1.79.0"
|
||||
name = "esp-hal"
|
||||
version = "0.22.0"
|
||||
build = "build.rs"
|
||||
links = "esp-hal"
|
||||
autolib = false
|
||||
autobins = false
|
||||
autoexamples = false
|
||||
autotests = false
|
||||
autobenches = false
|
||||
description = "Bare-metal HAL for Espressif devices"
|
||||
documentation = "https://docs.esp-rs.org/esp-hal/"
|
||||
readme = "README.md"
|
||||
license = "MIT OR Apache-2.0"
|
||||
repository = "https://github.com/esp-rs/esp-hal"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
default-target = "riscv32imac-unknown-none-elf"
|
||||
features = ["esp32c6"]
|
||||
rustdoc-args = [
|
||||
"--cfg",
|
||||
"docsrs",
|
||||
]
|
||||
|
||||
[lib]
|
||||
name = "esp_hal"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies.bitfield]
|
||||
version = "0.17.0"
|
||||
|
||||
[dependencies.bitflags]
|
||||
version = "2.6.0"
|
||||
|
||||
[dependencies.bytemuck]
|
||||
version = "1.19.0"
|
||||
|
||||
[dependencies.cfg-if]
|
||||
version = "1.0.0"
|
||||
|
||||
[dependencies.chrono]
|
||||
version = "0.4.38"
|
||||
default-features = false
|
||||
|
||||
[dependencies.critical-section]
|
||||
version = "1.2.0"
|
||||
|
||||
[dependencies.defmt]
|
||||
version = "0.3.8"
|
||||
optional = true
|
||||
|
||||
[dependencies.delegate]
|
||||
version = "0.13.1"
|
||||
|
||||
[dependencies.digest]
|
||||
version = "0.10.7"
|
||||
optional = true
|
||||
default-features = false
|
||||
|
||||
[dependencies.document-features]
|
||||
version = "0.2.10"
|
||||
|
||||
[dependencies.embassy-embedded-hal]
|
||||
version = "0.2.0"
|
||||
|
||||
[dependencies.embassy-futures]
|
||||
version = "0.1.1"
|
||||
|
||||
[dependencies.embassy-sync]
|
||||
version = "0.6.0"
|
||||
|
||||
[dependencies.embassy-usb-driver]
|
||||
version = "0.1.0"
|
||||
optional = true
|
||||
|
||||
[dependencies.embassy-usb-synopsys-otg]
|
||||
version = "0.1.0"
|
||||
optional = true
|
||||
|
||||
[dependencies.embedded-can]
|
||||
version = "0.4.1"
|
||||
|
||||
[dependencies.embedded-hal]
|
||||
version = "1.0.0"
|
||||
|
||||
[dependencies.embedded-hal-02]
|
||||
version = "0.2.7"
|
||||
features = ["unproven"]
|
||||
package = "embedded-hal"
|
||||
|
||||
[dependencies.embedded-hal-async]
|
||||
version = "1.0.0"
|
||||
|
||||
[dependencies.embedded-hal-nb]
|
||||
version = "1.0.0"
|
||||
|
||||
[dependencies.embedded-io]
|
||||
version = "0.6.1"
|
||||
|
||||
[dependencies.embedded-io-async]
|
||||
version = "0.6.1"
|
||||
|
||||
[dependencies.enumset]
|
||||
version = "1.1.5"
|
||||
|
||||
[dependencies.esp-synopsys-usb-otg]
|
||||
version = "0.4.2"
|
||||
features = [
|
||||
"fs",
|
||||
"esp32sx",
|
||||
]
|
||||
optional = true
|
||||
|
||||
[dependencies.esp32]
|
||||
version = "0.34.0"
|
||||
features = [
|
||||
"critical-section",
|
||||
"rt",
|
||||
]
|
||||
optional = true
|
||||
|
||||
[dependencies.esp32c2]
|
||||
version = "0.23.0"
|
||||
features = [
|
||||
"critical-section",
|
||||
"rt",
|
||||
]
|
||||
optional = true
|
||||
|
||||
[dependencies.esp32c3]
|
||||
version = "0.26.0"
|
||||
features = [
|
||||
"critical-section",
|
||||
"rt",
|
||||
]
|
||||
optional = true
|
||||
|
||||
[dependencies.esp32c6]
|
||||
version = "0.17.0"
|
||||
features = [
|
||||
"critical-section",
|
||||
"rt",
|
||||
]
|
||||
optional = true
|
||||
|
||||
[dependencies.esp32h2]
|
||||
version = "0.13.0"
|
||||
features = [
|
||||
"critical-section",
|
||||
"rt",
|
||||
]
|
||||
optional = true
|
||||
|
||||
[dependencies.esp32s2]
|
||||
version = "0.25.0"
|
||||
features = [
|
||||
"critical-section",
|
||||
"rt",
|
||||
]
|
||||
optional = true
|
||||
|
||||
[dependencies.esp32s3]
|
||||
version = "0.29.0"
|
||||
features = [
|
||||
"critical-section",
|
||||
"rt",
|
||||
]
|
||||
optional = true
|
||||
|
||||
[dependencies.fugit]
|
||||
version = "0.3.7"
|
||||
|
||||
[dependencies.log]
|
||||
version = "0.4.22"
|
||||
optional = true
|
||||
|
||||
[dependencies.nb]
|
||||
version = "1.1.0"
|
||||
|
||||
[dependencies.paste]
|
||||
version = "1.0.15"
|
||||
|
||||
[dependencies.portable-atomic]
|
||||
version = "1.9.0"
|
||||
default-features = false
|
||||
|
||||
[dependencies.procmacros]
|
||||
version = "0.15.0"
|
||||
features = [
|
||||
"enum-dispatch",
|
||||
"interrupt",
|
||||
"ram",
|
||||
]
|
||||
package = "esp-hal-procmacros"
|
||||
|
||||
[dependencies.rand_core]
|
||||
version = "0.6.4"
|
||||
|
||||
[dependencies.riscv]
|
||||
version = "0.12.1"
|
||||
optional = true
|
||||
|
||||
[dependencies.strum]
|
||||
version = "0.26.3"
|
||||
features = ["derive"]
|
||||
default-features = false
|
||||
|
||||
[dependencies.ufmt-write]
|
||||
version = "0.1.0"
|
||||
|
||||
[dependencies.usb-device]
|
||||
version = "0.3.2"
|
||||
optional = true
|
||||
|
||||
[dependencies.void]
|
||||
version = "1.0.2"
|
||||
default-features = false
|
||||
|
||||
[dependencies.xtensa-lx]
|
||||
version = "0.9.0"
|
||||
optional = true
|
||||
|
||||
[build-dependencies.basic-toml]
|
||||
version = "0.1.9"
|
||||
|
||||
[build-dependencies.cfg-if]
|
||||
version = "1.0.0"
|
||||
|
||||
[build-dependencies.esp-build]
|
||||
version = "0.1.0"
|
||||
|
||||
[build-dependencies.esp-config]
|
||||
version = "0.2.0"
|
||||
features = ["build"]
|
||||
|
||||
[build-dependencies.esp-metadata]
|
||||
version = "0.4.0"
|
||||
|
||||
[build-dependencies.serde]
|
||||
version = "1.0.215"
|
||||
features = ["derive"]
|
||||
|
||||
[features]
|
||||
__esp_hal_embassy = []
|
||||
bluetooth = []
|
||||
ci = [
|
||||
"defmt",
|
||||
"bluetooth",
|
||||
]
|
||||
debug = [
|
||||
"esp32?/impl-register-debug",
|
||||
"esp32c2?/impl-register-debug",
|
||||
"esp32c3?/impl-register-debug",
|
||||
"esp32c6?/impl-register-debug",
|
||||
"esp32h2?/impl-register-debug",
|
||||
"esp32s2?/impl-register-debug",
|
||||
"esp32s3?/impl-register-debug",
|
||||
]
|
||||
default = []
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"embassy-futures/defmt",
|
||||
"embassy-sync/defmt",
|
||||
"embedded-hal/defmt-03",
|
||||
"embedded-io/defmt-03",
|
||||
"embedded-io-async/defmt-03",
|
||||
"esp32?/defmt",
|
||||
"esp32c2?/defmt",
|
||||
"esp32c3?/defmt",
|
||||
"esp32c6?/defmt",
|
||||
"esp32h2?/defmt",
|
||||
"esp32s2?/defmt",
|
||||
"esp32s3?/defmt",
|
||||
"fugit/defmt",
|
||||
]
|
||||
esp32 = [
|
||||
"dep:esp32",
|
||||
"xtensa",
|
||||
"xtensa-lx/spin",
|
||||
"xtensa-lx-rt/esp32",
|
||||
]
|
||||
esp32c2 = [
|
||||
"dep:esp32c2",
|
||||
"riscv",
|
||||
"portable-atomic/unsafe-assume-single-core",
|
||||
]
|
||||
esp32c3 = [
|
||||
"dep:esp32c3",
|
||||
"riscv",
|
||||
"portable-atomic/unsafe-assume-single-core",
|
||||
"esp-riscv-rt/rtc-ram",
|
||||
]
|
||||
esp32c6 = [
|
||||
"dep:esp32c6",
|
||||
"riscv",
|
||||
"procmacros/has-lp-core",
|
||||
"esp-riscv-rt/rtc-ram",
|
||||
]
|
||||
esp32h2 = [
|
||||
"dep:esp32h2",
|
||||
"riscv",
|
||||
"esp-riscv-rt/rtc-ram",
|
||||
]
|
||||
esp32s2 = [
|
||||
"dep:esp32s2",
|
||||
"xtensa",
|
||||
"portable-atomic/critical-section",
|
||||
"procmacros/has-ulp-core",
|
||||
"xtensa-lx-rt/esp32s2",
|
||||
"usb-otg",
|
||||
]
|
||||
esp32s3 = [
|
||||
"dep:esp32s3",
|
||||
"xtensa",
|
||||
"procmacros/has-ulp-core",
|
||||
"xtensa-lx/spin",
|
||||
"xtensa-lx-rt/esp32s3",
|
||||
"usb-otg",
|
||||
]
|
||||
flip-link = ["esp-riscv-rt/fix-sp"]
|
||||
log = ["dep:log"]
|
||||
octal-psram = []
|
||||
quad-psram = []
|
||||
riscv = [
|
||||
"dep:riscv",
|
||||
"critical-section/restore-state-u8",
|
||||
]
|
||||
usb-otg = [
|
||||
"dep:embassy-usb-driver",
|
||||
"dep:embassy-usb-synopsys-otg",
|
||||
"dep:esp-synopsys-usb-otg",
|
||||
"dep:usb-device",
|
||||
]
|
||||
xtensa = [
|
||||
"dep:xtensa-lx",
|
||||
"critical-section/restore-state-u32",
|
||||
]
|
||||
|
||||
[target.'cfg(target_arch = "riscv32")'.dependencies.esp-riscv-rt]
|
||||
version = "0.9.1"
|
||||
|
||||
[target.'cfg(target_arch = "xtensa")'.dependencies.xtensa-lx-rt]
|
||||
version = "0.17.2"
|
||||
|
||||
[lints.clippy]
|
||||
mixed_attributes_style = "allow"
|
||||
|
||||
[lints.rust.unexpected_cfgs]
|
||||
level = "warn"
|
||||
priority = 0
|
||||
check-cfg = ['cfg(host_os, values("windows"))']
|
||||
Reference in new issue
Block a user