From 3b629c0cb3d67df75bc8fd8a9f2926d380c5774f Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 12 Jul 2023 11:33:33 -0500 Subject: [PATCH 1/3] Use DIO2 bridged to TXEN and remove TX/RXEN pin switching altogether --- variants/diy/v1/variant.h | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/variants/diy/v1/variant.h b/variants/diy/v1/variant.h index a1083f9bb9..73a34b8d6c 100644 --- a/variants/diy/v1/variant.h +++ b/variants/diy/v1/variant.h @@ -29,28 +29,23 @@ #define RF95_NSS 18 // supported modules list -#define USE_RF95 // RFM95/SX127x +//#define USE_RF95 // RFM95/SX127x #define USE_SX1262 -#define USE_SX1268 -#define USE_LLCC68 +//#define USE_SX1268 +//#define USE_LLCC68 // common pinouts for SX126X modules #define SX126X_CS 18 // NSS for SX126X #define SX126X_DIO1 LORA_DIO1 #define SX126X_BUSY LORA_DIO2 #define SX126X_RESET LORA_RESET -#define SX126X_RXEN RADIOLIB_NC // Defining the RXEN ruins RFSwitching for the E22 900M30S in RadioLib -#define SX126X_TXEN 13 +//#define SX126X_RXEN RADIOLIB_NC // Defining the RXEN ruins RFSwitching for the E22 900M30S in RadioLib +//#define SX126X_TXEN 13 // RX/TX for RFM95/SX127x -#define RF95_RXEN 14 -#define RF95_TXEN 13 +//#define RF95_RXEN 14 +//#define RF95_TXEN 13 // Set lora.tx_power to 13 for Hydra or other E22 900M30S target due to PA -#define SX126X_MAX_POWER 22 - -#ifdef EBYTE_E22 -// Internally the TTGO module hooks the SX126x-DIO2 in to control the TX/RX switch -// (which is the default for the sx1262interface code) -#define SX126X_E22 -#endif \ No newline at end of file +#define SX126X_MAX_POWER 13 +#define SX126X_E22 \ No newline at end of file From 49c5b2e96ea82f42f0c86fedb6069c95ecb3f63d Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Tue, 18 Jul 2023 06:34:43 -0500 Subject: [PATCH 2/3] Add Hydra specific target to limit tx power and define GPS EN --- .github/workflows/main_matrix.yml | 1 + .vscode/settings.json | 9 +++++-- variants/diy/hydra/variant.h | 41 +++++++++++++++++++++++++++++++ variants/diy/platformio.ini | 12 +++++++++ variants/diy/v1/variant.h | 23 ++++++++++------- 5 files changed, 75 insertions(+), 11 deletions(-) create mode 100644 variants/diy/hydra/variant.h diff --git a/.github/workflows/main_matrix.yml b/.github/workflows/main_matrix.yml index 6500eb03dc..c062348e82 100644 --- a/.github/workflows/main_matrix.yml +++ b/.github/workflows/main_matrix.yml @@ -66,6 +66,7 @@ jobs: - board: heltec-v2_1 - board: tbeam0_7 - board: meshtastic-diy-v1 + - board: hydra - board: meshtastic-dr-dev - board: nano-g1 - board: station-g1 diff --git a/.vscode/settings.json b/.vscode/settings.json index 3b489975b8..fffa2bacc0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,9 @@ { - "editor.formatOnSave": true, - "editor.defaultFormatter": "trunk.io" + "editor.formatOnSave": false, + "editor.defaultFormatter": "trunk.io", + "files.associations": { + "ios": "cpp", + "*.tpp": "cpp", + "*.ipp": "cpp" + } } diff --git a/variants/diy/hydra/variant.h b/variants/diy/hydra/variant.h new file mode 100644 index 0000000000..93928a212e --- /dev/null +++ b/variants/diy/hydra/variant.h @@ -0,0 +1,41 @@ +// For OLED LCD +#define I2C_SDA 21 +#define I2C_SCL 22 + +// GPS +#undef GPS_RX_PIN +#undef GPS_TX_PIN +#define GPS_RX_PIN 12 +#define GPS_TX_PIN 15 +#define GPS_UBLOX +#define PIN_GPS_EN 4 + +#define BUTTON_PIN 39 // The middle button GPIO on the T-Beam +#define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage +#define ADC_CHANNEL ADC1_GPIO35_CHANNEL +#define ADC_MULTIPLIER 1.85 // (R1 = 470k, R2 = 680k) +#define EXT_PWR_DETECT 4 // Pin to detect connected external power source for LILYGO® TTGO T-Energy T18 and other DIY boards +#define EXT_NOTIFY_OUT 12 // Overridden default pin to use for Ext Notify Module (#975). +#define LED_PIN 2 // add status LED (compatible with core-pcb and DIY targets) + +#define LORA_DIO0 26 // a No connect on the SX1262/SX1268 module +#define LORA_RESET 23 // RST for SX1276, and for SX1262/SX1268 +#define LORA_DIO1 33 // IRQ for SX1262/SX1268 +#define LORA_DIO2 32 // BUSY for SX1262/SX1268 +#define LORA_DIO3 // Not connected on PCB, but internally on the TTGO SX1262/SX1268, if DIO3 is high the TXCO is enabled + +#define RF95_SCK 5 +#define RF95_MISO 19 +#define RF95_MOSI 27 +#define RF95_NSS 18 + +#define USE_SX1262 + +#define SX126X_CS 18 // NSS for SX126X +#define SX126X_DIO1 LORA_DIO1 +#define SX126X_BUSY LORA_DIO2 +#define SX126X_RESET LORA_RESET + +// Set lora.tx_power to 13 for Hydra or other E22 900M30S target due to PA +#define SX126X_MAX_POWER 13 +#define SX126X_E22 \ No newline at end of file diff --git a/variants/diy/platformio.ini b/variants/diy/platformio.ini index 612035717a..cb031f266e 100644 --- a/variants/diy/platformio.ini +++ b/variants/diy/platformio.ini @@ -34,3 +34,15 @@ build_flags = -D DR_DEV -D EBYTE_E22 -I variants/diy/dr-dev + +; Hydra - Meshtastic DIY v1 hardware with some specific changes +[env:hydra] +extends = esp32_base +board = esp32doit-devkit-v1 +board_level = extra +build_flags = + ${esp32_base.build_flags} + -D DIY_V1 + -D EBYTE_E22 + -D GPS_POWER_TOGGLE + -I variants/diy/hydra diff --git a/variants/diy/v1/variant.h b/variants/diy/v1/variant.h index 73a34b8d6c..a1083f9bb9 100644 --- a/variants/diy/v1/variant.h +++ b/variants/diy/v1/variant.h @@ -29,23 +29,28 @@ #define RF95_NSS 18 // supported modules list -//#define USE_RF95 // RFM95/SX127x +#define USE_RF95 // RFM95/SX127x #define USE_SX1262 -//#define USE_SX1268 -//#define USE_LLCC68 +#define USE_SX1268 +#define USE_LLCC68 // common pinouts for SX126X modules #define SX126X_CS 18 // NSS for SX126X #define SX126X_DIO1 LORA_DIO1 #define SX126X_BUSY LORA_DIO2 #define SX126X_RESET LORA_RESET -//#define SX126X_RXEN RADIOLIB_NC // Defining the RXEN ruins RFSwitching for the E22 900M30S in RadioLib -//#define SX126X_TXEN 13 +#define SX126X_RXEN RADIOLIB_NC // Defining the RXEN ruins RFSwitching for the E22 900M30S in RadioLib +#define SX126X_TXEN 13 // RX/TX for RFM95/SX127x -//#define RF95_RXEN 14 -//#define RF95_TXEN 13 +#define RF95_RXEN 14 +#define RF95_TXEN 13 // Set lora.tx_power to 13 for Hydra or other E22 900M30S target due to PA -#define SX126X_MAX_POWER 13 -#define SX126X_E22 \ No newline at end of file +#define SX126X_MAX_POWER 22 + +#ifdef EBYTE_E22 +// Internally the TTGO module hooks the SX126x-DIO2 in to control the TX/RX switch +// (which is the default for the sx1262interface code) +#define SX126X_E22 +#endif \ No newline at end of file From d775729e2b1b8b172b50ec2a61f2fb904113df47 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Tue, 18 Jul 2023 06:36:39 -0500 Subject: [PATCH 3/3] Whoops --- .vscode/settings.json | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index fffa2bacc0..3b489975b8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,9 +1,4 @@ { - "editor.formatOnSave": false, - "editor.defaultFormatter": "trunk.io", - "files.associations": { - "ios": "cpp", - "*.tpp": "cpp", - "*.ipp": "cpp" - } + "editor.formatOnSave": true, + "editor.defaultFormatter": "trunk.io" }