Skip to content
/ rued Public

RTOS in Rust - my explorations into an embedded, async, real-world project

License

Notifications You must be signed in to change notification settings

bsodmike/rued

Folders and files

NameName
Last commit message
Last commit date

Latest commit

07b103f · Dec 10, 2023
Dec 10, 2023
Apr 3, 2023
Jan 5, 2023
Dec 7, 2022
Nov 11, 2022
Dec 18, 2022
Apr 3, 2023
Feb 23, 2023
Nov 11, 2022
Jan 27, 2023
Jan 8, 2023
Jan 9, 2023
Nov 4, 2022
Jan 4, 2023

Repository files navigation

rued

[Ru]st [E]lectronic [D]atalogger - my explorations into an embedded, async, real-world project

This is heavily inspired by ruwm by ivmarkov.

If you have questions, find me on Discord in the #embedded channel or in #esp-rs on Matrix

Yet another IoT stack?

With any IoT 'stack', there are some rudimentary basics; this repo is an attempt at building these out using the embedded_svc library and its family of crates from Espressif, such as esp-idf-svc, esp-idf-sys, and esp-idf-hal.

Feature list

Done? Feature Notes
[X] RTOS: High priority executor
[X] Wifi
[X] Httpd server with TLS
[X] Httpd server Middleware Added to provide JSON responses for matching Content-Type headers
[X] SNTP *Fallback to RTC is pending
[X] Ext. RTC RV8803 module used.
[Testing] Display: I2C **Requires further testing.
[X] Display: SPI ili9342 fully tested.
[Testing] SD/MMC Card: SPI **Requires further testing.
[Testing] ADC: Battery voltage
[X] MQTT
[X] OTA Ref: https://github.com/bsodmike/rued-mqtt-client

Quick setup

// flash
scp 10.0.3.70:~/esp/rued/partitions.csv . \
    && scp 10.0.3.70:~/esp/rued/target/xtensa-esp32-espidf/release/rued-esp32 . \
    && espflash flash --baud 920000 --monitor rued-esp32 --partition-table partitions.csv

// monitor for stack-traces
scp 10.0.3.70:~/esp/rued/target/xtensa-esp32-espidf/release/rued-esp32 . && espflash monitor --baud 115200 --elf rued-esp32
// You will need to restart the chip

VSCode

Add the following to settings for rust-analyzer

{
    "rust-analyzer.server.extraEnv": {"LIBCLANG_PATH": "/home/mdesilva/.espressif/tools/xtensa-esp32-elf-clang/esp-15.0.0-20221014-x86_64-unknown-linux-gnu/esp-clang/lib/"},
}

Upgrading to ESP-IDF 5 (and beyond)

espup install --esp-idf-version 5.0
export LIBCLANG_PATH=$HOME/.espressif/tools/xtensa-esp32-elf-clang/esp-15.0.0-20221014-x86_64-unknown-linux-gnu/esp-clang/lib/

# cd into your app root
cargo clean
rm -rf .embuild
cargo build --release

# check for `~/.espressif/esp-idf/release-v5.0`

Semantic Versioning (SemVer)

This project implements SemVer. Please pay attension to Major version changes as these largely include backwards incompatible changes introduced to the public API.

About

RTOS in Rust - my explorations into an embedded, async, real-world project

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages