From 4e3fda87a11082b7f778cb64cf20d44d5cdb5239 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Tue, 18 Jan 2022 18:35:42 -0600 Subject: [PATCH] Initial configuration.h -> variants refactor (#1104) * Initial configuration to variants refactor --- platformio.ini | 57 +-- src/DebugConfiguration.h | 61 ++++ src/RF95Configuration.h | 7 + src/configuration.h | 403 +-------------------- src/main.cpp | 3 - src/mesh/RadioLibInterface.h | 4 - variants/WisCore_RAK4600_Board/variant.cpp | 77 ---- variants/WisCore_RAK4600_Board/variant.h | 126 ------- variants/genieblocks/variant.h | 26 ++ variants/heltec_v1/variant.h | 29 ++ variants/heltec_v2/variant.h | 41 +++ variants/meshtastic_diy_v1/variant.h | 43 +++ variants/portduino/variant.h | 26 ++ variants/tbeam/variant.h | 37 ++ variants/tbeam_v07/variant.h | 20 + variants/tlora_v1/variant.h | 21 ++ variants/tlora_v1_3/variant.h | 22 ++ variants/tlora_v2/variant.h | 24 ++ variants/tlora_v2_1_16/variant.h | 23 ++ 19 files changed, 414 insertions(+), 636 deletions(-) create mode 100644 src/DebugConfiguration.h create mode 100644 src/RF95Configuration.h delete mode 100644 variants/WisCore_RAK4600_Board/variant.cpp delete mode 100644 variants/WisCore_RAK4600_Board/variant.h create mode 100644 variants/genieblocks/variant.h create mode 100644 variants/heltec_v1/variant.h create mode 100644 variants/heltec_v2/variant.h create mode 100644 variants/meshtastic_diy_v1/variant.h create mode 100644 variants/portduino/variant.h create mode 100644 variants/tbeam/variant.h create mode 100644 variants/tbeam_v07/variant.h create mode 100644 variants/tlora_v1/variant.h create mode 100644 variants/tlora_v1_3/variant.h create mode 100644 variants/tlora_v2/variant.h create mode 100644 variants/tlora_v2_1_16/variant.h diff --git a/platformio.ini b/platformio.ini index d8596b24..a364e584 100644 --- a/platformio.ini +++ b/platformio.ini @@ -83,7 +83,7 @@ lib_deps = https://github.com/geeksville/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3 PubSubClient -; Common settings for conventional (non Portduino) Ardino targets +; Common settings for conventional (non Portduino) Arduino targets [arduino_base] framework = arduino @@ -157,7 +157,7 @@ board = ttgo-t-beam lib_deps = ${esp32_base.lib_deps} build_flags = - ${esp32_base.build_flags} -D TBEAM_V10 + ${esp32_base.build_flags} -D TBEAM_V10 -I variants/tbeam ; The original TBEAM board without the AXP power chip and a few other changes ; Note: I've heard reports this didn't work. Disabled until someone with a 0.7 can test and debug. @@ -165,53 +165,53 @@ build_flags = extends = esp32_base board = ttgo-t-beam build_flags = - ${esp32_base.build_flags} -D TBEAM_V07 + ${esp32_base.build_flags} -D TBEAM_V07 -I variants/tbeam_v07 [env:heltec-v1] ;build_type = debug ; to make it possible to step through our jtag debugger extends = esp32_base board = heltec_wifi_lora_32 build_flags = - ${esp32_base.build_flags} -D HELTEC_V1 + ${esp32_base.build_flags} -D HELTEC_V1 -I variants/heltec_v1 [env:heltec-v2.0] ;build_type = debug ; to make it possible to step through our jtag debugger extends = esp32_base board = heltec_wifi_lora_32_V2 build_flags = - ${esp32_base.build_flags} -D HELTEC_V2_0 + ${esp32_base.build_flags} -D HELTEC_V2_0 -I variants/heltec_v2 [env:heltec-v2.1] ;build_type = debug ; to make it possible to step through our jtag debugger extends = esp32_base board = heltec_wifi_lora_32_V2 build_flags = - ${esp32_base.build_flags} -D HELTEC_V2_1 + ${esp32_base.build_flags} -D HELTEC_V2_1 -I variants/heltec_v2 [env:tlora-v1] extends = esp32_base board = ttgo-lora32-v1 build_flags = - ${esp32_base.build_flags} -D TLORA_V1 + ${esp32_base.build_flags} -D TLORA_V1 -I variants/tlora_v1 ; note: the platformio definition for lora32-v2 seems stale, it is missing a pins_arduino.h file, therefore I don't think it works [env:tlora_v1_3] extends = esp32_base board = ttgo-lora32-v1 build_flags = - ${esp32_base.build_flags} -D TLORA_V1_3 + ${esp32_base.build_flags} -D TLORA_V1_3 -I variants/tlora_v1_3 [env:tlora-v2] extends = esp32_base board = ttgo-lora32-v1 build_flags = - ${esp32_base.build_flags} -D TLORA_V2 + ${esp32_base.build_flags} -D TLORA_V2 -I variants/tlora_v2 [env:tlora-v2-1-1.6] extends = esp32_base board = ttgo-lora32-v1 build_flags = - ${esp32_base.build_flags} -D TLORA_V2_1_16 + ${esp32_base.build_flags} -D TLORA_V2_1_16 -I variants/tlora_v2_1_16 ; Meshtastic DIY v1 by Nano VHF Schematic based on ESP32-WROOM-32 (38 pins) devkit & EBYTE E22 SX1262/SX1268 module [env:meshtastic-diy-v1] @@ -221,6 +221,7 @@ build_flags = ${esp32_base.build_flags} -D DIY_V1 -D EBYTE_E22 + -I variants/meshtastic_diy_v1 ; The Heltec Cubecell plus ; IMPORTANT NOTE: This target doesn't yet work and probably won't ever work. I'm keeping it around for now. @@ -365,18 +366,6 @@ debug_tool = jlink ; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm) ;upload_protocol = jlink -; Note, this board is not yet supported! It will not work without futher development. -; THIS IS UNTESTED (I don't have this board), but other developers can use it as a starting point -[env:rak4600] -extends = nrf52_base -board = wiscore_rak4600 -# add our variants files to the include and src paths -# define build flags for the TFT_eSPI library -build_flags = ${nrf52_base.build_flags} -Ivariants/WisCore_RAK4600_Board -src_filter = ${nrf52_base.src_filter} +<../variants/WisCore_RAK4600_Board> -lib_deps = - ${arduino_base.lib_deps} - ; The PPR board [env:ppr] extends = nrf52_base @@ -475,8 +464,15 @@ lib_deps = ; The Portduino based sim environment on top of any host OS, all hardware will be simulated [env:native] platform = https://github.com/geeksville/platform-native.git -src_filter = ${env.src_filter} - - - - - -build_flags = ${arduino_base.build_flags} -O0 +src_filter = + ${env.src_filter} + - + - + - + - + - + +<../variants/portduino> +build_flags = ${arduino_base.build_flags} -O0 -I variants/portduino framework = arduino board = cross_platform lib_deps = @@ -486,8 +482,15 @@ lib_deps = ; The Portduino based sim environment on top of a linux OS and touching linux hardware devices [env:linux] platform = https://github.com/geeksville/platform-native.git -src_filter = ${env.src_filter} - - - - - -build_flags = ${arduino_base.build_flags} -O0 -lgpiod +src_filter = + ${env.src_filter} + - + - + - + - + - + +<../variants/portduino> +build_flags = ${arduino_base.build_flags} -O0 -lgpiod -I variants/portduino framework = arduino board = linux_hardware lib_deps = @@ -500,4 +503,4 @@ lib_deps = ;extends = esp32_base ;board = genieblocks_lora ;build_flags = -; ${esp32_base.build_flags} -D GENIEBLOCKS +; ${esp32_base.build_flags} -D GENIEBLOCKS -Ivariants/genieblocks diff --git a/src/DebugConfiguration.h b/src/DebugConfiguration.h new file mode 100644 index 00000000..4397dfe0 --- /dev/null +++ b/src/DebugConfiguration.h @@ -0,0 +1,61 @@ +// DEBUG LED +#ifndef LED_INVERTED +#define LED_INVERTED 0 // define as 1 if LED is active low (on) +#endif + +// ----------------------------------------------------------------------------- +// DEBUG +// ----------------------------------------------------------------------------- + +#ifdef CONSOLE_MAX_BAUD +#define SERIAL_BAUD CONSOLE_MAX_BAUD +#else +#define SERIAL_BAUD 921600 // Serial debug baud rate +#endif + +#include "SerialConsole.h" + +#define DEBUG_PORT (*console) // Serial debug port + +// What platforms should use SEGGER? +#ifdef NRF52_SERIES + +// Always include the SEGGER code on NRF52 - because useful for debugging +#include "SEGGER_RTT.h" + +// The channel we send stdout data to +#define SEGGER_STDOUT_CH 0 + +// Debug printing to segger console +#define SEGGER_MSG(...) SEGGER_RTT_printf(SEGGER_STDOUT_CH, __VA_ARGS__) + +// If we are not on a NRF52840 (which has built in USB-ACM serial support) and we don't have serial pins hooked up, then we MUST +// use SEGGER for debug output +#if !defined(PIN_SERIAL_RX) && !defined(NRF52840_XXAA) +// No serial ports on this board - ONLY use segger in memory console +#define USE_SEGGER +#endif + +#else +#define SERIAL0_RX_GPIO 3 // Always GPIO3 on ESP32 +#endif + +#ifdef USE_SEGGER +#define DEBUG_MSG(...) SEGGER_RTT_printf(0, __VA_ARGS__) +#else +#ifdef DEBUG_PORT +#define DEBUG_MSG(...) DEBUG_PORT.logDebug(__VA_ARGS__) +#else +#define DEBUG_MSG(...) +#endif +#endif + +// ----------------------------------------------------------------------------- +// AXP192 (Rev1-specific options) +// ----------------------------------------------------------------------------- + +#define GPS_POWER_CTRL_CH 3 +#define LORA_POWER_CTRL_CH 2 + +// Default Bluetooth PIN +#define defaultBLEPin 123456 diff --git a/src/RF95Configuration.h b/src/RF95Configuration.h new file mode 100644 index 00000000..f304aadd --- /dev/null +++ b/src/RF95Configuration.h @@ -0,0 +1,7 @@ +// TODO refactor this out with better radio configuration system +#ifdef USE_RF95 +#define RF95_RESET LORA_RESET +#define RF95_IRQ LORA_DIO0 // on SX1262 version this is a no connect DIO0 +#define RF95_DIO1 LORA_DIO1 // Note: not really used for RF95 +#define RF95_DIO2 LORA_DIO2 // Note: not really used for RF95 +#endif \ No newline at end of file diff --git a/src/configuration.h b/src/configuration.h index 7a482151..6f289ef2 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -45,10 +45,6 @@ along with this program. If not, see . // If we are using the JTAG port for debugging, some pins must be left free for that (and things like GPS have to be disabled) // we don't support jtag on the ttgo - access to gpio 12 is a PITA -#ifdef ARDUINO_HELTEC_WIFI_LORA_32_V2 -//#define USE_JTAG -#endif - #define REQUIRE_RADIO true // If true, we will fail to start if the radio is not found /// Convert a preprocessor name into a quoted string @@ -88,18 +84,6 @@ along with this program. If not, see . #define BUTTON_PIN_TOUCH PIN_BUTTON_TOUCH #endif -// FIXME, use variant.h defs for all of this!!! (even on the ESP32 targets) -#elif defined(CubeCell_BoardPlus) - -// -// Standard definitions for CubeCell targets -// - -#define NO_ESP32 // Don't use ESP32 libs (mainly bluetooth) - -#define LED_PIN -1 // FIXME totally bogus -#define BUTTON_PIN -1 - #else // @@ -169,338 +153,51 @@ along with this program. If not, see . // This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_TBEAM -// #define BUTTON_NEED_PULLUP // if set we need to turn on the internal CPU pullup during sleep - -#define I2C_SDA 21 -#define I2C_SCL 22 - -#define BUTTON_PIN 38 // The middle button GPIO on the T-Beam -//#define BUTTON_PIN_ALT 13 // Alternate GPIO for an external button if needed. Does anyone use this? It is not documented anywhere. -#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Plugin. - -#define LED_INVERTED 1 -#define LED_PIN 4 // Newer tbeams (1.1) have an extra led on GPIO4 - -// TTGO uses a common pinout for their SX1262 vs RF95 modules - both can be enabled and we will probe at runtime for RF95 and if -// not found then probe for SX1262 -#define USE_RF95 -#define USE_SX1262 - -#define LORA_DIO0 26 // a No connect on the SX1262 module -#define LORA_RESET 23 -#define LORA_DIO1 33 // SX1262 IRQ -#define LORA_DIO2 32 // SX1262 BUSY -#define LORA_DIO3 // Not connected on PCB, but internally on the TTGO SX1262, if DIO3 is high the TXCO is enabled - -#ifdef USE_SX1262 -#define SX126X_CS RF95_NSS // FIXME - we really should define LORA_CS instead -#define SX126X_DIO1 LORA_DIO1 -#define SX126X_BUSY LORA_DIO2 -#define SX126X_RESET LORA_RESET -#define SX126X_E22 // Not really an E22 but TTGO seems to be trying to clone that -// Internally the TTGO module hooks the SX1262-DIO2 in to control the TX/RX switch (which is the default for the sx1262interface -// code) -#endif - -// Leave undefined to disable our PMU IRQ handler. DO NOT ENABLE THIS because the pmuirq can cause sperious interrupts -// and waking from light sleep -// #define PMU_IRQ 35 -#define AXP192_SLAVE_ADDRESS 0x34 - #elif defined(TBEAM_V07) // This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_TBEAM0p7 -// #define BUTTON_NEED_PULLUP // if set we need to turn on the internal CPU pullup during sleep - -#define I2C_SDA 21 -#define I2C_SCL 22 - -#define BUTTON_PIN 39 -#define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage -#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Plugin. - -#define USE_RF95 -#define LORA_DIO0 26 // a No connect on the SX1262 module -#define LORA_RESET 23 -#define LORA_DIO1 33 // Not really used -#define LORA_DIO2 32 // Not really used - -// This board has different GPS pins than all other boards -#undef GPS_RX_PIN -#undef GPS_TX_PIN -#define GPS_RX_PIN 12 -#define GPS_TX_PIN 15 - #elif defined(DIY_V1) // This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_DIY_V1 -// For OLED LCD -#define I2C_SDA 21 -#define I2C_SCL 22 - -// GPS -#undef GPS_RX_PIN -#define GPS_RX_PIN 15 -//#undef GPS_TX_PIN -//#define GPS_TX_PIN 12 // not connected - -#define BUTTON_PIN 39 // The middle button GPIO on the T-Beam -#define EXT_NOTIFY_OUT 12 // Overridden default pin to use for Ext Notify Plugin (#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 - -// supported modules list -#define USE_SX1262 -#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 14 -#define SX126X_TXEN 13 - -#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 - #elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V2) -// the default ESP32 Pin of 15 is the Oled SCL, set to 36 and 37 and works fine. -// Tested on Neo6m module. -#undef GPS_RX_PIN -#undef GPS_TX_PIN -#define GPS_RX_PIN 36 -#define GPS_TX_PIN 37 - -#ifndef USE_JTAG // gpio15 is TDO for JTAG, so no I2C on this board while doing jtag -#define I2C_SDA 4 // I2C pins for this board -#define I2C_SCL 15 -#endif - -#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller - -#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost -#define LED_PIN 25 // If defined we will blink this LED -#define BUTTON_PIN 0 // If defined, this will be used for user button presses - -#define USE_RF95 -#define LORA_DIO0 26 // a No connect on the SX1262 module -#ifndef USE_JTAG -#define LORA_RESET 14 -#endif -#define LORA_DIO1 35 // Not really used -#define LORA_DIO2 34 // Not really used - -// ratio of voltage divider = 3.20 (R1=100k, R2=220k) -#define ADC_MULTIPLIER 3.2 - #ifdef HELTEC_V2_0 // This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_HELTEC_V2_0 -#define BATTERY_PIN 13 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage - #endif #ifdef HELTEC_V2_1 // This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_HELTEC_V2_1 -#define BATTERY_PIN 37 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage -#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Plugin. - #endif #elif defined(ARDUINO_HELTEC_WIFI_LORA_32) -// the default ESP32 Pin of 15 is the Oled SCL, set to 36 and 37 and works fine. -// Tested on Neo6m module. -#undef GPS_RX_PIN -#undef GPS_TX_PIN -#define GPS_RX_PIN 36 -#define GPS_TX_PIN 37 - -#ifndef USE_JTAG // gpio15 is TDO for JTAG, so no I2C on this board while doing jtag -#define I2C_SDA 4 // I2C pins for this board -#define I2C_SCL 15 -#endif - -#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller - -#define LED_PIN 25 // If defined we will blink this LED -#define BUTTON_PIN 0 // If defined, this will be used for user button presses - -#define USE_RF95 -#define LORA_DIO0 26 // a No connect on the SX1262 module -#ifndef USE_JTAG -#define LORA_RESET 14 -#endif -#define LORA_DIO1 33 // Not really used -#define LORA_DIO2 32 // Not really used - -// ratio of voltage divider = 3.20 (R1=100k, R2=220k) -#define ADC_MULTIPLIER 3.2 - -// This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_HELTEC_V1 -#define BATTERY_PIN 13 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage - #elif defined(TLORA_V1) -// This string must exactly match the case used in release file names or the android updater won't work + #define HW_VENDOR HardwareModel_TLORA_V1 -#undef GPS_RX_PIN -#undef GPS_TX_PIN -#define GPS_RX_PIN 36 -#define GPS_TX_PIN 37 - -#define I2C_SDA 4 // I2C pins for this board -#define I2C_SCL 15 - -#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller - -// #define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost -#define LED_PIN 2 // If defined we will blink this LED -#define BUTTON_PIN 0 // If defined, this will be used for user button presses -#define BUTTON_NEED_PULLUP -#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Plugin. - -#define USE_RF95 -#define LORA_DIO0 26 // a No connect on the SX1262 module -#define LORA_RESET 14 -#define LORA_DIO1 35 // Not really used -#define LORA_DIO2 34 // Not really used #elif defined(TLORA_V2) // This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_TLORA_V2 -#undef GPS_RX_PIN -#undef GPS_TX_PIN -#define GPS_RX_PIN 36 -#define GPS_TX_PIN 13 // per @eugene - -#define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage - -#define I2C_SDA 21 // I2C pins for this board -#define I2C_SCL 22 - -#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller - -#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost -#define LED_PIN 25 // If defined we will blink this LED -#define BUTTON_PIN \ - 0 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one - // between this pin and ground -#define BUTTON_NEED_PULLUP - -#define USE_RF95 -#define LORA_DIO0 26 // a No connect on the SX1262 module -#define LORA_RESET 14 -#define LORA_DIO1 35 // Not really used -#define LORA_DIO2 34 // Not really used - #elif defined(TLORA_V1_3) // This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_TLORA_V1_1p3 -#undef GPS_RX_PIN -#undef GPS_TX_PIN -#define GPS_RX_PIN 36 -#define GPS_TX_PIN 13 // per @eugene - -#define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage - -#define I2C_SDA 21 // I2C pins for this board -#define I2C_SCL 22 - -#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller - -#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost -#define LED_PIN 25 // If defined we will blink this LED -#define BUTTON_PIN 36 -#define BUTTON_NEED_PULLUP - -#define USE_RF95 -#define LORA_DIO0 26 // a No connect on the SX1262 module -#define LORA_RESET 14 -#define LORA_DIO1 35 // Not really used -#define LORA_DIO2 34 // Not really used - #elif defined(TLORA_V2_1_16) // This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_TLORA_V2_1_1p6 -#undef GPS_RX_PIN -#undef GPS_TX_PIN -#define GPS_RX_PIN 15 // per @der_bear on the forum, 36 is incorrect for this board type and 15 is a better pick -#define GPS_TX_PIN 13 - -#define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage - -#define I2C_SDA 21 // I2C pins for this board -#define I2C_SCL 22 - -#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller - -#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost -#define LED_PIN 25 // If defined we will blink this LED -#define BUTTON_PIN 12 // If defined, this will be used for user button presses, - -#define BUTTON_NEED_PULLUP - -#define USE_RF95 -#define LORA_DIO0 26 // a No connect on the SX1262 module -#define LORA_RESET 14 -#define LORA_DIO1 35 // Not really used -#define LORA_DIO2 34 // Not really used - #elif defined(GENIEBLOCKS) // This string must exactly match the case used in release file names or the android updater won't work #define HW_VENDOR HardwareModel_GENIEBLOCKS -#undef GPS_RX_PIN -#undef GPS_TX_PIN -#define GPS_RX_PIN 5 -#define GPS_TX_PIN 18 -#define GPS_RESET_N 10 -#define GPS_EXTINT 23 // On MAX-M8 module pin name is EXTINT. On L70 module pin name is STANDBY. - -#define BATTERY_PIN 39 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage -#define BATTERY_EN_PIN 14 // Voltage voltage divider enable pin connected to mosfet - -#define I2C_SDA 4 // I2C pins for this board -#define I2C_SCL 2 - -#define LED_PIN 12 // If defined we will blink this LED -//#define BUTTON_PIN 36 // If defined, this will be used for user button presses (ToDo problem on that line on debug screen --> -// Long press start!) #define BUTTON_NEED_PULLUP //GPIOs 34 to 39 are GPIs – input only pins. These pins don’t have internal -// pull-ups or pull-down resistors. - -#define USE_RF95 -#define LORA_DIO0 38 // a No connect on the SX1262 module -#define LORA_RESET 9 - -#define RF95_SCK 22 -#define RF95_MISO 19 -#define RF95_MOSI 13 -#define RF95_NSS 21 #endif @@ -533,100 +230,8 @@ along with this program. If not, see . #define HW_VENDOR HardwareModel_PORTDUINO -#define USE_SIM_RADIO - -// Pine64 uses a common pinout for their SX1262 vs RF95 modules - both can be enabled and we will probe at runtime for RF95 and if -// not found then probe for SX1262. Currently the RF95 code is disabled because I think the RF95 module won't need to ship. -// #define USE_RF95 -#define USE_SX1262 - -// Fake SPI device selections -#define RF95_SCK 5 -#define RF95_MISO 19 -#define RF95_MOSI 27 -#define RF95_NSS RADIOLIB_NC // the ch341f spi controller does CS for us - -#define LORA_DIO0 26 // a No connect on the SX1262 module -#define LORA_RESET 14 -#define LORA_DIO1 33 // SX1262 IRQ, called DIO0 on pinelora schematic, pin 7 on ch341f "ack" - FIXME, enable hwints in linux -#define LORA_DIO2 32 // SX1262 BUSY, actually connected to "DIO5" on pinelora schematic, pin 8 on ch341f "slct" -#define LORA_DIO3 // Not connected on PCB, but internally on the TTGO SX1262, if DIO3 is high the TXCO is enabled - -#ifdef USE_SX1262 -#define SX126X_CS 20 // CS0 on pinelora schematic, hooked to gpio D0 on ch341f -#define SX126X_DIO1 LORA_DIO1 -#define SX126X_BUSY LORA_DIO2 -#define SX126X_RESET LORA_RESET -// HOPE RFM90 does not have a TCXO therefore not SX126X_E22 #endif -#endif - -// DEBUG LED -#ifndef LED_INVERTED -#define LED_INVERTED 0 // define as 1 if LED is active low (on) -#endif - -#ifdef USE_RF95 -#define RF95_RESET LORA_RESET -#define RF95_IRQ LORA_DIO0 // on SX1262 version this is a no connect DIO0 -#define RF95_DIO1 LORA_DIO1 // Note: not really used for RF95 -#define RF95_DIO2 LORA_DIO2 // Note: not really used for RF95 -#endif - -// ----------------------------------------------------------------------------- -// DEBUG -// ----------------------------------------------------------------------------- - -#ifdef CONSOLE_MAX_BAUD -#define SERIAL_BAUD CONSOLE_MAX_BAUD -#else -#define SERIAL_BAUD 921600 // Serial debug baud rate -#endif - -#include "SerialConsole.h" - -#define DEBUG_PORT (*console) // Serial debug port - -// What platforms should use SEGGER? -#ifdef NRF52_SERIES - -// Always include the SEGGER code on NRF52 - because useful for debugging -#include "SEGGER_RTT.h" - -// The channel we send stdout data to -#define SEGGER_STDOUT_CH 0 - -// Debug printing to segger console -#define SEGGER_MSG(...) SEGGER_RTT_printf(SEGGER_STDOUT_CH, __VA_ARGS__) - -// If we are not on a NRF52840 (which has built in USB-ACM serial support) and we don't have serial pins hooked up, then we MUST -// use SEGGER for debug output -#if !defined(PIN_SERIAL_RX) && !defined(NRF52840_XXAA) -// No serial ports on this board - ONLY use segger in memory console -#define USE_SEGGER -#endif - -#else -#define SERIAL0_RX_GPIO 3 // Always GPIO3 on ESP32 -#endif - -#ifdef USE_SEGGER -#define DEBUG_MSG(...) SEGGER_RTT_printf(0, __VA_ARGS__) -#else -#ifdef DEBUG_PORT -#define DEBUG_MSG(...) DEBUG_PORT.logDebug(__VA_ARGS__) -#else -#define DEBUG_MSG(...) -#endif -#endif - -// ----------------------------------------------------------------------------- -// AXP192 (Rev1-specific options) -// ----------------------------------------------------------------------------- - -#define GPS_POWER_CTRL_CH 3 -#define LORA_POWER_CTRL_CH 2 - -// Default Bluetooth PIN -#define defaultBLEPin 123456 +#include "variant.h" +#include "RF95Configuration.h" +#include "DebugConfiguration.h" \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 09253657..031dba8a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -42,9 +42,6 @@ #include "SX1268Interface.h" #include "LLCC68Interface.h" -#ifdef NRF52_SERIES -#include "variant.h" -#endif using namespace concurrency; diff --git a/src/mesh/RadioLibInterface.h b/src/mesh/RadioLibInterface.h index de350552..8fe2e2b8 100644 --- a/src/mesh/RadioLibInterface.h +++ b/src/mesh/RadioLibInterface.h @@ -4,10 +4,6 @@ #include "RadioInterface.h" #include "MeshPacketQueue.h" -#ifdef CubeCell_BoardPlus -#define RADIOLIB_SOFTWARE_SERIAL_UNSUPPORTED -#endif - #define RADIOLIB_EXCLUDE_HTTP #include diff --git a/variants/WisCore_RAK4600_Board/variant.cpp b/variants/WisCore_RAK4600_Board/variant.cpp deleted file mode 100644 index f6d55f7d..00000000 --- a/variants/WisCore_RAK4600_Board/variant.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright (c) 2014-2015 Arduino LLC. All right reserved. - Copyright (c) 2016 Sandeep Mistry All right reserved. - Copyright (c) 2018, Adafruit Industries (adafruit.com) - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Lesser General Public License for more details. - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "variant.h" - -#include "wiring_constants.h" -#include "wiring_digital.h" -#include "nrf.h" - -const uint32_t g_ADigitalPinMap[] = { - // D0 - D7 - 0, // xtal 1 - 1, // xtal 2 - 2, // a0 - 3, // a1 - 4, // a2 - 5, // a3 - 6, // TXD - 7, // GPIO #7 - - // D8 - D13 - 8, // RXD - - 9, // NFC1 - 10, // NFC2 - - 11, // GPIO11 - - 12, // SCK - 13, // MOSI - 14, // MISO - - 15, // GPIO #15 - 16, // GPIO #16 - - // function set pins - 17, // LED #1 (red) - 18, // SWO - 19, // LED #2 (blue) - 20, // DFU - 21, // Reset - 22, // Factory Reset - 23, // N/A - 24, // N/A - - 25, // SDA - 26, // SCL - 27, // GPIO #27 - 28, // A4 - 29, // A5 - 30, // A6 - 31, // A7 -}; - -void initVariant() -{ - // LED1 & LED2 - pinMode(PIN_LED1, OUTPUT); - ledOff(PIN_LED1); - - pinMode(PIN_LED2, OUTPUT); - ledOff(PIN_LED2); -} \ No newline at end of file diff --git a/variants/WisCore_RAK4600_Board/variant.h b/variants/WisCore_RAK4600_Board/variant.h deleted file mode 100644 index 4eff0008..00000000 --- a/variants/WisCore_RAK4600_Board/variant.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - Copyright (c) 2014-2015 Arduino LLC. All right reserved. - Copyright (c) 2016 Sandeep Mistry All right reserved. - Copyright (c) 2018, Adafruit Industries (adafruit.com) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Lesser General Public License for more details. - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef _VARIANT_RAK4600_ -#define _VARIANT_RAK4600_ - -#define RAK4600 - -/** Master clock frequency */ -#define VARIANT_MCK (64000000ul) - -#define USE_LFXO // Board uses 32khz crystal for LF -// define USE_LFRC // Board uses RC for LF - -/*---------------------------------------------------------------------------- - * Headers - *----------------------------------------------------------------------------*/ - -#include "WVariant.h" - -#ifdef __cplusplus -extern "C" -{ -#endif // __cplusplus - -// Number of pins defined in PinDescription array -#define PINS_COUNT (32u) -#define NUM_DIGITAL_PINS (32u) -#define NUM_ANALOG_INPUTS (8u) -#define NUM_ANALOG_OUTPUTS (0u) - -// LEDs -#define PIN_LED1 (17) -#define PIN_LED2 (19) - -#define LED_BUILTIN PIN_LED1 -#define LED_CONN PIN_LED2 - -#define LED_RED PIN_LED1 -#define LED_BLUE PIN_LED2 - -#define LED_STATE_ON 1 // State when LED is litted - -/* - * Analog pins - */ -#define PIN_A0 (2) -#define PIN_A1 (3) -#define PIN_A2 (4) -#define PIN_A3 (5) -#define PIN_A4 (28) -#define PIN_A5 (29) -#define PIN_A6 (30) -#define PIN_A7 (31) - - static const uint8_t A0 = PIN_A0; - static const uint8_t A1 = PIN_A1; - static const uint8_t A2 = PIN_A2; - static const uint8_t A3 = PIN_A3; - static const uint8_t A4 = PIN_A4; - static const uint8_t A5 = PIN_A5; - static const uint8_t A6 = PIN_A6; - static const uint8_t A7 = PIN_A7; -#define ADC_RESOLUTION 14 - -// Other pins -#define PIN_AREF (24) -#define PIN_VBAT PIN_A7 -#define PIN_NFC1 (9) -#define PIN_NFC2 (10) - - static const uint8_t AREF = PIN_AREF; - -/* - * Serial interfaces - */ -// Serial -#define PIN_SERIAL_RX (22) -#define PIN_SERIAL_TX (23) - -/* - * SPI Interfaces - */ -#define SPI_INTERFACES_COUNT 1 - -#define PIN_SPI_MISO (6) -#define PIN_SPI_MOSI (5) -#define PIN_SPI_SCK (7) - - static const uint8_t SS = 4; - static const uint8_t MOSI = PIN_SPI_MOSI; - static const uint8_t MISO = PIN_SPI_MISO; - static const uint8_t SCK = PIN_SPI_SCK; - -/* - * Wire Interfaces - */ -#define WIRE_INTERFACES_COUNT 1 - -#define PIN_WIRE_SDA (13u) -#define PIN_WIRE_SCL (12u) - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- - * Arduino objects - C++ only - *----------------------------------------------------------------------------*/ - -#endif \ No newline at end of file diff --git a/variants/genieblocks/variant.h b/variants/genieblocks/variant.h new file mode 100644 index 00000000..0e51e3a9 --- /dev/null +++ b/variants/genieblocks/variant.h @@ -0,0 +1,26 @@ +#undef GPS_RX_PIN +#undef GPS_TX_PIN +#define GPS_RX_PIN 5 +#define GPS_TX_PIN 18 +#define GPS_RESET_N 10 +#define GPS_EXTINT 23 // On MAX-M8 module pin name is EXTINT. On L70 module pin name is STANDBY. + +#define BATTERY_PIN 39 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage +#define BATTERY_EN_PIN 14 // Voltage voltage divider enable pin connected to mosfet + +#define I2C_SDA 4 // I2C pins for this board +#define I2C_SCL 2 + +#define LED_PIN 12 // If defined we will blink this LED +//#define BUTTON_PIN 36 // If defined, this will be used for user button presses (ToDo problem on that line on debug screen --> +// Long press start!) #define BUTTON_NEED_PULLUP //GPIOs 34 to 39 are GPIs – input only pins. These pins don’t have internal +// pull-ups or pull-down resistors. + +#define USE_RF95 +#define LORA_DIO0 38 // a No connect on the SX1262 module +#define LORA_RESET 9 + +#define RF95_SCK 22 +#define RF95_MISO 19 +#define RF95_MOSI 13 +#define RF95_NSS 21 \ No newline at end of file diff --git a/variants/heltec_v1/variant.h b/variants/heltec_v1/variant.h new file mode 100644 index 00000000..25cb1407 --- /dev/null +++ b/variants/heltec_v1/variant.h @@ -0,0 +1,29 @@ +// the default ESP32 Pin of 15 is the Oled SCL, set to 36 and 37 and works fine. +// Tested on Neo6m module. +#undef GPS_RX_PIN +#undef GPS_TX_PIN +#define GPS_RX_PIN 36 +#define GPS_TX_PIN 37 + +#ifndef USE_JTAG // gpio15 is TDO for JTAG, so no I2C on this board while doing jtag +#define I2C_SDA 4 // I2C pins for this board +#define I2C_SCL 15 +#endif + +#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller + +#define LED_PIN 25 // If defined we will blink this LED +#define BUTTON_PIN 0 // If defined, this will be used for user button presses + +#define USE_RF95 +#define LORA_DIO0 26 // a No connect on the SX1262 module +#ifndef USE_JTAG +#define LORA_RESET 14 +#endif +#define LORA_DIO1 33 // Not really used +#define LORA_DIO2 32 // Not really used + +// ratio of voltage divider = 3.20 (R1=100k, R2=220k) +#define ADC_MULTIPLIER 3.2 + +#define BATTERY_PIN 13 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage diff --git a/variants/heltec_v2/variant.h b/variants/heltec_v2/variant.h new file mode 100644 index 00000000..85fe79e3 --- /dev/null +++ b/variants/heltec_v2/variant.h @@ -0,0 +1,41 @@ +// the default ESP32 Pin of 15 is the Oled SCL, set to 36 and 37 and works fine. +// Tested on Neo6m module. +#undef GPS_RX_PIN +#undef GPS_TX_PIN +#define GPS_RX_PIN 36 +#define GPS_TX_PIN 37 + +#ifndef USE_JTAG // gpio15 is TDO for JTAG, so no I2C on this board while doing jtag +#define I2C_SDA 4 // I2C pins for this board +#define I2C_SCL 15 +#endif + +#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller + +#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost +#define LED_PIN 25 // If defined we will blink this LED +#define BUTTON_PIN 0 // If defined, this will be used for user button presses + +#define USE_RF95 +#define LORA_DIO0 26 // a No connect on the SX1262 module +#ifndef USE_JTAG +#define LORA_RESET 14 +#endif +#define LORA_DIO1 35 // Not really used +#define LORA_DIO2 34 // Not really used + +// ratio of voltage divider = 3.20 (R1=100k, R2=220k) +#define ADC_MULTIPLIER 3.2 + +#ifdef HELTEC_V2_0 + +#define BATTERY_PIN 13 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage + +#endif + +#ifdef HELTEC_V2_1 + +#define BATTERY_PIN 37 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage +#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Plugin. + +#endif \ No newline at end of file diff --git a/variants/meshtastic_diy_v1/variant.h b/variants/meshtastic_diy_v1/variant.h new file mode 100644 index 00000000..8dbfe0e4 --- /dev/null +++ b/variants/meshtastic_diy_v1/variant.h @@ -0,0 +1,43 @@ +// For OLED LCD +#define I2C_SDA 21 +#define I2C_SCL 22 + +// GPS +#undef GPS_RX_PIN +#define GPS_RX_PIN 15 +//#undef GPS_TX_PIN +//#define GPS_TX_PIN 12 // not connected + +#define BUTTON_PIN 39 // The middle button GPIO on the T-Beam +#define EXT_NOTIFY_OUT 12 // Overridden default pin to use for Ext Notify Plugin (#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 + +// supported modules list +#define USE_SX1262 +#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 14 +#define SX126X_TXEN 13 + +#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 diff --git a/variants/portduino/variant.h b/variants/portduino/variant.h new file mode 100644 index 00000000..18758cb0 --- /dev/null +++ b/variants/portduino/variant.h @@ -0,0 +1,26 @@ +#define USE_SIM_RADIO + +// Pine64 uses a common pinout for their SX1262 vs RF95 modules - both can be enabled and we will probe at runtime for RF95 and if +// not found then probe for SX1262. Currently the RF95 code is disabled because I think the RF95 module won't need to ship. +// #define USE_RF95 +#define USE_SX1262 + +// Fake SPI device selections +#define RF95_SCK 5 +#define RF95_MISO 19 +#define RF95_MOSI 27 +#define RF95_NSS RADIOLIB_NC // the ch341f spi controller does CS for us + +#define LORA_DIO0 26 // a No connect on the SX1262 module +#define LORA_RESET 14 +#define LORA_DIO1 33 // SX1262 IRQ, called DIO0 on pinelora schematic, pin 7 on ch341f "ack" - FIXME, enable hwints in linux +#define LORA_DIO2 32 // SX1262 BUSY, actually connected to "DIO5" on pinelora schematic, pin 8 on ch341f "slct" +#define LORA_DIO3 // Not connected on PCB, but internally on the TTGO SX1262, if DIO3 is high the TXCO is enabled + +#ifdef USE_SX1262 +#define SX126X_CS 20 // CS0 on pinelora schematic, hooked to gpio D0 on ch341f +#define SX126X_DIO1 LORA_DIO1 +#define SX126X_BUSY LORA_DIO2 +#define SX126X_RESET LORA_RESET +// HOPE RFM90 does not have a TCXO therefore not SX126X_E22 +#endif \ No newline at end of file diff --git a/variants/tbeam/variant.h b/variants/tbeam/variant.h new file mode 100644 index 00000000..fef19e78 --- /dev/null +++ b/variants/tbeam/variant.h @@ -0,0 +1,37 @@ +// #define BUTTON_NEED_PULLUP // if set we need to turn on the internal CPU pullup during sleep + +#define I2C_SDA 21 +#define I2C_SCL 22 + +#define BUTTON_PIN 38 // The middle button GPIO on the T-Beam +//#define BUTTON_PIN_ALT 13 // Alternate GPIO for an external button if needed. Does anyone use this? It is not documented anywhere. +#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Plugin. + +#define LED_INVERTED 1 +#define LED_PIN 4 // Newer tbeams (1.1) have an extra led on GPIO4 + +// TTGO uses a common pinout for their SX1262 vs RF95 modules - both can be enabled and we will probe at runtime for RF95 and if +// not found then probe for SX1262 +#define USE_RF95 +#define USE_SX1262 + +#define LORA_DIO0 26 // a No connect on the SX1262 module +#define LORA_RESET 23 +#define LORA_DIO1 33 // SX1262 IRQ +#define LORA_DIO2 32 // SX1262 BUSY +#define LORA_DIO3 // Not connected on PCB, but internally on the TTGO SX1262, if DIO3 is high the TXCO is enabled + +#ifdef USE_SX1262 +#define SX126X_CS RF95_NSS // FIXME - we really should define LORA_CS instead +#define SX126X_DIO1 LORA_DIO1 +#define SX126X_BUSY LORA_DIO2 +#define SX126X_RESET LORA_RESET +#define SX126X_E22 // Not really an E22 but TTGO seems to be trying to clone that +// Internally the TTGO module hooks the SX1262-DIO2 in to control the TX/RX switch (which is the default for the sx1262interface +// code) +#endif + +// Leave undefined to disable our PMU IRQ handler. DO NOT ENABLE THIS because the pmuirq can cause sperious interrupts +// and waking from light sleep +// #define PMU_IRQ 35 +#define AXP192_SLAVE_ADDRESS 0x34 \ No newline at end of file diff --git a/variants/tbeam_v07/variant.h b/variants/tbeam_v07/variant.h new file mode 100644 index 00000000..ff007428 --- /dev/null +++ b/variants/tbeam_v07/variant.h @@ -0,0 +1,20 @@ +// #define BUTTON_NEED_PULLUP // if set we need to turn on the internal CPU pullup during sleep + +#define I2C_SDA 21 +#define I2C_SCL 22 + +#define BUTTON_PIN 39 +#define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage +#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Plugin. + +#define USE_RF95 +#define LORA_DIO0 26 // a No connect on the SX1262 module +#define LORA_RESET 23 +#define LORA_DIO1 33 // Not really used +#define LORA_DIO2 32 // Not really used + +// This board has different GPS pins than all other boards +#undef GPS_RX_PIN +#undef GPS_TX_PIN +#define GPS_RX_PIN 12 +#define GPS_TX_PIN 15 \ No newline at end of file diff --git a/variants/tlora_v1/variant.h b/variants/tlora_v1/variant.h new file mode 100644 index 00000000..06352fbb --- /dev/null +++ b/variants/tlora_v1/variant.h @@ -0,0 +1,21 @@ +#undef GPS_RX_PIN +#undef GPS_TX_PIN +#define GPS_RX_PIN 36 +#define GPS_TX_PIN 37 + +#define I2C_SDA 4 // I2C pins for this board +#define I2C_SCL 15 + +#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller + +// #define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost +#define LED_PIN 2 // If defined we will blink this LED +#define BUTTON_PIN 0 // If defined, this will be used for user button presses +#define BUTTON_NEED_PULLUP +#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Plugin. + +#define USE_RF95 +#define LORA_DIO0 26 // a No connect on the SX1262 module +#define LORA_RESET 14 +#define LORA_DIO1 35 // Not really used +#define LORA_DIO2 34 // Not really used diff --git a/variants/tlora_v1_3/variant.h b/variants/tlora_v1_3/variant.h new file mode 100644 index 00000000..f5240d14 --- /dev/null +++ b/variants/tlora_v1_3/variant.h @@ -0,0 +1,22 @@ +#undef GPS_RX_PIN +#undef GPS_TX_PIN +#define GPS_RX_PIN 36 +#define GPS_TX_PIN 13 // per @eugene + +#define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage + +#define I2C_SDA 21 // I2C pins for this board +#define I2C_SCL 22 + +#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller + +#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost +#define LED_PIN 25 // If defined we will blink this LED +#define BUTTON_PIN 36 +#define BUTTON_NEED_PULLUP + +#define USE_RF95 +#define LORA_DIO0 26 // a No connect on the SX1262 module +#define LORA_RESET 14 +#define LORA_DIO1 35 // Not really used +#define LORA_DIO2 34 // Not really used \ No newline at end of file diff --git a/variants/tlora_v2/variant.h b/variants/tlora_v2/variant.h new file mode 100644 index 00000000..1bff09fb --- /dev/null +++ b/variants/tlora_v2/variant.h @@ -0,0 +1,24 @@ +#undef GPS_RX_PIN +#undef GPS_TX_PIN +#define GPS_RX_PIN 36 +#define GPS_TX_PIN 13 // per @eugene + +#define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage + +#define I2C_SDA 21 // I2C pins for this board +#define I2C_SCL 22 + +#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller + +#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost +#define LED_PIN 25 // If defined we will blink this LED +#define BUTTON_PIN \ + 0 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one + // between this pin and ground +#define BUTTON_NEED_PULLUP + +#define USE_RF95 +#define LORA_DIO0 26 // a No connect on the SX1262 module +#define LORA_RESET 14 +#define LORA_DIO1 35 // Not really used +#define LORA_DIO2 34 // Not really used \ No newline at end of file diff --git a/variants/tlora_v2_1_16/variant.h b/variants/tlora_v2_1_16/variant.h new file mode 100644 index 00000000..bc1bbc02 --- /dev/null +++ b/variants/tlora_v2_1_16/variant.h @@ -0,0 +1,23 @@ +#undef GPS_RX_PIN +#undef GPS_TX_PIN +#define GPS_RX_PIN 15 // per @der_bear on the forum, 36 is incorrect for this board type and 15 is a better pick +#define GPS_TX_PIN 13 + +#define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage + +#define I2C_SDA 21 // I2C pins for this board +#define I2C_SCL 22 + +#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller + +#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost +#define LED_PIN 25 // If defined we will blink this LED +#define BUTTON_PIN 12 // If defined, this will be used for user button presses, + +#define BUTTON_NEED_PULLUP + +#define USE_RF95 +#define LORA_DIO0 26 // a No connect on the SX1262 module +#define LORA_RESET 14 +#define LORA_DIO1 35 // Not really used +#define LORA_DIO2 34 // Not really used \ No newline at end of file