From 027ac5eb049be7937ef1d3bdf707a759b4d15ec2 Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Wed, 22 Apr 2026 11:47:14 -0600 Subject: [PATCH] chore: release 1.1.0 --- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ Cargo.lock | 6 +++--- Cargo.toml | 4 ++-- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index abb5da0..950e80e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [1.1.0] - 2026-04-22 + +Small but high-value behavior change: `SET_CONFIG` issued while the +radio is in continuous RX no longer drops the radio (and the OLED) +back to idle. The radio now auto-re-arms RX with the new modulation +once reconfiguration completes, matching DongLoRa Protocol 1.1's +§3.5 / §6.3 amendments. + +### Changed + +- `src/radio.rs`: inside `state Receiving`, add `on(ConfigApplied) + => ResumingRx` to shadow the parent `Configured` state's + `on(ConfigApplied) => Idle` handler. The reconfigure path now + runs `apply_set_config` → `ConfigApplied` → `ResumingRx.entry: + try_start_rx_hw` → `StartRxOk` → `Receiving` without ever + entering `Idle`. +- The OLED's `Dashboard → Splash` transition was previously driven + by `RadioEvent::Idle` firing on `Configured.Idle.entry`. That + event no longer fires during a SET_CONFIG-from-Receiving + sequence, so the display stays on Dashboard. + +### Dependencies + +- `donglora-protocol` bumped to `1.1.0` (spec-only change; matches + the new normative text the firmware now implements). + +### Use-case unlock + +- Scanner / time-division / dynamic-modulation workflows that + rotate LoRa parameters mid-RX no longer need to re-issue + `RX_START` after every `SET_CONFIG`. One call, radio continues + to receive. + ## [1.0.0] - 2026-04-22 The 1.0 release. Firmware now speaks DongLoRa Protocol v2 end to end, diff --git a/Cargo.lock b/Cargo.lock index e7d8c80..0ffd3d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -486,7 +486,7 @@ dependencies = [ [[package]] name = "donglora" -version = "1.0.0" +version = "1.1.0" dependencies = [ "cfg-if", "cortex-m", @@ -527,9 +527,9 @@ dependencies = [ [[package]] name = "donglora-protocol" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f2743ac7668845500e3686890917cdf5b0a09d17ec099bde2db4d3fae2a4a4" +checksum = "6bae9e9e5a8cebc6b4167f9ef696b61ce25b94c6d8283dbe1b2e97075a481b9d" dependencies = [ "defmt 1.0.1", "heapless 0.9.2", diff --git a/Cargo.toml b/Cargo.toml index 9daabf1..6af71fc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["."] [package] name = "donglora" -version = "1.0.0" +version = "1.1.0" edition = "2021" build = "build.rs" authors = ["Stephen Waits "] @@ -30,7 +30,7 @@ embassy-usb = { version = "0.6", features = ["defmt"] } embassy-usb-driver = "0.2" ucobs = { version = "0.3", features = ["legacy-msrv"] } heapless = "0.9" -donglora-protocol = "1.0.0" +donglora-protocol = "1.1.0" hsmc = { version = "0.1.0", default-features = false, features = ["embassy"] } lora-phy = "3.0" portable-atomic = { version = "1", optional = true, default-features = false, features = ["critical-section"] }