Los tableros TTGO Lora tienen algunos problemas cuando se usan junto con las tarjetas SD. Las tarjetas SX1278 y SD usan SPI como bus de comunicación. SPI es una familia de protocolo puede funcionar en muchas configuraciones diferentes.
El ESP32 en la placa TTGO Lora tiene un hardware SPI (HSPI) Builtin y también puede hacer SPI virtual / de software (VSPI) a través de la emulación. También los busses VSPI, así como el HSPI, se pueden enrutar a cualquiera de los pines.

En la configuración predeterminada, tanto SX1278 como la biblioteca SD usan el HSPI y, por lo tanto, se impiden mutuamente.
Para que funcione la tarjeta SX1278 y SD, se deben utilizar dos autobuses SPI. Mientras experimentaba con el tablero, también se hizo evidente, que el SX1278 es propenso a errores en el Hardware SPI, y no funcionó, cuando se usó la tarjeta SD en un VSPI.
La solución final utiliza el bus HSPI para comunicación con SD y un SPI de software para el SX1278. También es una opción para usar dos buses SPI de software separados.
#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!" );