fix(deps): pin lora-phy to swaits/lora-rs#fixed for sx127x/sx126x reliability
Switch lora-phy from crates.io to the swaits/lora-rs "fixed" branch
which carries three fixes awaiting upstream PR acceptance:
- phy: sx127x: clear stale IRQ flags before reconfiguring DIO mapping
in set_irq_params (fix/sx127x-irq-clear-position)
- phy: sx127x: clear stale IRQ flags in do_rx before mode change
(fix/sx127x-rx-irq-clear)
- phy: sx126x: pre-command BUSY check + standby/IRQ-clear hygiene
around CAD (fix/sx126x-busy-race)
Validates TBeam classic (sx127x) in particular and tightens reliability
across every board (the sx126x BUSY-race fix lands on every nRF/RP2040
board too). Pinned to commit e8a52ebd via Cargo.lock; revert to
crates.io once the three PRs land upstream.
This commit is contained in:
3 files changed
+33
-19
No files matched your search
Generated
+5
@@ -1734,6 +1734,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lora-modulation"
|
name = "lora-modulation"
|
||||||
version = "0.1.5"
|
version = "0.1.5"
|
||||||
|
source = "git+https://github.com/swaits/lora-rs.git?branch=fixed#e8a52ebd35352ce0267148fd392a0b1956d7735f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"defmt 0.3.100",
|
"defmt 0.3.100",
|
||||||
]
|
]
|
||||||
@@ -1741,6 +1742,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lora-phy"
|
name = "lora-phy"
|
||||||
version = "3.0.2-alpha"
|
version = "3.0.2-alpha"
|
||||||
|
source = "git+https://github.com/swaits/lora-rs.git?branch=fixed#e8a52ebd35352ce0267148fd392a0b1956d7735f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"defmt 0.3.100",
|
"defmt 0.3.100",
|
||||||
"document-features",
|
"document-features",
|
||||||
@@ -1754,6 +1756,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lorawan"
|
name = "lorawan"
|
||||||
version = "0.9.1"
|
version = "0.9.1"
|
||||||
|
source = "git+https://github.com/swaits/lora-rs.git?branch=fixed#e8a52ebd35352ce0267148fd392a0b1956d7735f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes",
|
"aes",
|
||||||
"cmac",
|
"cmac",
|
||||||
@@ -1765,6 +1768,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lorawan-device"
|
name = "lorawan-device"
|
||||||
version = "0.12.2"
|
version = "0.12.2"
|
||||||
|
source = "git+https://github.com/swaits/lora-rs.git?branch=fixed#e8a52ebd35352ce0267148fd392a0b1956d7735f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"defmt 0.3.100",
|
"defmt 0.3.100",
|
||||||
"document-features",
|
"document-features",
|
||||||
@@ -1779,6 +1783,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lorawan-macros"
|
name = "lorawan-macros"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/swaits/lora-rs.git?branch=fixed#e8a52ebd35352ce0267148fd392a0b1956d7735f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
|||||||
+3
-3
@@ -34,9 +34,9 @@ ucobs = { version = "0.3", features = ["legacy-msrv"] }
|
|||||||
heapless = "0.9"
|
heapless = "0.9"
|
||||||
donglora-protocol = "1"
|
donglora-protocol = "1"
|
||||||
hsmc = { version = "0.5", default-features = false, features = ["embassy", "trace-defmt"] }
|
hsmc = { version = "0.5", default-features = false, features = ["embassy", "trace-defmt"] }
|
||||||
# Local path while iterating on CAD IRQ-clear / standby-after-CAD fixes.
|
# Fork branch carrying CAD IRQ-clear / standby-after-CAD fixes awaiting upstream PRs.
|
||||||
# Switch back to git fork (then crates.io) once changes are upstreamed.
|
# Switch back to crates.io once changes are upstreamed.
|
||||||
lora-phy = { path = "../../lora-rs/lora-phy", features = ["defmt-03"] }
|
lora-phy = { git = "https://github.com/swaits/lora-rs.git", branch = "fixed", features = ["defmt-03"] }
|
||||||
portable-atomic = { version = "1", default-features = false, features = ["critical-section"] }
|
portable-atomic = { version = "1", default-features = false, features = ["critical-section"] }
|
||||||
static_cell = "2.1"
|
static_cell = "2.1"
|
||||||
|
|
||||||
|
|||||||
@@ -1,30 +1,39 @@
|
|||||||
# Firmware TODO List
|
# Firmware TODO List
|
||||||
|
|
||||||
## `lora-phy` fix: drop fork pin once PR #428 merges + releases
|
## `lora-phy` fix: drop fork pin once PRs #428 / #431 / #432 merge + release
|
||||||
|
|
||||||
|
Upstream PRs (all open):
|
||||||
|
|
||||||
|
- [#428 — *phy: add pre-command BUSY checks per Semtech
|
||||||
|
datasheets*](https://github.com/lora-rs/lora-rs/pull/428) (sx126x):
|
||||||
|
pre-command BUSY check + standby/IRQ-clear hygiene around CAD.
|
||||||
|
- [#431 — *phy: sx127x: clear stale IRQ flags in do_rx before mode
|
||||||
|
change*](https://github.com/lora-rs/lora-rs/pull/431).
|
||||||
|
- [#432 — *phy: sx127x: clear stale IRQ flags before reconfiguring DIO
|
||||||
|
mapping in set_irq_params*](https://github.com/lora-rs/lora-rs/pull/432).
|
||||||
|
|
||||||
Upstream PR: [lora-rs/lora-rs#428 — *phy: add pre-command BUSY checks
|
|
||||||
per Semtech datasheets*](https://github.com/lora-rs/lora-rs/pull/428)
|
|
||||||
(open).
|
|
||||||
Fork branch we ship from:
|
Fork branch we ship from:
|
||||||
[`swaits/lora-rs @ fix/sx126x-busy-race`](https://github.com/swaits/lora-rs/tree/fix/sx126x-busy-race).
|
[`swaits/lora-rs @ fixed`](https://github.com/swaits/lora-rs/tree/fixed)
|
||||||
|
— a merge of all three fix branches kept up-to-date with upstream
|
||||||
|
`main`.
|
||||||
|
|
||||||
Firmware consumes the fix via a direct `git` dependency in
|
Firmware consumes the fixes via a direct `git` dependency in
|
||||||
`Cargo.toml`:
|
`Cargo.toml`:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
lora-phy = { git = "https://github.com/swaits/lora-rs.git", branch = "fix/sx126x-busy-race", features = ["defmt-03"] }
|
lora-phy = { git = "https://github.com/swaits/lora-rs.git", branch = "fixed", features = ["defmt-03"] }
|
||||||
```
|
```
|
||||||
|
|
||||||
When PR #428 merges and a `lora-phy` release ships on crates.io that
|
When all three PRs merge and a `lora-phy` release ships on crates.io
|
||||||
contains it, switch this line back to a normal `lora-phy = "X.Y"`
|
that contains them, switch this line back to a normal
|
||||||
crates.io version and drop the explanatory comment block above it.
|
`lora-phy = "X.Y"` crates.io version and drop the explanatory comment
|
||||||
|
block above it.
|
||||||
|
|
||||||
Hardware-verified on Wio Tracker L1: 20/20 clean-boot TX after the fix
|
Hardware impact: large stability gain on every board — the sx126x
|
||||||
(vs ~50% before). The fix adds a pre-command BUSY check before each
|
BUSY-race fix lands on every nRF/RP2040 board, and the sx127x IRQ-clear
|
||||||
`SpiInterface` read/write op, keeping the existing post-command wait
|
fixes unblock TBeam classic in particular. Hardware-verified on Wio
|
||||||
in place — belt-and-suspenders bracketing that closes the
|
Tracker L1 (sx126x): 20/20 clean-boot TX after the fix (vs ~50%
|
||||||
BUSY-assertion latency window (T_SW ≤ 600 ns) a single level-poll can
|
before).
|
||||||
miss.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user