diff --git a/bin/build-all.sh b/bin/build-all.sh index 922fd4b7d..1cf83c62f 100755 --- a/bin/build-all.sh +++ b/bin/build-all.sh @@ -5,7 +5,7 @@ set -e VERSION=`bin/buildinfo.py long` SHORT_VERSION=`bin/buildinfo.py short` -BOARDS_ESP32="tlora-v2 tlora-v1 tlora_v1_3 tlora-v2-1-1.6 tbeam heltec-v2.0 heltec-v2.1 tbeam0.7 meshtastic-diy-v1" +BOARDS_ESP32="tlora-v2 tlora-v1 tlora_v1_3 tlora-v2-1-1.6 tbeam heltec-v1 heltec-v2.0 heltec-v2.1 tbeam0.7 meshtastic-diy-v1" #BOARDS_ESP32=tbeam # FIXME note nrf52840dk build is for some reason only generating a BIN file but not a HEX file nrf52840dk-geeksville is fine diff --git a/platformio.ini b/platformio.ini index 1d35ddeb9..9c301ea33 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,6 +12,7 @@ default_envs = tbeam ;default_envs = tbeam0.7 ;default_envs = heltec-v2.0 +;default_envs = heltec-v1 ;default_envs = tlora-v1 ;default_envs = tlora_v1_3 ;default_envs = tlora-v2 @@ -158,6 +159,13 @@ board = ttgo-t-beam build_flags = ${esp32_base.build_flags} -D 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 + [env:heltec-v2.0] ;build_type = debug ; to make it possible to step through our jtag debugger extends = esp32_base diff --git a/src/configuration.h b/src/configuration.h index f2fc060d6..89fa106ff 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -324,6 +324,41 @@ along with this program. If not, see . #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 diff --git a/src/mesh/generated/mesh.pb.h b/src/mesh/generated/mesh.pb.h index 27e7d53cd..c5c980a35 100644 --- a/src/mesh/generated/mesh.pb.h +++ b/src/mesh/generated/mesh.pb.h @@ -23,6 +23,7 @@ typedef enum _HardwareModel { HardwareModel_TLORA_V1_1p3 = 8, HardwareModel_RAK4631 = 9, HardwareModel_HELTEC_V2_1 = 10, + HardwareModel_HELTEC_V1 = 11, HardwareModel_LORA_RELAY_V1 = 32, HardwareModel_NRF52840DK = 33, HardwareModel_PPR = 34, diff --git a/src/sleep.cpp b/src/sleep.cpp index 558dbf1d4..998645dcd 100644 --- a/src/sleep.cpp +++ b/src/sleep.cpp @@ -65,7 +65,11 @@ void setCPUFast(bool on) return; } - setCpuFrequencyMhz(on ? 240 : 80); + // The Heltec LORA32 V1 runs at 26 MHz base frequency and doesn't react well to switching to 80 MHz... + #ifndef ARDUINO_HELTEC_WIFI_LORA_32 + setCpuFrequencyMhz(on ? 240 : 80); + #endif + #endif }