Self-inflicted SPI conflict due to SyncWord errors prevents concentrator initialization
Description
LoRa Basics Station sometimes fails to start the concentrator due to a self inflicted SPI conflict triggered by initial syncword errors.
Observed behavior
-
RX buffer receives repeated garbage bytes (0x5) and fails to detect a valid syncword:
no syncword found, discard rx_buffer
-
The concentrator never starts:
Note: LoRa concentrator was not started...
-
Station reports SPI device in use:
[any:CRIT] Radio device '/dev/spidev0.0' in use by process: <PID>
-
Station attempts to kill the process using SPI, but it is actually its own PID, leading to a repeated self termination loop.
Impact
- Concentrator never initializes.
- SPI remains locked.
- Connection cannot be re-established.
Theorical Root cause
- Initial syncword errors leave the SPI file descriptor open.
- Station logic assumes any SPI in-use belongs to another process and issues a kill attempt.
- No distinction is made between self-owned and external SPI usage.