⚠️ Breaking change — attenuator semantics
The att field is now the direct DAC attenuation value, not a total-including-insertion-loss value. Firmware no longer subtracts 1.5 dB before programming the chip.
att before v1.1.0 |
att in v1.1.0 |
|---|---|
1.5 (= 0 dB DAC) |
0 (bypass) or 0.5 (DAC = 0.5 dB) |
6.0 (= 4.5 dB DAC) |
4.5 (DAC = 4.5 dB) |
31.5 (= 30 dB DAC) |
30.0 (DAC = 30 dB) |
Controllers and calibration tables must be updated to pass the actual DAC value they want the chip to apply. The chip's own insertion loss is a property of the RF path and is no longer represented in the protocol field.
New — status query
Send <name>/?/? (or just <name>/?) and the switch replies with an ACK carrying its current port + attenuator state without changing anything. Useful for controller UIs and recovery after a missed ACK.
Examples:
sw0/?/? → ACK:sw0/3/6.0 (currently: port 3, 6.0 dB attenuation)
sw0/? → same, att field defaulted
Other
- Log lines clearly distinguish
PORT REQ:fromQUERY REQ:so you can see what the switch is doing. - ACK format unchanged:
ACK:<name>/<port>/<att>.att=0.0in the ACK means the attenuator is bypassed.
Docs
PROTOCOL.md— full spec, change log, examples.README.md— attenuator table + status-query section.
Install
Edit /config.txt on the LORA8PSW drive, replace contents with firmwareupdate, save, eject. The device reboots into UF2 mode — drag 8PswitchLORA-v1.1.0.uf2 onto the RPI-RP2 drive.