diff --git a/platformio.ini b/platformio.ini index acdf198..d6fd1a0 100644 --- a/platformio.ini +++ b/platformio.ini @@ -44,38 +44,38 @@ lib_deps = [env:ttgo-lora32-v21] board = ttgo-lora32-v21 -build_flags = +build_flags = -Werror -Wall -DTTGO_T_LORA32_V2_1 -DHAS_SX1278 -DHAS_ADC_CALIBRATION -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 [env:ttgo-lora32-v21_915] board = ttgo-lora32-v21 -build_flags = +build_flags = -Werror -Wall -DTTGO_T_LORA32_V2_1_915 -DHAS_SX1276 -DHAS_ADC_CALIBRATION -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 [env:heltec-lora32-v2] board = ttgo-lora32-v21 -build_flags = +build_flags = -Werror -Wall -DHELTEC_V2 -DHAS_SX1278 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 @@ -83,12 +83,12 @@ lib_deps = [env:heltec_wifi_lora_32_V3] board = heltec_wifi_lora_32_V3 board_build.mcu = esp32s3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_V3 -DHAS_SX1262 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 @@ -96,12 +96,12 @@ lib_deps = [env:heltec_wireless_stick] board = esp32-s3-devkitc-1 board_build.mcu = esp32s3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_WS -DHAS_SX1262 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 @@ -109,40 +109,40 @@ lib_deps = [env:heltec_wireless_stick_lite_v3] board = esp32-s3-devkitc-1 board_build.mcu = esp32s3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_WSL_V3 -DHAS_SX1262 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} [env:heltec_wireless_stick_lite_v3_display] board = esp32-s3-devkitc-1 board_build.mcu = esp32s3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_WSL_V3_DISPLAY -DHAS_SX1262 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} [env:ESP32_DIY_LoRa] board = esp32dev -build_flags = +build_flags = -Werror -Wall -DESP32_DIY_LoRa -DHAS_SX1278 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 [env:ESP32_DIY_LoRa_915] board = esp32dev -build_flags = +build_flags = -Werror -Wall -DESP32_DIY_LoRa_915 -DHAS_SX1276 @@ -154,33 +154,33 @@ lib_deps = [env:ESP32_DIY_1W_LoRa] board = esp32dev -build_flags = +build_flags = -Werror -Wall -DESP32_DIY_1W_LoRa -DHAS_SX1268 -DHAS_1W_LORA -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 [env:ESP32_DIY_1W_LoRa_915] board = esp32dev -build_flags = +build_flags = -Werror -Wall -DESP32_DIY_1W_LoRa_915 -DHAS_SX1262 -DHAS_1W_LORA -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 [env:ESP32_DIY_1W_LoRa_LLCC68] board = esp32dev -build_flags = +build_flags = -Werror -Wall -DESP32_DIY_1W_LoRa_LLCC68 -DHAS_LLCC68 @@ -312,7 +312,7 @@ lib_deps = [env:ESP32_DIY_LoRa_A7670_915] board = esp32dev -build_flags = +build_flags = -Werror -Wall -DESP32_DIY_LoRa_A7670_915 -DHAS_SX1276 @@ -329,7 +329,7 @@ lib_deps = [env:heltec_wireless_tracker] board = esp32-s3-devkitc-1 board_build.mcu = esp32s3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_WIRELESS_TRACKER -DHAS_SX1262 @@ -484,6 +484,21 @@ build_flags = -DARDUINO_USB_CDC_ON_BOOT=1 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 lib_deps = + ${common.lib_deps} + adafruit/Adafruit GFX Library @ 1.11.9 + adafruit/Adafruit SSD1306 @ 2.5.10 + +[env:QRPLabs_LightGateway_1_0] +board = esp32-s3-devkitc-1 +board_build.mcu = esp32s3 +build_flags = + -Werror -Wall + -DLIGHTGATEWAY_1_0 + -DHAS_SX1268 + -DARDUINO_USB_MODE=1 + -DARDUINO_USB_CDC_ON_BOOT=1 + -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 \ No newline at end of file diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index e02091d..b2ed725 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -40,7 +40,7 @@ ________________________________________________________________________________ #include "A7670_utils.h" #endif -String versionDate = "2024.10.21"; +String versionDate = "2024.10.25"; Configuration Config; WiFiClient espClient; #ifdef HAS_GPS diff --git a/src/boards_pinout.h b/src/boards_pinout.h index f9fe579..f93bd16 100644 --- a/src/boards_pinout.h +++ b/src/boards_pinout.h @@ -10,66 +10,66 @@ // LORA MODULES #if defined(TTGO_T_LORA32_V2_1) || defined(HELTEC_V2) || defined(ESP32_DIY_LoRa) || defined(TTGO_T_Beam_V1_2) || defined(TTGO_T_Beam_V1_0) || defined(TTGO_T_LORA32_V2_1_915) || defined(ESP32_DIY_LoRa_915) || defined(TTGO_T_Beam_V1_2_915) || defined(TTGO_T_Beam_V1_0_915) - #define RADIO_SCLK_PIN 5 // GPIO5 - SX1278 SCK - #define RADIO_MISO_PIN 19 // GPIO19 - SX1278 MISO - #define RADIO_MOSI_PIN 27 // GPIO27 - SX1278 MOSI - #define RADIO_CS_PIN 18 // GPIO18 - SX1278 CS ---> NSS - #define RADIO_RST_PIN 14 // GPIO14 - SX1278 RST - #define RADIO_BUSY_PIN 26 // GPIO26 - SX1278 IRQ ---->DIO0 + #define RADIO_SCLK_PIN 5 // GPIO5 - SX1278 SCK + #define RADIO_MISO_PIN 19 // GPIO19 - SX1278 MISO + #define RADIO_MOSI_PIN 27 // GPIO27 - SX1278 MOSI + #define RADIO_CS_PIN 18 // GPIO18 - SX1278 CS ---> NSS + #define RADIO_RST_PIN 14 // GPIO14 - SX1278 RST + #define RADIO_BUSY_PIN 26 // GPIO26 - SX1278 IRQ ---->DIO0 #endif #if defined(HELTEC_V3) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY) || defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_WS) || defined(HELTEC_WP) - #define RADIO_SCLK_PIN 9 // SX1262 SCK - #define RADIO_MISO_PIN 11 // SX1262 MISO - #define RADIO_MOSI_PIN 10 // SX1262 MOSI - #define RADIO_CS_PIN 8 // SX1262 NSS - #define RADIO_RST_PIN 12 // SX1262 RST - #define RADIO_DIO1_PIN 14 // SX1262 DIO1 - #define RADIO_BUSY_PIN 13 // SX1262 BUSY + #define RADIO_SCLK_PIN 9 // SX1262 SCK + #define RADIO_MISO_PIN 11 // SX1262 MISO + #define RADIO_MOSI_PIN 10 // SX1262 MOSI + #define RADIO_CS_PIN 8 // SX1262 NSS + #define RADIO_RST_PIN 12 // SX1262 RST + #define RADIO_DIO1_PIN 14 // SX1262 DIO1 + #define RADIO_BUSY_PIN 13 // SX1262 BUSY #endif #if defined(ESP32_DIY_1W_LoRa) || defined(ESP32_DIY_1W_LoRa_915) || defined(ESP32_DIY_1W_LoRa_LLCC68) // Ebyte E22 400M30S (SX1268) or E22 900M30S (SX1262) or E220 LLCC68 - #define RADIO_SCLK_PIN 18 - #define RADIO_MISO_PIN 19 - #define RADIO_MOSI_PIN 23 - #define RADIO_CS_PIN 5 - #define RADIO_RST_PIN 27 - #define RADIO_DIO1_PIN 12 - #define RADIO_BUSY_PIN 14 - #define RADIO_RXEN 32 - #define RADIO_TXEN 25 + #define RADIO_SCLK_PIN 18 + #define RADIO_MISO_PIN 19 + #define RADIO_MOSI_PIN 23 + #define RADIO_CS_PIN 5 + #define RADIO_RST_PIN 27 + #define RADIO_DIO1_PIN 12 + #define RADIO_BUSY_PIN 14 + #define RADIO_RXEN 32 + #define RADIO_TXEN 25 #endif #if defined(ESP32_DIY_1W_LoRa_Mesh_V1_2) // https://github.com/NanoVHF/Meshtastic-DIY/tree/main/PCB/ESP-32-devkit_EBYTE-E22/Mesh-v1.02-2LCD-FreePins - #define RADIO_SCLK_PIN 5 - #define RADIO_MISO_PIN 19 - #define RADIO_MOSI_PIN 27 - #define RADIO_CS_PIN 18 - #define RADIO_RST_PIN 23 - #define RADIO_DIO1_PIN 33 - #define RADIO_BUSY_PIN 32 - #define RADIO_RXEN 14 - #define RADIO_TXEN 13 + #define RADIO_SCLK_PIN 5 + #define RADIO_MISO_PIN 19 + #define RADIO_MOSI_PIN 27 + #define RADIO_CS_PIN 18 + #define RADIO_RST_PIN 23 + #define RADIO_DIO1_PIN 33 + #define RADIO_BUSY_PIN 32 + #define RADIO_RXEN 14 + #define RADIO_TXEN 13 #endif #ifdef WEMOS_LOLIN32_OLED_DIY_LoRa - #define RADIO_SCLK_PIN 15 - #define RADIO_MISO_PIN 13 - #define RADIO_MOSI_PIN 12 - #define RADIO_CS_PIN 14 - #define RADIO_RST_PIN 2 - #define RADIO_BUSY_PIN 25 + #define RADIO_SCLK_PIN 15 + #define RADIO_MISO_PIN 13 + #define RADIO_MOSI_PIN 12 + #define RADIO_CS_PIN 14 + #define RADIO_RST_PIN 2 + #define RADIO_BUSY_PIN 25 #endif #if defined(TTGO_T_Beam_V1_0_SX1268) || defined(TTGO_T_Beam_V1_2_SX1262) - #define RADIO_SCLK_PIN 5 - #define RADIO_MISO_PIN 19 - #define RADIO_MOSI_PIN 27 - #define RADIO_CS_PIN 18 - #define RADIO_DIO0_PIN 26 - #define RADIO_RST_PIN 23 - #define RADIO_DIO1_PIN 33 - #define RADIO_BUSY_PIN 32 + #define RADIO_SCLK_PIN 5 + #define RADIO_MISO_PIN 19 + #define RADIO_MOSI_PIN 27 + #define RADIO_CS_PIN 18 + #define RADIO_DIO0_PIN 26 + #define RADIO_RST_PIN 23 + #define RADIO_DIO1_PIN 33 + #define RADIO_BUSY_PIN 32 #endif #if defined(OE5HWN_MeshCom) @@ -85,39 +85,39 @@ #endif #if defined(HELTEC_HTCT62) - #define RADIO_SCLK_PIN 10 // SX1262 SCK - #define RADIO_MISO_PIN 6 // SX1262 MISO - #define RADIO_MOSI_PIN 7 // SX1262 MOSI - #define RADIO_CS_PIN 8 // SX1262 NSS - #define RADIO_RST_PIN 5 // SX1262 RST - #define RADIO_DIO1_PIN 3 // SX1262 DIO1 - #define RADIO_BUSY_PIN 4 // SX1262 BUSY + #define RADIO_SCLK_PIN 10 // SX1262 SCK + #define RADIO_MISO_PIN 6 // SX1262 MISO + #define RADIO_MOSI_PIN 7 // SX1262 MOSI + #define RADIO_CS_PIN 8 // SX1262 NSS + #define RADIO_RST_PIN 5 // SX1262 RST + #define RADIO_DIO1_PIN 3 // SX1262 DIO1 + #define RADIO_BUSY_PIN 4 // SX1262 BUSY #endif #if defined(ESP32_DIY_LoRa_A7670) || defined(ESP32_DIY_LoRa_A7670_915) - #define RADIO_SCLK_PIN 18 - #define RADIO_MISO_PIN 19 - #define RADIO_MOSI_PIN 23 - #define RADIO_CS_PIN 2 - #define RADIO_RST_PIN 0 - #define RADIO_BUSY_PIN 32 - #define A7670_PWR_PIN 4 - #define A7670_ResetPin 5 - #define A7670_TX_PIN 26 - #define A7670_RX_PIN 27 + #define RADIO_SCLK_PIN 18 + #define RADIO_MISO_PIN 19 + #define RADIO_MOSI_PIN 23 + #define RADIO_CS_PIN 2 + #define RADIO_RST_PIN 0 + #define RADIO_BUSY_PIN 32 + #define A7670_PWR_PIN 4 + #define A7670_ResetPin 5 + #define A7670_TX_PIN 26 + #define A7670_RX_PIN 27 #endif #ifdef WEMOS_D1_R32_RA02 - #define RADIO_SCLK_PIN 18 - #define RADIO_MISO_PIN 19 - #define RADIO_MOSI_PIN 23 - #define RADIO_CS_PIN 5 - #define RADIO_BUSY_PIN 12 - #define RADIO_RST_PIN 13 - #define RADIO_DIO1_PIN 14 - #define OLED_SDA 21 - #define OLED_SCL 22 - #define OLED_RST 36 + #define RADIO_SCLK_PIN 18 + #define RADIO_MISO_PIN 19 + #define RADIO_MOSI_PIN 23 + #define RADIO_CS_PIN 5 + #define RADIO_BUSY_PIN 12 + #define RADIO_RST_PIN 13 + #define RADIO_DIO1_PIN 14 + #define OLED_SDA 21 + #define OLED_SCL 22 + #define OLED_RST 36 #endif #if defined(ESP32C3_DIY_1W_LoRa) || defined(ESP32C3_DIY_1W_LoRa_915) @@ -133,12 +133,25 @@ #endif #ifdef WEMOS_S2_MINI_DIY_LoRa - #define RADIO_SCLK_PIN 36 - #define RADIO_MISO_PIN 37 - #define RADIO_MOSI_PIN 35 - #define RADIO_CS_PIN 34 - #define RADIO_BUSY_PIN 38 - #define RADIO_RST_PIN 33 + #define RADIO_SCLK_PIN 36 + #define RADIO_MISO_PIN 37 + #define RADIO_MOSI_PIN 35 + #define RADIO_CS_PIN 34 + #define RADIO_BUSY_PIN 38 + #define RADIO_RST_PIN 33 +#endif + +#ifdef LIGHTGATEWAY_1_0 + #define RADIO_VCC_PIN 21 + #define RADIO_SCLK_PIN 12 + #define RADIO_MISO_PIN 13 + #define RADIO_MOSI_PIN 11 + #define RADIO_CS_PIN 10 + #define RADIO_RST_PIN 9 + #define RADIO_DIO1_PIN 5 + #define RADIO_BUSY_PIN 6 + #define RADIO_RXEN 42 + #define RADIO_TXEN 14 #endif @@ -167,10 +180,17 @@ #define OLED_RST -1 #endif -#if !defined(HELTEC_HTCT62) && !defined(HELTEC_WSL_V3) && !defined(ESP32C3_DIY_1W_LoRa) && !defined(ESP32C3_DIY_1W_LoRa_915) && !defined(WEMOS_S2_MINI_DIY_LoRa) +#ifdef LIGHTGATEWAY_1_0 + #define OLED_SDA 3 + #define OLED_SCL 4 + #define OLED_RST -1 +#endif + +#if !defined(LIGHTGATEWAY_1_0) && !defined(HELTEC_HTCT62) && !defined(HELTEC_WSL_V3) && !defined(ESP32C3_DIY_1W_LoRa) && !defined(ESP32C3_DIY_1W_LoRa_915) && !defined(WEMOS_S2_MINI_DIY_LoRa) #define HAS_DISPLAY #endif + // Leds and other stuff #ifdef HELTEC_HTCT62 #define BATTERY_PIN 1 @@ -256,6 +276,13 @@ #define RADIO_BUSY_PIN 8 #endif +#ifdef LIGHTGATEWAY_1_0 + #define BUTTON_PIN 0 + #define INTERNAL_LED_PIN 16 +#endif + + +// GPS #if defined(TTGO_T_Beam_V1_2) || defined(TTGO_T_Beam_V1_2_915) || defined(TTGO_T_Beam_V1_0) || defined(TTGO_T_Beam_V1_0_915) || defined(TTGO_T_Beam_V1_0_SX1268) || defined(TTGO_T_Beam_V1_2_SX1262) #define GPS_RX 12 #define GPS_TX 34 @@ -266,6 +293,7 @@ #define GPS_TX 33 #endif + /* (Same pins for LILYGO LoRa32 and ESP32 Wroom Dev ) SX1278-------------------> ESP32 ttgo-lora32-v21 and ESP32 WROOM Dev GND GND diff --git a/src/lora_utils.cpp b/src/lora_utils.cpp index 8bbf260..4417c44 100644 --- a/src/lora_utils.cpp +++ b/src/lora_utils.cpp @@ -20,7 +20,12 @@ bool transmitFlag = true; SX1262 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN); #endif #ifdef HAS_SX1268 - SX1268 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN); + #if defined(LIGHTGATEWAY_1_0) + SPIClass loraSPI(FSPI); + SX1268 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN, loraSPI); + #else + SX1268 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN); + #endif #endif #ifdef HAS_SX1278 SX1278 radio = new Module(RADIO_CS_PIN, RADIO_BUSY_PIN, RADIO_RST_PIN); @@ -42,7 +47,13 @@ namespace LoRa_Utils { } void setup() { - SPI.begin(RADIO_SCLK_PIN, RADIO_MISO_PIN, RADIO_MOSI_PIN); + #ifdef LIGHTGATEWAY_1_0 + pinMode(RADIO_VCC_PIN,OUTPUT); + digitalWrite(RADIO_VCC_PIN,HIGH); + loraSPI.begin(RADIO_SCLK_PIN, RADIO_MISO_PIN, RADIO_MOSI_PIN, RADIO_CS_PIN); + #else + SPI.begin(RADIO_SCLK_PIN, RADIO_MISO_PIN, RADIO_MOSI_PIN); + #endif float freq = (float)Config.loramodule.rxFreq / 1000000; #if defined(RADIO_HAS_XTAL) radio.XTAL = true; @@ -70,7 +81,7 @@ namespace LoRa_Utils { radio.setCodingRate(Config.loramodule.codingRate4); radio.setCRC(true); - #if defined(RADIO_RXEN) && defined(RADIO_TXEN) + #if (defined(RADIO_RXEN) && defined(RADIO_TXEN)) || defined(LIGHTGATEWAY_1_0) // QRP Labs LightGateway has 400M22S (SX1268) radio.setRfSwitchPins(RADIO_RXEN, RADIO_TXEN); #endif