github attermann/microReticulum_Firmware 1.85
1.85.5

12 hours ago

Fix ISR/SPI mutex crash on ESP32/NRF52 in modem drivers

DIO0 ISRs were calling SPI.beginTransaction() directly, which takes a FreeRTOS mutex — illegal from interrupt context and causes a panic when the SPI bus is held by LittleFS during microReticulum path persistence I/O.

Replaced direct ISR dispatch with a volatile flag checked in the main loop.

  • the ISR sets _dio0_pending
  • the main loop polls handleDio0IfPending() each iteration and calls handleDio0Rise() from safe task context

Applied to sx126x, sx127x, and sx128x. SPI.usingInterrupt/notUsingInterrupt calls in onReceive() are skipped on ESP32/NRF52 since the ISR no longer touches the SPI bus. sx128x preserves Errata 16.1 RX re-entry logic.

Don't miss a new microReticulum_Firmware release

NewReleases is sending notifications on new releases.