У плат TTGO LORA есть некоторые проблемы при использовании вместе с SD -картами. Как SX1278, так и SD -карты используют SPI в качестве шины связи. SPI - это семейство протоколов может работать во многих различных конфигурациях.
ESP32 на плате TTGO LORA имеет встроенный аппаратный SPI (HSPI), а также может выполнять виртуальный / программный SPI (VSPI) посредством эмуляции. Также автобусы VSPI, а также HSPI могут быть направлены на любой из булавок.

В конфигурации по умолчанию как SX1278, так и библиотека SD используют HSPI и тем самым препятствуют друг другу.
Чтобы сделать работу SX1278 и SD -карты, необходимо использовать две шины SPI. Во время экспериментов с платой также стало очевидно, что SX1278 подвержен ошибке на аппаратном SPI и не работал, при использовании SD-карты на VSPI.
В окончательном решении используется шина HSPI для связи с SD и программный SPI для SX1278. Это также возможность использовать две отдельные программные шины SPI.
#define SD_CS 23
#define SD_SCK 17
#define SD_MOSI 12
#define SD_MISO 13
SPIClass sd_spi ( HSPI );
sd_spi . begin ( SD_SCK , SD_MISO , SD_MOSI , SD_CS );
if (! SD . begin ( SD_CS , sd_spi ))
Serial . println ( "SD Card: mounting failed." );
else
Serial . println ( "SD Card: mounted." ); RHSoftwareSPI sx1278_spi ;
RH_RF95 rf95 ( LORA_CS , LORA_IRQ , sx1278_spi );
sx1278_spi . setPins ( LORA_MISO , LORA_MOSI , LORA_SCK );
if (! rf95 . init ())
Serial . println ( "LoRa Radio: init failed." );
else
Serial . println ( "LoRa Radio: init OK!" );