[package]
name = "m5stack-core"
version = "0.4.0"
edition = "2024"
rust-version = "1.86"
license = "MIT OR Apache-2.0"
description = "Board support crate for M5Stack Fire27 and CoreS3 (ESP32/ESP32-S3)"
repository = "https://github.com/emobotics-dev/m5stack-core"
readme = "README.md"
keywords = ["esp32", "m5stack", "embedded", "bsp", "embassy"]
categories = ["embedded", "no-std", "hardware-support"]
exclude = [".github/", ".devcontainer/"]
[lib]
test = false
bench = false
[features]
fire27 = ["esp-hal/esp32", "esp-radio/esp32", "esp-sync/esp32", "esp-bootloader-esp-idf?/esp32", "esp-rtos?/esp32"]
cores3 = ["esp-hal/esp32s3", "esp-radio/esp32s3", "esp-sync/esp32s3", "esp-bootloader-esp-idf?/esp32s3", "esp-rtos?/esp32s3"]
search-masks = []
serial-cmd = []
panic-handler = []
multicore = ["dep:esp-rtos"]
console-serial = []
heap = ["dep:esp-alloc", "dep:allocator-api2", "dep:esp-bootloader-esp-idf"]
psram = ["heap"]
display = ["dep:lcd-async", "dep:embassy-embedded-hal"]
buttons = ["dep:async-button"]
ble = ["esp-radio/ble"]
wifi = ["esp-radio/wifi"]
wifi-sta = ["wifi", "dep:embassy-net"]
wifi-ap = ["wifi", "dep:embassy-net"]
coex = ["esp-radio/coex", "wifi", "ble"]
[dependencies]
esp-alloc = { version = "=0.10.0", optional = true }
esp-hal = { version = "=1.1.1", features = ["unstable"] }
esp-radio = { version = "=0.18.0", features = ["esp-alloc", "unstable"] }
esp-sync = { version = "=0.2.1" }
esp-bootloader-esp-idf = { version = "=0.5.0", optional = true }
esp-rtos = { version = "=0.3.0", optional = true, features = ["embassy"] }
esp-rom-sys = { version = "=0.1.4" }
embedded-hal = "1.0.0"
embedded-io-async = "0.7.0"
embassy-executor = { version = "0.10.0", features = ["nightly"] }
embassy-futures = "0.1"
embassy-net = { version = "0.8.0", optional = true, default-features = false, features = ["dhcpv4", "proto-ipv4", "medium-ethernet", "tcp", "udp", "dns"] }
embassy-sync = "0.8"
embassy-time = "0.5.0"
allocator-api2 = { version = "0.3.0", default-features = false, features = ["alloc"], optional = true }
async-button = { version = "0.2.0", optional = true }
embassy-embedded-hal = { version = "0.6.0", optional = true, features = ["time"] }
fixed = "1.29.0"
lcd-async = { version = "0.1.3", optional = true }
heapless = { version = "0.9.1", features = ["nightly"] }
log = "0.4"
static_cell = { version = "2.1.1", features = ["nightly"] }
thiserror-no-std = "2.0.2"
[patch.crates-io]
esp-hal = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0" }
esp-radio = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0" }
esp-sync = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0" }
esp-alloc = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0" }
esp-rom-sys = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0" }
esp-bootloader-esp-idf = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0" }
esp-rtos = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0" }
[workspace]
members = ["examples/common", "examples/demos"]
[workspace.dependencies]
esp-alloc = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0", features = ["internal-heap-stats"] }
esp-backtrace = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0", features = ["panic-handler", "custom-halt", "colors", "println"] }
esp-bootloader-esp-idf = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0" }
esp-hal = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0", features = ["unstable"] }
esp-println = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0", features = ["log-04", "colors", "timestamp"], default-features = false }
esp-rtos = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0", features = ["embassy", "esp-radio"] }
esp-sync = { git = "https://github.com/emobotics-dev/esp-hal.git", rev = "b7a4c74a024383cb9808453cf3e34296c5e870b0" }
panic-halt = "1.0.0"
rtt-target = { version = "0.6.2", features = ["log"] }
embassy-embedded-hal = { version = "0.6.0", features = ["time"] }
embassy-executor = { version = "0.10.0", features = ["nightly"] }
embassy-futures = "0.1"
embassy-net = { version = "0.8.0", default-features = false, features = ["dhcpv4", "proto-ipv4", "medium-ethernet", "tcp", "udp", "dns"] }
embassy-sync = "0.8"
embassy-time = "0.5.0"
embedded-graphics = "0.8.1"
lcd-async = "0.1.1"
trouble-host = { version = "0.6.0", features = ["default-packet-pool-mtu-255", "scan", "derive"] }
oxivgl = { version = "0.5.0", features = ["esp-hal", "log-04"] }
oxivgl-sys = { version = "0.2.1", default-features = false }
embedded-hal = "1.0.0"
heapless = "0.9.1"
log = "0.4"
static_cell = { version = "2.1.1", features = ["nightly"] }
[profile.dev]
opt-level = "s"
[profile.release]
codegen-units = 1
debug = 2
debug-assertions = false
incremental = false
lto = "fat"
opt-level = "s"
overflow-checks = true