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
+224
@@ -0,0 +1,224 @@
|
||||
# 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.75.0"
|
||||
name = "ssd1306"
|
||||
version = "0.10.0"
|
||||
authors = ["James Waples <jamwaffles@gmail.com>"]
|
||||
build = false
|
||||
exclude = [
|
||||
"build.rs",
|
||||
"build.sh",
|
||||
"memory.x",
|
||||
"doc",
|
||||
"*.jpg",
|
||||
"*.png",
|
||||
"*.bmp",
|
||||
]
|
||||
autolib = false
|
||||
autobins = false
|
||||
autoexamples = false
|
||||
autotests = false
|
||||
autobenches = false
|
||||
description = "I2C/SPI driver for the SSD1306 OLED display controller"
|
||||
documentation = "https://docs.rs/ssd1306"
|
||||
readme = "README.md"
|
||||
keywords = [
|
||||
"no-std",
|
||||
"ssd1306",
|
||||
"oled",
|
||||
"embedded",
|
||||
"embedded-hal-driver",
|
||||
]
|
||||
categories = [
|
||||
"embedded",
|
||||
"no-std",
|
||||
]
|
||||
license = "MIT OR Apache-2.0"
|
||||
repository = "https://github.com/rust-embedded-community/ssd1306"
|
||||
resolver = "2"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
all-features = true
|
||||
targets = [
|
||||
"thumbv7m-none-eabi",
|
||||
"thumbv7em-none-eabihf",
|
||||
]
|
||||
|
||||
[features]
|
||||
async = ["dep:embedded-hal-async"]
|
||||
default = ["graphics"]
|
||||
graphics = ["embedded-graphics-core"]
|
||||
|
||||
[lib]
|
||||
name = "ssd1306"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[[example]]
|
||||
name = "async_i2c_spi"
|
||||
path = "examples/async_i2c_spi.rs"
|
||||
required-features = ["async"]
|
||||
|
||||
[[example]]
|
||||
name = "async_terminal_i2c"
|
||||
path = "examples/async_terminal_i2c.rs"
|
||||
required-features = ["async"]
|
||||
|
||||
[[example]]
|
||||
name = "bmp_i2c"
|
||||
path = "examples/bmp_i2c.rs"
|
||||
|
||||
[[example]]
|
||||
name = "graphics"
|
||||
path = "examples/graphics.rs"
|
||||
|
||||
[[example]]
|
||||
name = "graphics_i2c"
|
||||
path = "examples/graphics_i2c.rs"
|
||||
|
||||
[[example]]
|
||||
name = "graphics_i2c_128x32"
|
||||
path = "examples/graphics_i2c_128x32.rs"
|
||||
|
||||
[[example]]
|
||||
name = "graphics_i2c_72x40"
|
||||
path = "examples/graphics_i2c_72x40.rs"
|
||||
|
||||
[[example]]
|
||||
name = "image_i2c"
|
||||
path = "examples/image_i2c.rs"
|
||||
|
||||
[[example]]
|
||||
name = "noise_i2c"
|
||||
path = "examples/noise_i2c.rs"
|
||||
|
||||
[[example]]
|
||||
name = "pixelsquare"
|
||||
path = "examples/pixelsquare.rs"
|
||||
|
||||
[[example]]
|
||||
name = "rotation_i2c"
|
||||
path = "examples/rotation_i2c.rs"
|
||||
|
||||
[[example]]
|
||||
name = "rtic_brightness"
|
||||
path = "examples/rtic_brightness.rs"
|
||||
|
||||
[[example]]
|
||||
name = "rtic_dvd"
|
||||
path = "examples/rtic_dvd.rs"
|
||||
|
||||
[[example]]
|
||||
name = "terminal_i2c"
|
||||
path = "examples/terminal_i2c.rs"
|
||||
|
||||
[[example]]
|
||||
name = "text_i2c"
|
||||
path = "examples/text_i2c.rs"
|
||||
|
||||
[dependencies.display-interface]
|
||||
version = "0.5.0"
|
||||
|
||||
[dependencies.display-interface-i2c]
|
||||
version = "0.5.0"
|
||||
|
||||
[dependencies.display-interface-spi]
|
||||
version = "0.5.0"
|
||||
|
||||
[dependencies.embedded-graphics-core]
|
||||
version = "0.4.0"
|
||||
optional = true
|
||||
|
||||
[dependencies.embedded-hal]
|
||||
version = "1.0.0"
|
||||
|
||||
[dependencies.embedded-hal-async]
|
||||
version = "1.0.0"
|
||||
optional = true
|
||||
|
||||
[dependencies.maybe-async-cfg]
|
||||
version = "=0.2.4"
|
||||
|
||||
[dev-dependencies.embedded-graphics]
|
||||
version = "0.8.0"
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.cortex-m]
|
||||
version = "0.7.2"
|
||||
features = ["critical-section-single-core"]
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.cortex-m-rt]
|
||||
version = "0.7.3"
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.cortex-m-rtic]
|
||||
version = "1.1.4"
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.defmt]
|
||||
version = "0.3.6"
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.defmt-rtt]
|
||||
version = "0.4.0"
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.embassy-embedded-hal]
|
||||
version = "0.3.0"
|
||||
default-features = false
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.embassy-executor]
|
||||
version = "0.7.0"
|
||||
features = [
|
||||
"arch-cortex-m",
|
||||
"executor-thread",
|
||||
"defmt",
|
||||
]
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.embassy-futures]
|
||||
version = "0.1.1"
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.embassy-stm32]
|
||||
version = "0.2.0"
|
||||
features = [
|
||||
"stm32f103c8",
|
||||
"memory-x",
|
||||
"defmt",
|
||||
"exti",
|
||||
"time-driver-tim3",
|
||||
"unstable-pac",
|
||||
]
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.embassy-time]
|
||||
version = "0.4.0"
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.embedded-hal-bus]
|
||||
version = "0.3.0"
|
||||
features = ["async"]
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.panic-probe]
|
||||
version = "0.3.1"
|
||||
features = ["print-defmt"]
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.rand]
|
||||
version = "0.8.4"
|
||||
features = ["small_rng"]
|
||||
default-features = false
|
||||
|
||||
[target.'cfg(target_arch="arm")'.dev-dependencies.tinybmp]
|
||||
version = "0.6.0"
|
||||
|
||||
[profile.dev]
|
||||
opt-level = "s"
|
||||
codegen-units = 1
|
||||
incremental = false
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
debug = 2
|
||||
Reference in new issue
Block a user