mirror of
https://github.com/meshtastic/firmware.git
synced 2026-11-06 22:34:13 -05:00
P2, the fast GPIO port, has no GPIOTE instance on the nRF54L15 (only P0 -> GPIOTE30 and P1 -> GPIOTE20 can raise pin interrupts), so DIO1 on P2.06 never interrupted and the radio ran on the driver's polling fallback, dropping back-to-back packets and retrying every DM. Route DIO1 to P0.00 (a free P1 pin would work as well). Every port runs at the DK's VDD, which must be set to 3.3 V in the Board Configurator for the E22's 3.3 V logic (it is 1.8 V out of the box), and P0.00 must be released from the interface MCU's VCOM UART there too. Verified on the DK + E22-900M30S: ACKs on the first transmission, no missed-IRQ polling. The core's Uart::begin() and SPIClass::begin() select the pins on the peripheral but leave the pads at reset: the UARTE TXD pad stays an input and never drives the pin, and the RXD / MISO pads keep their input buffer disconnected, so the SPIM read back junk. Configure them in initVariant() until the core does.