diff --git a/CHANGELOG.md b/CHANGELOG.md index 27d4601..abb5da0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [1.0.0] - 2026-04-22 + +The 1.0 release. Firmware now speaks DongLoRa Protocol v2 end to end, +depends on the freshly-published `donglora-protocol` 1.0.0 and `hsmc` +0.1.0 from crates.io, and ships GitHub Release binaries for every +supported board. + +### Breaking + +- **DongLoRa Protocol v2 wire format** (wire-incompatible with 0.x + clients and firmware). Every `type_id`, tag-correlation rule, and + field layout follows `PROTOCOL.md` v1.0. +- **Host framing replaced.** `src/host/framing.rs` now drives a + streaming `FrameDecoder` from `donglora-protocol` and emits + `(type_id, tag, payload)` frames; the 0.x COBS-per-response shim is + gone. +- **Radio task reshape.** `src/radio.rs` emits v2 `TX_DONE` / + `SetConfigResult` / `RxPayload` / `RxOrigin` shapes directly; no 0.x + translation layer remains. + +### Changed + +- `hsmc` switched from path-dep on the local workspace to + `version = "0.1.0"` from crates.io. +- `donglora-protocol` switched from path-dep on `../protocol` to + `version = "1.0.0"` from crates.io; firmware builds are now + reproducible from a clean checkout with no sibling repo required. +- `PROTOCOL.md` updated to the DongLoRa Protocol v2 normative spec, + kept byte-for-byte in sync with the `donglora-protocol` crate's + copy. + +### Infrastructure + +- Cargo.toml `repository` + `homepage` now point at the canonical + `https://github.com/donglora/firmware` (the `swaits/donglora` + repo is archived). + ## [0.5.0] - 2026-04-16 ### Added diff --git a/Cargo.lock b/Cargo.lock index 274b7fd..e7d8c80 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -486,7 +486,7 @@ dependencies = [ [[package]] name = "donglora" -version = "0.5.0" +version = "1.0.0" dependencies = [ "cfg-if", "cortex-m", @@ -527,7 +527,9 @@ dependencies = [ [[package]] name = "donglora-protocol" -version = "0.1.0" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f2743ac7668845500e3686890917cdf5b0a09d17ec099bde2db4d3fae2a4a4" dependencies = [ "defmt 1.0.1", "heapless 0.9.2", @@ -1403,6 +1405,8 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hsmc" version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d8cb8820e7ff5fa4fa4b5dbb78b9f59d26ccc8e3bcf69d8f4c4ce29ee01b93a" dependencies = [ "embassy-futures", "embassy-sync 0.8.0", @@ -1414,6 +1418,8 @@ dependencies = [ [[package]] name = "hsmc-macros" version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4fa4dad2c05309fae4f6d15b74d9b37c1fd7325a96701972fdad89637635160" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 07145c9..9daabf1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,13 +3,14 @@ members = ["."] [package] name = "donglora" -version = "0.5.0" +version = "1.0.0" edition = "2021" build = "build.rs" authors = ["Stephen Waits "] license = "MIT" description = "Transparent LoRa radio over USB — plug in a board, talk LoRa from your host" -repository = "https://github.com/swaits/donglora" +repository = "https://github.com/donglora/firmware" +homepage = "https://github.com/donglora/firmware" keywords = ["lora", "radio", "embedded", "usb", "firmware"] categories = ["embedded", "hardware-support", "no-std"] @@ -29,8 +30,8 @@ embassy-usb = { version = "0.6", features = ["defmt"] } embassy-usb-driver = "0.2" ucobs = { version = "0.3", features = ["legacy-msrv"] } heapless = "0.9" -donglora-protocol = { path = "../protocol" } -hsmc = { path = "../../hsmc/hsmc", default-features = false, features = ["embassy"] } +donglora-protocol = "1.0.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"] } static_cell = "2.1"