From 54df153e9e23190e0b1201ab3c3689560a3b3acb Mon Sep 17 00:00:00 2001 From: todd-herbert Date: Sat, 20 Jul 2024 23:46:26 +1200 Subject: [PATCH] Wait for I2C power to stabilize on Heltec VME213; tidy variant folder (#4308) * Tidy variant.h and pins_arduino.h (VME213) * Wait for peripherals to stabilize after enabling I2C power The 3.3V power for the I2C "quick link" connector is from Ve_3V3 --- src/main.cpp | 7 ++++ .../heltec_vision_master_e213/pins_arduino.h | 6 ++-- variants/heltec_vision_master_e213/variant.h | 34 ++++++++----------- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 95eeb998d..187942344 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -308,6 +308,13 @@ void setup() digitalWrite(RESET_OLED, 1); #endif +#ifdef PERIPHERAL_WARMUP_MS + // Some peripherals may require additional time to stabilize after power is connected + // e.g. I2C on Heltec Vision Master + LOG_INFO("Waiting for peripherals to stabilize\n"); + delay(PERIPHERAL_WARMUP_MS); +#endif + #ifdef BUTTON_PIN #ifdef ARCH_ESP32 diff --git a/variants/heltec_vision_master_e213/pins_arduino.h b/variants/heltec_vision_master_e213/pins_arduino.h index 359922499..ce35348fd 100644 --- a/variants/heltec_vision_master_e213/pins_arduino.h +++ b/variants/heltec_vision_master_e213/pins_arduino.h @@ -3,8 +3,8 @@ #include -static const uint8_t LED_BUILTIN = 35; -#define BUILTIN_LED LED_BUILTIN // backward compatibility +static const uint8_t LED_BUILTIN = -1; // Board has no built-in LED, despite what schematic shows +#define BUILTIN_LED LED_BUILTIN // backward compatibility #define LED_BUILTIN LED_BUILTIN static const uint8_t TX = 43; @@ -56,6 +56,6 @@ static const uint8_t T14 = 14; static const uint8_t RST_LoRa = 12; static const uint8_t BUSY_LoRa = 13; -static const uint8_t DIO0 = 14; +static const uint8_t DIO1 = 14; #endif /* Pins_Arduino_h */ diff --git a/variants/heltec_vision_master_e213/variant.h b/variants/heltec_vision_master_e213/variant.h index d4e42ad1c..99bc1d138 100644 --- a/variants/heltec_vision_master_e213/variant.h +++ b/variants/heltec_vision_master_e213/variant.h @@ -1,14 +1,11 @@ -// #define LED_PIN 18 +#define BUTTON_PIN 0 -// Enable bus for external periherals +// I2C #define I2C_SDA SDA #define I2C_SCL SCL +// Display (E-Ink) #define USE_EINK - -/* - * eink display pins - */ #define PIN_EINK_CS 5 #define PIN_EINK_BUSY 1 #define PIN_EINK_DC 2 @@ -16,33 +13,30 @@ #define PIN_EINK_SCLK 4 #define PIN_EINK_MOSI 6 -/* - * SPI interfaces - */ +// SPI #define SPI_INTERFACES_COUNT 2 +#define PIN_SPI_MISO 10 // MISO +#define PIN_SPI_MOSI 11 // MOSI +#define PIN_SPI_SCK 9 // SCK -#define PIN_SPI_MISO 10 // MISO P0.17 -#define PIN_SPI_MOSI 11 // MOSI P0.15 -#define PIN_SPI_SCK 9 // SCK P0.13 - -#define VEXT_ENABLE 18 // powers the oled display and the lora antenna boost -#define VEXT_ON_VALUE 1 -#define BUTTON_PIN 0 - +// Power +#define VEXT_ENABLE 18 // Powers the E-Ink display, and the 3.3V supply to the I2C QuickLink connector +#define PERIPHERAL_WARMUP_MS 1000 // Make sure I2C QuickLink has stable power before continuing +#define VEXT_ON_VALUE HIGH #define ADC_CTRL 46 #define ADC_CTRL_ENABLED HIGH #define BATTERY_PIN 7 #define ADC_CHANNEL ADC1_GPIO7_CHANNEL -#define ADC_MULTIPLIER 4.9 * 1.03 // Voltage divider is roughly 1:1 -#define ADC_ATTENUATION ADC_ATTEN_DB_2_5 // Voltage divider output is quite high +#define ADC_MULTIPLIER 4.9 * 1.03 +#define ADC_ATTENUATION ADC_ATTEN_DB_2_5 +// LoRa #define USE_SX1262 #define LORA_DIO0 -1 // a No connect on the SX1262 module #define LORA_RESET 12 #define LORA_DIO1 14 // SX1262 IRQ #define LORA_DIO2 13 // SX1262 BUSY -#define LORA_DIO3 // Not connected on PCB, but internally on the TTGO SX1262, if DIO3 is high the TXCO is enabled #define LORA_SCK 9 #define LORA_MISO 11