From 35e9f36ffde2e7072d2d66eb283a3b3d5a55efb4 Mon Sep 17 00:00:00 2001 From: "jacob.eva" Date: Tue, 9 Jul 2024 09:40:30 +0100 Subject: [PATCH] Add T3S3 target and different variants of the board --- Boards.h | 25 +++++++++++++++++++++---- Display.h | 4 ++-- Makefile | 7 +++++-- RNode_Firmware_CE.ino | 4 ++-- Radio.cpp | 2 +- Utilities.h | 8 ++++---- 6 files changed, 35 insertions(+), 15 deletions(-) diff --git a/Boards.h b/Boards.h index 3d0a80c..2165509 100644 --- a/Boards.h +++ b/Boards.h @@ -24,6 +24,7 @@ #define MCU_ESP32 0x81 #define MCU_NRF52 0x71 + // Boards #define BOARD_RNODE 0x31 #define BOARD_HMBRW 0x32 #define BOARD_TBEAM 0x33 @@ -36,10 +37,16 @@ #define BOARD_HELTEC32_V3 0x3A #define BOARD_RNODE_NG_20 0x40 #define BOARD_RNODE_NG_21 0x41 - #define BOARD_RNODE_NG_22 0x42 + #define BOARD_T3S3 0x42 #define BOARD_GENERIC_NRF52 0x50 #define BOARD_RAK4631 0x51 + // Variants + #define BOARD_T3S3_SX1262 0x01 + #define BOARD_T3S3_SX1280 0x02 + #define BOARD_T3S3_SX1280_PA 0x03 + + // Displays #define OLED 0x01 #define EINK_BW 0x02 #define EINK_3C 0x03 @@ -545,7 +552,7 @@ } }; - #elif BOARD_MODEL == BOARD_RNODE_NG_22 + #elif BOARD_MODEL == BOARD_T3S3 #define IS_ESP32S3 true #define HAS_DISPLAY true @@ -585,7 +592,7 @@ #endif #endif - + #if BOARD_VARIANT == BOARD_T3S3_SX1262 const uint8_t interfaces[INTERFACE_COUNT] = {SX1262}; const bool interface_cfg[INTERFACE_COUNT][3] = { // SX1262 @@ -595,6 +602,17 @@ true // DIO2_AS_RF_SWITCH }, }; + #elif BOARD_VARIANT == BOARD_T3S3_SX1280_PA + const uint8_t interfaces[INTERFACE_COUNT] = {SX1280}; + const bool interface_cfg[INTERFACE_COUNT][3] = { + // SX1262 + { + false, // DEFAULT_SPI + false, // HAS_TCXO + false // DIO2_AS_RF_SWITCH + }, + }; + #endif const uint8_t interface_pins[INTERFACE_COUNT][10] = { // SX1262 { @@ -610,7 +628,6 @@ -1 // pin_tcxo_enable } }; - #else #error An unsupported ESP32 board was selected. Cannot compile RNode firmware. #endif diff --git a/Display.h b/Display.h index cd1a59e..86f5055 100644 --- a/Display.h +++ b/Display.h @@ -68,7 +68,7 @@ void busyCallback(const void* p) { #define DISP_RST -1 #define DISP_ADDR 0x3C #endif -#elif BOARD_MODEL == BOARD_RNODE_NG_22 +#elif BOARD_MODEL == BOARD_T3S3 #if DISPLAY == OLED #define DISP_RST 21 #define DISP_ADDR 0x3C @@ -200,7 +200,7 @@ bool display_init() { digitalWrite(pin_display_en, LOW); delay(50); digitalWrite(pin_display_en, HIGH); - #elif BOARD_MODEL == BOARD_RNODE_NG_22 + #elif BOARD_MODEL == BOARD_T3S3 Wire.begin(SDA_OLED, SCL_OLED); #elif BOARD_MODEL == BOARD_HELTEC32_V2 Wire.begin(SDA_OLED, SCL_OLED); diff --git a/Makefile b/Makefile index 37b74ba..5cd0180 100644 --- a/Makefile +++ b/Makefile @@ -71,8 +71,11 @@ firmware-tbeam: firmware-tbeam_sx126x: arduino-cli compile --fqbn esp32:esp32:t-beam -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x33\" \"-DMODEM=0x03\"" -firmware-t3s3: - arduino-cli compile --fqbn "esp32:esp32:esp32s3:CDCOnBoot=cdc" -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x42\"" +firmware-t3s3_sx1262: + arduino-cli compile --fqbn "esp32:esp32:esp32s3:CDCOnBoot=cdc" -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x42\" \"-DBOARD_VARIANT=0x01\"" + +firmware-t3s3_sx1280_pa: + arduino-cli compile --fqbn "esp32:esp32:esp32s3:CDCOnBoot=cdc" -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x42\" \"-DBOARD_VARIANT=0x03\"" firmware-lora32_v10: arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x39\"" diff --git a/RNode_Firmware_CE.ino b/RNode_Firmware_CE.ino index 5686ac7..18f9e1d 100644 --- a/RNode_Firmware_CE.ino +++ b/RNode_Firmware_CE.ino @@ -87,7 +87,7 @@ void setup() { Serial.begin(serial_baudrate); - #if BOARD_MODEL != BOARD_RAK4631 && BOARD_MODEL != BOARD_RNODE_NG_22 + #if BOARD_MODEL != BOARD_RAK4631 && BOARD_MODEL != BOARD_T3S3 // Some boards need to wait until the hardware UART is set up before booting // the full firmware. In the case of the RAK4631, the line below will wait // until a serial connection is actually established with a master. Thus, it @@ -1283,7 +1283,7 @@ void process_serial() { void sleep_now() { #if HAS_SLEEP == true - #if BOARD_MODEL == BOARD_RNODE_NG_22 + #if BOARD_MODEL == BOARD_T3S3 display_intensity = 0; update_display(true); #endif diff --git a/Radio.cpp b/Radio.cpp index 33b46a9..f1edfad 100644 --- a/Radio.cpp +++ b/Radio.cpp @@ -735,7 +735,7 @@ void sx126x::enableTCXO() { uint8_t buf[4] = {MODE_TCXO_3_3V_6X, 0x00, 0x00, 0xFF}; #elif BOARD_MODEL == BOARD_TBEAM uint8_t buf[4] = {MODE_TCXO_1_8V_6X, 0x00, 0x00, 0xFF}; - #elif BOARD_MODEL == BOARD_RNODE_NG_22 + #elif BOARD_MODEL == BOARD_T3S3 uint8_t buf[4] = {MODE_TCXO_1_8V_6X, 0x00, 0x00, 0xFF}; #else uint8_t buf[4] = {0}; diff --git a/Utilities.h b/Utilities.h index bd55d4a..407fb18 100644 --- a/Utilities.h +++ b/Utilities.h @@ -65,9 +65,9 @@ uint8_t eeprom_read(uint32_t mapped_addr); #if BOARD_MODEL == BOARD_HELTEC32_V3 //https://github.com/espressif/esp-idf/issues/8855 #include "hal/wdt_hal.h" - #elif BOARD_MODEL == BOARD_RNODE_NG_22 + #elif BOARD_MODEL == BOARD_T3S3 #include "hal/wdt_hal.h" - #else BOARD_MODEL != BOARD_RNODE_NG_22 + #else BOARD_MODEL != BOARD_T3S3 #include "soc/rtc_wdt.h" #endif #define ISR_VECT IRAM_ATTR @@ -137,7 +137,7 @@ uint8_t boot_vector = 0x00; void led_rx_off() { digitalWrite(pin_led_rx, LOW); } void led_tx_on() { digitalWrite(pin_led_tx, HIGH); } void led_tx_off() { digitalWrite(pin_led_tx, LOW); } - #elif BOARD_MODEL == BOARD_RNODE_NG_22 + #elif BOARD_MODEL == BOARD_T3S3 void led_rx_on() { digitalWrite(pin_led_rx, HIGH); } void led_rx_off() { digitalWrite(pin_led_rx, LOW); } void led_tx_on() { digitalWrite(pin_led_tx, HIGH); } @@ -1332,7 +1332,7 @@ bool eeprom_model_valid() { if (model == MODEL_A3 || model == MODEL_A8) { #elif BOARD_MODEL == BOARD_RNODE_NG_21 if (model == MODEL_A2 || model == MODEL_A7) { - #elif BOARD_MODEL == BOARD_RNODE_NG_22 + #elif BOARD_MODEL == BOARD_T3S3 if (model == MODEL_A1 || model == MODEL_A6) { #elif BOARD_MODEL == BOARD_HMBRW if (model == MODEL_FF || model == MODEL_FE) {