From 163d4364004e6a726306422473d02a1ce7f80d7d Mon Sep 17 00:00:00 2001 From: Linar Yusupov Date: Thu, 27 Jun 2024 06:21:07 +0300 Subject: [PATCH] [ESP32-C6] ADC feature for LilyGO T3C6 --- software/firmware/source/SoftRF/src/driver/GNSS.cpp | 4 +++- .../firmware/source/SoftRF/src/platform/ESP32.cpp | 12 ++++++++++-- software/firmware/source/SoftRF/src/platform/ESP32.h | 7 ++++++- .../source/SoftRF/src/platform/iomap/LilyGO_T3C6.h | 9 +++++---- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/software/firmware/source/SoftRF/src/driver/GNSS.cpp b/software/firmware/source/SoftRF/src/driver/GNSS.cpp index 9b9aed1df..931ce2174 100644 --- a/software/firmware/source/SoftRF/src/driver/GNSS.cpp +++ b/software/firmware/source/SoftRF/src/driver/GNSS.cpp @@ -1166,7 +1166,9 @@ byte GNSS_setup() { hw_info.model == SOFTRF_MODEL_ES || hw_info.model == SOFTRF_MODEL_BALKAN || hw_info.model == SOFTRF_MODEL_HAM || - hw_info.model == SOFTRF_MODEL_MIDI) + hw_info.model == SOFTRF_MODEL_MIDI || + hw_info.model == SOFTRF_MODEL_ECO || + hw_info.model == SOFTRF_MODEL_INK) { // power on by wakeup call Serial_GNSS_Out.write((uint8_t) 0); GNSS_FLUSH(); delay(500); diff --git a/software/firmware/source/SoftRF/src/platform/ESP32.cpp b/software/firmware/source/SoftRF/src/platform/ESP32.cpp index bad2f1470..911d1928e 100644 --- a/software/firmware/source/SoftRF/src/platform/ESP32.cpp +++ b/software/firmware/source/SoftRF/src/platform/ESP32.cpp @@ -1423,7 +1423,9 @@ static void ESP32_setup() lmic_pins.busy = SOC_GPIO_PIN_T3C6_BUSY; lmic_pins.txe = SOC_GPIO_PIN_T3C6_ANT_TX; lmic_pins.rxe = SOC_GPIO_PIN_T3C6_ANT_RX; - +#if defined(USE_RADIOLIB) + lmic_pins.dio[0] = SOC_GPIO_PIN_T3C6_DIO1; +#endif /* USE_RADIOLIB */ #endif /* CONFIG_IDF_TARGET_ESP32C6 */ } @@ -4120,7 +4122,11 @@ static void ESP32_Battery_setup() /* TBD */ #endif /* ESP_IDF_VERSION_MAJOR */ #elif defined(CONFIG_IDF_TARGET_ESP32C6) - calibrate_voltage(SOC_GPIO_PIN_C6_BATTERY); + if (esp32_board == ESP32_LILYGO_T3C6) { + calibrate_voltage(SOC_GPIO_PIN_T3C6_BATTERY); + } else { + calibrate_voltage(SOC_GPIO_PIN_C6_BATTERY); + } #elif defined(CONFIG_IDF_TARGET_ESP32H2) /* TBD */ #else @@ -4142,6 +4148,7 @@ static float ESP32_Battery_param(uint8_t param) hw_info.model == SOFTRF_MODEL_PRIME_MK3 || /* TBD */ hw_info.model == SOFTRF_MODEL_HAM || /* TBD */ hw_info.model == SOFTRF_MODEL_MIDI || /* TBD */ + hw_info.model == SOFTRF_MODEL_ECO || /* TBD */ hw_info.model == SOFTRF_MODEL_INK || /* TTGO T3 V2.1.6 */ (hw_info.model == SOFTRF_MODEL_STANDALONE && hw_info.revision == 16) ? @@ -4155,6 +4162,7 @@ static float ESP32_Battery_param(uint8_t param) hw_info.model == SOFTRF_MODEL_PRIME_MK3 || /* TBD */ hw_info.model == SOFTRF_MODEL_HAM || /* TBD */ hw_info.model == SOFTRF_MODEL_MIDI || /* TBD */ + hw_info.model == SOFTRF_MODEL_ECO || /* TBD */ hw_info.model == SOFTRF_MODEL_INK || /* TTGO T3 V2.1.6 */ (hw_info.model == SOFTRF_MODEL_STANDALONE && hw_info.revision == 16) ? diff --git a/software/firmware/source/SoftRF/src/platform/ESP32.h b/software/firmware/source/SoftRF/src/platform/ESP32.h index bfbd0c277..19c8e9963 100644 --- a/software/firmware/source/SoftRF/src/platform/ESP32.h +++ b/software/firmware/source/SoftRF/src/platform/ESP32.h @@ -154,6 +154,8 @@ extern Adafruit_NeoPixel strip; #define SOC_GPIO_PIN_STATUS (hw_info.model == SOFTRF_MODEL_MIDI ?\ SOC_GPIO_PIN_HELTRK_LED : \ + hw_info.model == SOFTRF_MODEL_ECO ?\ + SOC_GPIO_PIN_T3C6_LED : \ hw_info.model != SOFTRF_MODEL_PRIME_MK2 ?\ SOC_UNUSED_PIN : \ (hw_info.revision == 2 ? \ @@ -172,7 +174,9 @@ extern Adafruit_NeoPixel strip; SOC_UNUSED_PIN) : \ (hw_info.model == SOFTRF_MODEL_MIDI ? \ SOC_GPIO_PIN_HELTRK_GNSS_PPS : \ - SOC_UNUSED_PIN))) + (hw_info.model == SOFTRF_MODEL_ECO ? \ + SOC_GPIO_PIN_T3C6_GNSS_PPS : \ + SOC_UNUSED_PIN)))) #define SOC_GPIO_PIN_BUZZER (hw_info.model == SOFTRF_MODEL_PRIME_MK2 ? \ SOC_UNUSED_PIN : \ @@ -428,6 +432,7 @@ extern const USB_Device_List_t supported_USB_devices[]; #define EXCLUDE_TEST_MODE #define EXCLUDE_WATCHOUT_MODE #undef USE_NMEALIB +#undef USE_BLE_MIDI #undef ENABLE_PROL //#define USE_NIMBLE #endif /* C2 || C6 || H2 */ diff --git a/software/firmware/source/SoftRF/src/platform/iomap/LilyGO_T3C6.h b/software/firmware/source/SoftRF/src/platform/iomap/LilyGO_T3C6.h index df83f4f37..a330acc72 100644 --- a/software/firmware/source/SoftRF/src/platform/iomap/LilyGO_T3C6.h +++ b/software/firmware/source/SoftRF/src/platform/iomap/LilyGO_T3C6.h @@ -33,7 +33,8 @@ // status LED #define SOC_GPIO_PIN_T3C6_LED 7 -// NRF905 (NC) -#define SOC_GPIO_PIN_T3C6_TXE 2 /* TBD */ -#define SOC_GPIO_PIN_T3C6_CE 3 /* TBD */ -#define SOC_GPIO_PIN_T3C6_PWR 10 /* TBD */ +// battery voltage (ADC) +#define SOC_GPIO_PIN_T3C6_BATTERY 2 /* NC */ + +// spare (LED ring, button or buzzer) +#define SOC_GPIO_PIN_T3C6_NC1 3