All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.1 - 2026-05-06
- Adopt
rustyfarian-ws2812 v0.5.0retag covering the upstream crate renamesled-effects→pennantandws2812-pure→bunting. Workspace dependencyled-effectsbecomespennant;rustyfarian-esp-hal-ws2812feature flagled-effectsbecomespennant. Alluse led_effects::…imports updated touse pennant::…. The two HAL drivers stay on git (not yet on crates.io) sopennantis also kept as a git dep — sharing the source guarantees a single compiled copy and unifiesStatusLed/PulseEffectacross the HAL boundary.
0.2.0 - 2026-05-06
This release introduces an OTA MVP across both stacks, completes the April 2026 esp-hal upgrade wave, and switches bare-metal Wi-Fi to an async-only API built on embassy-net.
- OTA MVP — three new experimental crates (
ota-pure,rustyfarian-esp-idf-ota,rustyfarian-esp-hal-ota) for end-to-end firmware update - Bare-metal async Wi-Fi via the new
embassyCargo feature onrustyfarian-esp-hal-wifi - ESP-NOW peer discovery, reliable delivery, and the Peripheral Command Framework
- Wi-Fi TX power and power-save configuration in
wifi-pure - MQTT non-blocking publishes,
StatusLedboot feedback, and configurable task stack / reconnect timeout
- BREAKING — bare-metal Wi-Fi is now async-only; the synchronous
WiFiManagersurface and thehal_*_connectexamples are gone - BREAKING —
esp-radio 0.18API renames cascade throughrustyfarian-esp-hal-wifi - April 2026
esp-halstack wave:esp-hal 1.1.0,esp-rtos 0.3.0,esp-radio 0.18.0, plus matching embassy pins
- ESP-NOW channel-scan and
send_and_waitrace conditions
0.1.0 - 2026-03-16
wifi-purecrate withWifiDrivertrait,WiFiConfig,ConnectMode,MockWifiDriver, and SSID/password validation (ADR 006);rustyfarian-esp-hal-wifibare-metal stublora-purecrate withLoraRadiotrait, LoRaWAN types, OTA command parser, andMockLoraRadio(ADR 005);rustyfarian-esp-hal-lorabare-metal stubrustyfarian-esp-idf-lora:LoraRadioAdapterbridging tolorawan-device 0.12;idf_esp32s3_joinandhal_esp32s3_joinexamples for Heltec WiFi LoRa 32 V3espnow-purecrate withEspNowDrivertrait,EspNowEvent,PeerConfig,WifiInterface(STA/AP), andMockEspNowDriver(ADR 007);rustyfarian-esp-idf-espnowESP-IDF driverrustyfarian-esp-idf-mqtt:MqttBuilderAPI withMqttHandle, lifecycle callbacks (on_connect,on_disconnect,on_message),LwtConfig,with_auth(), andpublish_with()(ADR 002)rustyfarian-network-pure: MQTT input validation,MqttConnectionStatestate machine, andExponentialBackoffiterator for retry logic- Dual-HAL script infrastructure:
build-example.sh,flash.sh,ensure-bootloader.sh, andxtensa-toolchain.shforhal_*bare-metal targets - Examples:
idf_c3_connect,idf_c3_mqtt,idf_esp32_mqtt; hardware referencedocs/heltec-wifi-lora-32-v3.md - CI: pure-crate test job for all host tests (
rustyfarian-network-pure,wifi-pure,lora-pure,espnow-pure)