mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-08 14:12:05 +00:00
Add Heltec new boards. (#4226)
* Add Heltec new boards * Update variant.h disable RTC by default * Add Heltec New boards * Add Heltec new boards * Update Heltec Mesh Node definition. * Update Heltec Vision Mater E290
This commit is contained in:
parent
a3777e8f29
commit
1626667400
53
boards/heltec_mesh_node_t114.json
Normal file
53
boards/heltec_mesh_node_t114.json
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"ldscript": "nrf52840_s140_v6.ld"
|
||||||
|
},
|
||||||
|
"core": "nRF5",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"extra_flags": "-DARDUINO_NRF52840_PCA10056 -DNRF52840_XXAA",
|
||||||
|
"f_cpu": "64000000L",
|
||||||
|
"hwids": [
|
||||||
|
["0x239A", "0x4405"],
|
||||||
|
["0x239A", "0x0029"],
|
||||||
|
["0x239A", "0x002A"]
|
||||||
|
],
|
||||||
|
"usb_product": "HT-n5262",
|
||||||
|
"mcu": "nrf52840",
|
||||||
|
"variant": "heltec_mesh_node_t114",
|
||||||
|
"variants_dir": "variants",
|
||||||
|
"bsp": {
|
||||||
|
"name": "adafruit"
|
||||||
|
},
|
||||||
|
"softdevice": {
|
||||||
|
"sd_flags": "-DS140",
|
||||||
|
"sd_name": "s140",
|
||||||
|
"sd_version": "6.1.1",
|
||||||
|
"sd_fwid": "0x00B6"
|
||||||
|
},
|
||||||
|
"bootloader": {
|
||||||
|
"settings_addr": "0xFF000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"connectivity": ["bluetooth"],
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "nRF52840_xxAA",
|
||||||
|
"onboard_tools": ["jlink"],
|
||||||
|
"svd_path": "nrf52840.svd",
|
||||||
|
"openocd_target": "nrf52840-mdk-rs"
|
||||||
|
},
|
||||||
|
"frameworks": ["arduino"],
|
||||||
|
"name": "Heltec nrf (Adafruit BSP)",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 248832,
|
||||||
|
"maximum_size": 815104,
|
||||||
|
"speed": 115200,
|
||||||
|
"protocol": "nrfutil",
|
||||||
|
"protocols": ["jlink", "nrfjprog", "nrfutil", "stlink"],
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"wait_for_upload_port": true
|
||||||
|
},
|
||||||
|
"url": "FIXME",
|
||||||
|
"vendor": "Heltec"
|
||||||
|
}
|
@ -35,6 +35,10 @@ default_envs = tbeam
|
|||||||
;default_envs = radiomaster_900_bandit_nano
|
;default_envs = radiomaster_900_bandit_nano
|
||||||
;default_envs = radiomaster_900_bandit_micro
|
;default_envs = radiomaster_900_bandit_micro
|
||||||
;default_envs = heltec_capsule_sensor_v3
|
;default_envs = heltec_capsule_sensor_v3
|
||||||
|
;default_envs = heltec_vision_master_t190
|
||||||
|
;default_envs = heltec_vision_master_e213
|
||||||
|
;default_envs = heltec_vision_master_e290
|
||||||
|
;default_envs = heltec_mesh_node_t114
|
||||||
|
|
||||||
extra_configs =
|
extra_configs =
|
||||||
arch/*/*.ini
|
arch/*/*.ini
|
||||||
|
@ -233,11 +233,19 @@ class AnalogBatteryLevel : public HasBatteryLevel
|
|||||||
scaled = esp_adc_cal_raw_to_voltage(raw, adc_characs);
|
scaled = esp_adc_cal_raw_to_voltage(raw, adc_characs);
|
||||||
scaled *= operativeAdcMultiplier;
|
scaled *= operativeAdcMultiplier;
|
||||||
#else // block for all other platforms
|
#else // block for all other platforms
|
||||||
|
#ifdef ADC_CTRL // enable adc voltage divider when we need to read
|
||||||
|
pinMode(ADC_CTRL, OUTPUT);
|
||||||
|
digitalWrite(ADC_CTRL, ADC_CTRL_ENABLED);
|
||||||
|
delay(10);
|
||||||
|
#endif
|
||||||
for (uint32_t i = 0; i < BATTERY_SENSE_SAMPLES; i++) {
|
for (uint32_t i = 0; i < BATTERY_SENSE_SAMPLES; i++) {
|
||||||
raw += analogRead(BATTERY_PIN);
|
raw += analogRead(BATTERY_PIN);
|
||||||
}
|
}
|
||||||
raw = raw / BATTERY_SENSE_SAMPLES;
|
raw = raw / BATTERY_SENSE_SAMPLES;
|
||||||
scaled = operativeAdcMultiplier * ((1000 * AREF_VOLTAGE) / pow(2, BATTERY_SENSE_RESOLUTION_BITS)) * raw;
|
scaled = operativeAdcMultiplier * ((1000 * AREF_VOLTAGE) / pow(2, BATTERY_SENSE_RESOLUTION_BITS)) * raw;
|
||||||
|
#ifdef ADC_CTRL // disable adc voltage divider when we need to read
|
||||||
|
digitalWrite(ADC_CTRL, !ADC_CTRL_ENABLED);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!initial_read_done) {
|
if (!initial_read_done) {
|
||||||
|
@ -156,7 +156,7 @@ bool EInkDisplay::connect()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(HELTEC_WIRELESS_PAPER_V1_0) || defined(HELTEC_WIRELESS_PAPER)
|
#elif defined(HELTEC_WIRELESS_PAPER_V1_0) || defined(HELTEC_WIRELESS_PAPER) || defined(HELTEC_VISION_MASTER_E213) || defined(HELTEC_VISION_MASTER_E290)
|
||||||
{
|
{
|
||||||
// Start HSPI
|
// Start HSPI
|
||||||
hspi = new SPIClass(HSPI);
|
hspi = new SPIClass(HSPI);
|
||||||
|
@ -5,11 +5,6 @@
|
|||||||
#include "GxEPD2_BW.h"
|
#include "GxEPD2_BW.h"
|
||||||
#include <OLEDDisplay.h>
|
#include <OLEDDisplay.h>
|
||||||
|
|
||||||
#if defined(HELTEC_WIRELESS_PAPER_V1_0) || defined(HELTEC_WIRELESS_PAPER)
|
|
||||||
// Re-enable SPI after deep sleep: rtc_gpio_hold_dis()
|
|
||||||
#include "driver/rtc_io.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An adapter class that allows using the GxEPD2 library as if it was an OLEDDisplay implementation.
|
* An adapter class that allows using the GxEPD2 library as if it was an OLEDDisplay implementation.
|
||||||
*
|
*
|
||||||
@ -72,7 +67,7 @@ class EInkDisplay : public OLEDDisplay
|
|||||||
GxEPD2_BW<EINK_DISPLAY_MODEL, EINK_DISPLAY_MODEL::HEIGHT> *adafruitDisplay = NULL;
|
GxEPD2_BW<EINK_DISPLAY_MODEL, EINK_DISPLAY_MODEL::HEIGHT> *adafruitDisplay = NULL;
|
||||||
|
|
||||||
// If display uses HSPI
|
// If display uses HSPI
|
||||||
#if defined(HELTEC_WIRELESS_PAPER) || defined(HELTEC_WIRELESS_PAPER_V1_0)
|
#if defined(HELTEC_WIRELESS_PAPER) || defined(HELTEC_WIRELESS_PAPER_V1_0) || defined(HELTEC_VISION_MASTER_E213) || defined(HELTEC_VISION_MASTER_E290)
|
||||||
SPIClass *hspi = NULL;
|
SPIClass *hspi = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1485,6 +1485,10 @@ static void drawNodeInfo(OLEDDisplay *display, OLEDDisplayUiState *state, int16_
|
|||||||
screen->drawColumns(display, x, y, fields);
|
screen->drawColumns(display, x, y, fields);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ESP_PLATFORM) && defined(USE_ST7789)
|
||||||
|
SPIClass SPI1(HSPI);
|
||||||
|
#endif
|
||||||
|
|
||||||
Screen::Screen(ScanI2C::DeviceAddress address, meshtastic_Config_DisplayConfig_OledType screenType, OLEDDISPLAY_GEOMETRY geometry)
|
Screen::Screen(ScanI2C::DeviceAddress address, meshtastic_Config_DisplayConfig_OledType screenType, OLEDDISPLAY_GEOMETRY geometry)
|
||||||
: concurrency::OSThread("Screen"), address_found(address), model(screenType), geometry(geometry), cmdQueue(32)
|
: concurrency::OSThread("Screen"), address_found(address), model(screenType), geometry(geometry), cmdQueue(32)
|
||||||
{
|
{
|
||||||
@ -1492,6 +1496,12 @@ Screen::Screen(ScanI2C::DeviceAddress address, meshtastic_Config_DisplayConfig_O
|
|||||||
#if defined(USE_SH1106) || defined(USE_SH1107) || defined(USE_SH1107_128_64)
|
#if defined(USE_SH1106) || defined(USE_SH1107) || defined(USE_SH1107_128_64)
|
||||||
dispdev = new SH1106Wire(address.address, -1, -1, geometry,
|
dispdev = new SH1106Wire(address.address, -1, -1, geometry,
|
||||||
(address.port == ScanI2C::I2CPort::WIRE1) ? HW_I2C::I2C_TWO : HW_I2C::I2C_ONE);
|
(address.port == ScanI2C::I2CPort::WIRE1) ? HW_I2C::I2C_TWO : HW_I2C::I2C_ONE);
|
||||||
|
#elif defined(USE_ST7789)
|
||||||
|
#ifdef ESP_PLATFORM
|
||||||
|
dispdev = new ST7789Spi(&SPI1, ST7789_RESET, ST7789_RS, ST7789_NSS,GEOMETRY_RAWMODE,TFT_WIDTH,TFT_HEIGHT,ST7789_SDA,ST7789_MISO,ST7789_SCK);
|
||||||
|
#else
|
||||||
|
dispdev = new ST7789Spi(&SPI1, ST7789_RESET, ST7789_RS, ST7789_NSS,GEOMETRY_RAWMODE,TFT_WIDTH,TFT_HEIGHT);
|
||||||
|
#endif
|
||||||
#elif defined(USE_SSD1306)
|
#elif defined(USE_SSD1306)
|
||||||
dispdev = new SSD1306Wire(address.address, -1, -1, geometry,
|
dispdev = new SSD1306Wire(address.address, -1, -1, geometry,
|
||||||
(address.port == ScanI2C::I2CPort::WIRE1) ? HW_I2C::I2C_TWO : HW_I2C::I2C_ONE);
|
(address.port == ScanI2C::I2CPort::WIRE1) ? HW_I2C::I2C_TWO : HW_I2C::I2C_ONE);
|
||||||
@ -1570,7 +1580,14 @@ void Screen::handleSetOn(bool on, FrameCallback einkScreensaver)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
dispdev->displayOn();
|
dispdev->displayOn();
|
||||||
|
#ifdef USE_ST7789
|
||||||
|
#ifdef ESP_PLATFORM
|
||||||
|
analogWrite(VTFT_LEDA,BRIGHTNESS_DEFAULT);
|
||||||
|
#else
|
||||||
|
pinMode(VTFT_LEDA,OUTPUT);
|
||||||
|
digitalWrite(VTFT_LEDA,TFT_BACKLIGHT_ON);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
enabled = true;
|
enabled = true;
|
||||||
setInterval(0); // Draw ASAP
|
setInterval(0); // Draw ASAP
|
||||||
runASAP = true;
|
runASAP = true;
|
||||||
@ -1581,6 +1598,12 @@ void Screen::handleSetOn(bool on, FrameCallback einkScreensaver)
|
|||||||
#endif
|
#endif
|
||||||
LOG_INFO("Turning off screen\n");
|
LOG_INFO("Turning off screen\n");
|
||||||
dispdev->displayOff();
|
dispdev->displayOff();
|
||||||
|
|
||||||
|
#ifdef USE_ST7789
|
||||||
|
pinMode(VTFT_LEDA,OUTPUT);
|
||||||
|
digitalWrite(VTFT_LEDA,!TFT_BACKLIGHT_ON);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef T_WATCH_S3
|
#ifdef T_WATCH_S3
|
||||||
PMU->disablePowerOutput(XPOWERS_ALDO2);
|
PMU->disablePowerOutput(XPOWERS_ALDO2);
|
||||||
#endif
|
#endif
|
||||||
@ -1595,7 +1618,7 @@ void Screen::setup()
|
|||||||
// We don't set useDisplay until setup() is called, because some boards have a declaration of this object but the device
|
// We don't set useDisplay until setup() is called, because some boards have a declaration of this object but the device
|
||||||
// is never found when probing i2c and therefore we don't call setup and never want to do (invalid) accesses to this device.
|
// is never found when probing i2c and therefore we don't call setup and never want to do (invalid) accesses to this device.
|
||||||
useDisplay = true;
|
useDisplay = true;
|
||||||
|
|
||||||
#ifdef AutoOLEDWire_h
|
#ifdef AutoOLEDWire_h
|
||||||
if (isAUTOOled)
|
if (isAUTOOled)
|
||||||
static_cast<AutoOLEDWire *>(dispdev)->setDetected(model);
|
static_cast<AutoOLEDWire *>(dispdev)->setDetected(model);
|
||||||
|
@ -45,6 +45,8 @@ class Screen
|
|||||||
#include <SH1106Wire.h>
|
#include <SH1106Wire.h>
|
||||||
#elif defined(USE_SSD1306)
|
#elif defined(USE_SSD1306)
|
||||||
#include <SSD1306Wire.h>
|
#include <SSD1306Wire.h>
|
||||||
|
#elif defined(USE_ST7789)
|
||||||
|
#include <ST7789Spi.h>
|
||||||
#else
|
#else
|
||||||
// the SH1106/SSD1306 variant is auto-detected
|
// the SH1106/SSD1306 variant is auto-detected
|
||||||
#include <AutoOLEDWire.h>
|
#include <AutoOLEDWire.h>
|
||||||
|
@ -275,6 +275,9 @@ void setup()
|
|||||||
digitalWrite(VEXT_ENABLE_V05, 1); // turn on the lora antenna boost
|
digitalWrite(VEXT_ENABLE_V05, 1); // turn on the lora antenna boost
|
||||||
digitalWrite(ST7735_BL_V05, 1); // turn on display backligth
|
digitalWrite(ST7735_BL_V05, 1); // turn on display backligth
|
||||||
LOG_DEBUG("HELTEC Detect Tracker V1.1\n");
|
LOG_DEBUG("HELTEC Detect Tracker V1.1\n");
|
||||||
|
#elif defined(VEXT_ENABLE) && defined(VEXT_ON_VALUE)
|
||||||
|
pinMode(VEXT_ENABLE, OUTPUT);
|
||||||
|
digitalWrite(VEXT_ENABLE, VEXT_ON_VALUE); // turn on the display power
|
||||||
#elif defined(VEXT_ENABLE)
|
#elif defined(VEXT_ENABLE)
|
||||||
pinMode(VEXT_ENABLE, OUTPUT);
|
pinMode(VEXT_ENABLE, OUTPUT);
|
||||||
digitalWrite(VEXT_ENABLE, 0); // turn on the display power
|
digitalWrite(VEXT_ENABLE, 0); // turn on the display power
|
||||||
@ -713,7 +716,7 @@ void setup()
|
|||||||
|
|
||||||
// Don't call screen setup until after nodedb is setup (because we need
|
// Don't call screen setup until after nodedb is setup (because we need
|
||||||
// the current region name)
|
// the current region name)
|
||||||
#if defined(ST7735_CS) || defined(USE_EINK) || defined(ILI9341_DRIVER) || defined(ST7789_CS) || defined(HX8357_CS)
|
#if defined(ST7735_CS) || defined(USE_EINK) || defined(ILI9341_DRIVER) || defined(ST7789_CS) || defined(HX8357_CS) || defined(USE_ST7789)
|
||||||
screen->setup();
|
screen->setup();
|
||||||
#elif defined(ARCH_PORTDUINO)
|
#elif defined(ARCH_PORTDUINO)
|
||||||
if (screen_found.port != ScanI2C::I2CPort::NO_I2C || settingsMap[displayPanel]) {
|
if (screen_found.port != ScanI2C::I2CPort::NO_I2C || settingsMap[displayPanel]) {
|
||||||
|
@ -268,7 +268,7 @@ void NodeDB::installDefaultConfig()
|
|||||||
// FIXME: Default to bluetooth capability of platform as default
|
// FIXME: Default to bluetooth capability of platform as default
|
||||||
config.bluetooth.enabled = true;
|
config.bluetooth.enabled = true;
|
||||||
config.bluetooth.fixed_pin = defaultBLEPin;
|
config.bluetooth.fixed_pin = defaultBLEPin;
|
||||||
#if defined(ST7735_CS) || defined(USE_EINK) || defined(ILI9341_DRIVER) || defined(ST7789_CS) || defined(HX8357_CS)
|
#if defined(ST7735_CS) || defined(USE_EINK) || defined(ILI9341_DRIVER) || defined(ST7789_CS) || defined(HX8357_CS) || defined(USE_ST7789)
|
||||||
bool hasScreen = true;
|
bool hasScreen = true;
|
||||||
#elif ARCH_PORTDUINO
|
#elif ARCH_PORTDUINO
|
||||||
bool hasScreen = false;
|
bool hasScreen = false;
|
||||||
|
@ -151,6 +151,14 @@
|
|||||||
#define HW_VENDOR meshtastic_HardwareModel_RADIOMASTER_900_BANDIT_NANO
|
#define HW_VENDOR meshtastic_HardwareModel_RADIOMASTER_900_BANDIT_NANO
|
||||||
#elif defined(HELTEC_CAPSULE_SENSOR_V3)
|
#elif defined(HELTEC_CAPSULE_SENSOR_V3)
|
||||||
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_CAPSULE_SENSOR_V3
|
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_CAPSULE_SENSOR_V3
|
||||||
|
#elif defined(HELTEC_VISION_MASTER_T190)
|
||||||
|
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_VISION_MASTER_T190
|
||||||
|
#elif defined(HELTEC_VISION_MASTER_E213)
|
||||||
|
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_VISION_MASTER_E213
|
||||||
|
#elif defined(HELTEC_VISION_MASTER_E290)
|
||||||
|
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_VISION_MASTER_E290
|
||||||
|
#elif defined(HELTEC_MESH_NODE_T114)
|
||||||
|
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_MESH_NODE_T114
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
@ -257,6 +257,8 @@ void doDeepSleep(uint32_t msecToWake, bool skipPreflight = false)
|
|||||||
#elif defined(VEXT_ENABLE_V05)
|
#elif defined(VEXT_ENABLE_V05)
|
||||||
digitalWrite(VEXT_ENABLE_V05, 0); // turn off the lora amplifier power
|
digitalWrite(VEXT_ENABLE_V05, 0); // turn off the lora amplifier power
|
||||||
digitalWrite(ST7735_BL_V05, 0); // turn off the display power
|
digitalWrite(ST7735_BL_V05, 0); // turn off the display power
|
||||||
|
#elif defined(VEXT_ENABLE) && defined(VEXT_ON_VALUE)
|
||||||
|
digitalWrite(VEXT_ENABLE, !VEXT_ON_VALUE); // turn on the display power
|
||||||
#elif defined(VEXT_ENABLE)
|
#elif defined(VEXT_ENABLE)
|
||||||
digitalWrite(VEXT_ENABLE, 1); // turn off the display power
|
digitalWrite(VEXT_ENABLE, 1); // turn off the display power
|
||||||
#endif
|
#endif
|
||||||
|
15
variants/heltec_mesh_node_t114/platformio.ini
Normal file
15
variants/heltec_mesh_node_t114/platformio.ini
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
; First prototype nrf52840/sx1262 device
|
||||||
|
[env:heltec-mesh-node-t114]
|
||||||
|
extends = nrf52840_base
|
||||||
|
board = heltec_mesh_node_t114
|
||||||
|
debug_tool = jlink
|
||||||
|
|
||||||
|
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
|
||||||
|
build_flags = ${nrf52840_base.build_flags} -Ivariants/heltec_mesh_node_t114
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
|
|
||||||
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/heltec_mesh_node_t114>
|
||||||
|
lib_deps =
|
||||||
|
${nrf52840_base.lib_deps}
|
||||||
|
lewisxhe/PCF8563_Library@^1.0.1
|
||||||
|
https://github.com/Bei-Ji-Quan/st7789#b8e7e076714b670764139289d3829b0beff67edb
|
44
variants/heltec_mesh_node_t114/variant.cpp
Normal file
44
variants/heltec_mesh_node_t114/variant.cpp
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
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 "nrf.h"
|
||||||
|
#include "wiring_constants.h"
|
||||||
|
#include "wiring_digital.h"
|
||||||
|
|
||||||
|
const uint32_t g_ADigitalPinMap[] = {
|
||||||
|
// P0 - pins 0 and 1 are hardwired for xtal and should never be enabled
|
||||||
|
0xff, 0xff, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
||||||
|
|
||||||
|
// P1
|
||||||
|
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47};
|
||||||
|
|
||||||
|
void initVariant()
|
||||||
|
{
|
||||||
|
// LED1 & LED2
|
||||||
|
pinMode(PIN_LED1, OUTPUT);
|
||||||
|
ledOff(PIN_LED1);
|
||||||
|
|
||||||
|
pinMode(PIN_LED2, OUTPUT);
|
||||||
|
ledOff(PIN_LED2);
|
||||||
|
|
||||||
|
pinMode(PIN_LED3, OUTPUT);
|
||||||
|
ledOff(PIN_LED3);
|
||||||
|
}
|
209
variants/heltec_mesh_node_t114/variant.h
Normal file
209
variants/heltec_mesh_node_t114/variant.h
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
/*
|
||||||
|
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_HELTEC_NRF_
|
||||||
|
#define _VARIANT_HELTEC_NRF_
|
||||||
|
/** Master clock frequency */
|
||||||
|
#define VARIANT_MCK (64000000ul)
|
||||||
|
|
||||||
|
#define USE_LFXO // Board uses 32khz crystal for LF
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------------
|
||||||
|
* Headers
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "WVariant.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
#define HELTEC_MESH_NODE_T114
|
||||||
|
|
||||||
|
#define USE_ST7789
|
||||||
|
|
||||||
|
#define ST7789_NSS 11
|
||||||
|
#define ST7789_RS 12 // DC
|
||||||
|
#define ST7789_SDA 41 // MOSI
|
||||||
|
#define ST7789_SCK 40
|
||||||
|
#define ST7789_RESET 2
|
||||||
|
#define ST7789_MISO -1
|
||||||
|
#define ST7789_BUSY -1
|
||||||
|
#define VTFT_CTRL 3
|
||||||
|
#define VTFT_LEDA 15
|
||||||
|
// #define ST7789_BL (32+6)
|
||||||
|
#define TFT_BACKLIGHT_ON LOW
|
||||||
|
#define ST7789_SPI_HOST SPI1_HOST
|
||||||
|
// #define ST7789_BACKLIGHT_EN (32+6)
|
||||||
|
#define SPI_FREQUENCY 40000000
|
||||||
|
#define SPI_READ_FREQUENCY 16000000
|
||||||
|
#define TFT_HEIGHT 135
|
||||||
|
#define TFT_WIDTH 240
|
||||||
|
#define TFT_OFFSET_X 0
|
||||||
|
#define TFT_OFFSET_Y 0
|
||||||
|
// #define TFT_OFFSET_ROTATION 0
|
||||||
|
// #define SCREEN_ROTATE
|
||||||
|
// #define SCREEN_TRANSITION_FRAMERATE 5
|
||||||
|
|
||||||
|
|
||||||
|
// Number of pins defined in PinDescription array
|
||||||
|
#define PINS_COUNT (48)
|
||||||
|
#define NUM_DIGITAL_PINS (48)
|
||||||
|
#define NUM_ANALOG_INPUTS (1)
|
||||||
|
#define NUM_ANALOG_OUTPUTS (0)
|
||||||
|
|
||||||
|
// LEDs
|
||||||
|
#define PIN_LED1 (32 + 3) // 13 red (confirmed on 1.0 board)
|
||||||
|
// Unused(by firmware) LEDs:
|
||||||
|
#define PIN_LED2 (1 + 1) // 14 blue
|
||||||
|
#define PIN_LED3 (1 + 11) // 15 green
|
||||||
|
|
||||||
|
#define LED_RED PIN_LED3
|
||||||
|
#define LED_BLUE PIN_LED1
|
||||||
|
#define LED_GREEN PIN_LED2
|
||||||
|
|
||||||
|
#define LED_BUILTIN LED_BLUE
|
||||||
|
#define LED_CONN PIN_GREEN
|
||||||
|
|
||||||
|
#define LED_STATE_ON 0 // State when LED is lit
|
||||||
|
#define LED_INVERTED 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Buttons
|
||||||
|
*/
|
||||||
|
#define PIN_BUTTON1 (32 + 10)
|
||||||
|
//#define PIN_BUTTON2 (0 + 18) // 0.18 is labeled on the board as RESET but we configure it in the bootloader as a regular GPIO
|
||||||
|
|
||||||
|
/*
|
||||||
|
No longer populated on PCB
|
||||||
|
*/
|
||||||
|
#define PIN_SERIAL2_RX (0 + 9)
|
||||||
|
#define PIN_SERIAL2_TX (0 + 10)
|
||||||
|
// #define PIN_SERIAL2_EN (0 + 17)
|
||||||
|
|
||||||
|
/**
|
||||||
|
Wire Interfaces
|
||||||
|
*/
|
||||||
|
#define WIRE_INTERFACES_COUNT 1
|
||||||
|
|
||||||
|
#define PIN_WIRE_SDA (26)
|
||||||
|
#define PIN_WIRE_SCL (27)
|
||||||
|
|
||||||
|
|
||||||
|
// QSPI Pins
|
||||||
|
#define PIN_QSPI_SCK (32 + 14)
|
||||||
|
#define PIN_QSPI_CS (32 + 15)
|
||||||
|
#define PIN_QSPI_IO0 (32 + 12) // MOSI if using two bit interface
|
||||||
|
#define PIN_QSPI_IO1 (32 + 13) // MISO if using two bit interface
|
||||||
|
#define PIN_QSPI_IO2 (0 + 7) // WP if using two bit interface (i.e. not used)
|
||||||
|
#define PIN_QSPI_IO3 (0 + 5) // HOLD if using two bit interface (i.e. not used)
|
||||||
|
|
||||||
|
// On-board QSPI Flash
|
||||||
|
#define EXTERNAL_FLASH_DEVICES MX25R1635F
|
||||||
|
#define EXTERNAL_FLASH_USE_QSPI
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Lora radio
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define USE_SX1262
|
||||||
|
// #define USE_SX1268
|
||||||
|
#define SX126X_CS (0 + 24) // FIXME - we really should define LORA_CS instead
|
||||||
|
#define LORA_CS (0 + 24)
|
||||||
|
#define SX126X_DIO1 (0 + 20)
|
||||||
|
// Note DIO2 is attached internally to the module to an analog switch for TX/RX switching
|
||||||
|
//#define SX1262_DIO3 \
|
||||||
|
// (0 + 21) // This is used as an *output* from the sx1262 and connected internally to power the tcxo, do not drive from the main
|
||||||
|
// CPU?
|
||||||
|
#define SX126X_BUSY (0 + 17)
|
||||||
|
#define SX126X_RESET (0 + 25)
|
||||||
|
// Not really an E22 but TTGO seems to be trying to clone that
|
||||||
|
#define SX126X_DIO2_AS_RF_SWITCH
|
||||||
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
||||||
|
|
||||||
|
#define PIN_SPI1_MISO ST7789_MISO // FIXME not really needed, but for now the SPI code requires something to be defined, pick an used GPIO
|
||||||
|
#define PIN_SPI1_MOSI ST7789_SDA
|
||||||
|
#define PIN_SPI1_SCK ST7789_SCK
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GPS pins
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define GPS_L76K
|
||||||
|
|
||||||
|
#define PIN_GPS_RESET (32 + 6) // An output to reset L76K GPS. As per datasheet, low for > 100ms will reset the L76K
|
||||||
|
#define GPS_RESET_MODE LOW
|
||||||
|
#define PIN_GPS_EN (21)
|
||||||
|
#define GPS_EN_ACTIVE HIGH
|
||||||
|
#define PIN_GPS_STANDBY (32 + 2) // An output to wake GPS, low means allow sleep, high means force wake
|
||||||
|
#define PIN_GPS_PPS (32+4)
|
||||||
|
// Seems to be missing on this new board
|
||||||
|
// #define PIN_GPS_PPS (32 + 4) // Pulse per second input from the GPS
|
||||||
|
#define GPS_TX_PIN (32 + 5) // This is for bits going TOWARDS the CPU
|
||||||
|
#define GPS_RX_PIN (32 + 7) // This is for bits going TOWARDS the GPS
|
||||||
|
|
||||||
|
#define GPS_THREAD_INTERVAL 50
|
||||||
|
|
||||||
|
#define PIN_SERIAL1_RX GPS_TX_PIN
|
||||||
|
#define PIN_SERIAL1_TX GPS_RX_PIN
|
||||||
|
|
||||||
|
// PCF8563 RTC Module
|
||||||
|
#define PCF8563_RTC 0x51
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SPI Interfaces
|
||||||
|
*/
|
||||||
|
#define SPI_INTERFACES_COUNT 2
|
||||||
|
|
||||||
|
// For LORA, spi 0
|
||||||
|
#define PIN_SPI_MISO (0 + 23)
|
||||||
|
#define PIN_SPI_MOSI (0 + 22)
|
||||||
|
#define PIN_SPI_SCK (0 + 19)
|
||||||
|
|
||||||
|
//#define PIN_PWR_EN (0 + 6)
|
||||||
|
|
||||||
|
// To debug via the segger JLINK console rather than the CDC-ACM serial device
|
||||||
|
// #define USE_SEGGER
|
||||||
|
|
||||||
|
// Battery
|
||||||
|
// The battery sense is hooked to pin A0 (4)
|
||||||
|
// it is defined in the anlaolgue pin section of this file
|
||||||
|
// and has 12 bit resolution
|
||||||
|
|
||||||
|
#define ADC_CTRL 6
|
||||||
|
#define ADC_CTRL_ENABLED HIGH
|
||||||
|
#define BATTERY_PIN 4
|
||||||
|
#define ADC_RESOLUTION 14
|
||||||
|
|
||||||
|
#define BATTERY_SENSE_RESOLUTION_BITS 12
|
||||||
|
#define BATTERY_SENSE_RESOLUTION 4096.0
|
||||||
|
#undef AREF_VOLTAGE
|
||||||
|
#define AREF_VOLTAGE 3.0
|
||||||
|
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
||||||
|
#define ADC_MULTIPLIER (4.90F)
|
||||||
|
|
||||||
|
#define HAS_RTC 0
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------------
|
||||||
|
* Arduino objects - C++ only
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#endif
|
63
variants/heltec_vision_master_e213/pins_arduino.h
Normal file
63
variants/heltec_vision_master_e213/pins_arduino.h
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#ifndef Pins_Arduino_h
|
||||||
|
#define Pins_Arduino_h
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define HELTEC_VISION_MASTER_E213 true
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 35;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
|
static const uint8_t TX = 43;
|
||||||
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
static const uint8_t SDA = 41;
|
||||||
|
static const uint8_t SCL = 42;
|
||||||
|
|
||||||
|
static const uint8_t SS = 8;
|
||||||
|
static const uint8_t MOSI = 10;
|
||||||
|
static const uint8_t MISO = 11;
|
||||||
|
static const uint8_t SCK = 9;
|
||||||
|
|
||||||
|
static const uint8_t A0 = 1;
|
||||||
|
static const uint8_t A1 = 2;
|
||||||
|
static const uint8_t A2 = 3;
|
||||||
|
static const uint8_t A3 = 4;
|
||||||
|
static const uint8_t A4 = 5;
|
||||||
|
static const uint8_t A5 = 6;
|
||||||
|
static const uint8_t A6 = 7;
|
||||||
|
static const uint8_t A7 = 8;
|
||||||
|
static const uint8_t A8 = 9;
|
||||||
|
static const uint8_t A9 = 10;
|
||||||
|
static const uint8_t A10 = 11;
|
||||||
|
static const uint8_t A11 = 12;
|
||||||
|
static const uint8_t A12 = 13;
|
||||||
|
static const uint8_t A13 = 14;
|
||||||
|
static const uint8_t A14 = 15;
|
||||||
|
static const uint8_t A15 = 16;
|
||||||
|
static const uint8_t A16 = 17;
|
||||||
|
static const uint8_t A17 = 18;
|
||||||
|
static const uint8_t A18 = 19;
|
||||||
|
static const uint8_t A19 = 20;
|
||||||
|
|
||||||
|
static const uint8_t T1 = 1;
|
||||||
|
static const uint8_t T2 = 2;
|
||||||
|
static const uint8_t T3 = 3;
|
||||||
|
static const uint8_t T4 = 4;
|
||||||
|
static const uint8_t T5 = 5;
|
||||||
|
static const uint8_t T6 = 6;
|
||||||
|
static const uint8_t T7 = 7;
|
||||||
|
static const uint8_t T8 = 8;
|
||||||
|
static const uint8_t T9 = 9;
|
||||||
|
static const uint8_t T10 = 10;
|
||||||
|
static const uint8_t T11 = 11;
|
||||||
|
static const uint8_t T12 = 12;
|
||||||
|
static const uint8_t T13 = 13;
|
||||||
|
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;
|
||||||
|
|
||||||
|
#endif /* Pins_Arduino_h */
|
23
variants/heltec_vision_master_e213/platformio.ini
Normal file
23
variants/heltec_vision_master_e213/platformio.ini
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
[env:heltec-vision-master-e213]
|
||||||
|
extends = esp32s3_base
|
||||||
|
board = heltec_wifi_lora_32_V3
|
||||||
|
build_flags =
|
||||||
|
${esp32s3_base.build_flags}
|
||||||
|
-I variants/heltec_vision_master_e213
|
||||||
|
-D HELTEC_VISION_MASTER_E213
|
||||||
|
-D EINK_DISPLAY_MODEL=GxEPD2_213_FC1
|
||||||
|
-D EINK_WIDTH=250
|
||||||
|
-D EINK_HEIGHT=122
|
||||||
|
-D USE_EINK_DYNAMICDISPLAY ; Enable Dynamic EInk
|
||||||
|
-D EINK_LIMIT_FASTREFRESH=10 ; How many consecutive fast-refreshes are permitted
|
||||||
|
-D EINK_LIMIT_RATE_BACKGROUND_SEC=30 ; Minimum interval between BACKGROUND updates
|
||||||
|
-D EINK_LIMIT_RATE_RESPONSIVE_SEC=1 ; Minimum interval between RESPONSIVE updates
|
||||||
|
; -D EINK_LIMIT_GHOSTING_PX=2000 ; (Optional) How much image ghosting is tolerated
|
||||||
|
-D EINK_BACKGROUND_USES_FAST ; (Optional) Use FAST refresh for both BACKGROUND and RESPONSIVE, until a limit is reached.
|
||||||
|
-D EINK_HASQUIRK_GHOSTING ; Display model is identified as "prone to ghosting"
|
||||||
|
-D EINK_HASQUIRK_WEAKFASTREFRESH ; Pixels set with fast-refresh are easy to clear, disrupted by sunlight
|
||||||
|
lib_deps =
|
||||||
|
${esp32s3_base.lib_deps}
|
||||||
|
https://github.com/meshtastic/GxEPD2#b202ebfec6a4821e098cf7a625ba0f6f2400292d
|
||||||
|
lewisxhe/PCF8563_Library@^1.0.1
|
||||||
|
upload_speed = 115200
|
58
variants/heltec_vision_master_e213/variant.h
Normal file
58
variants/heltec_vision_master_e213/variant.h
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
// #define LED_PIN 18
|
||||||
|
|
||||||
|
// Enable bus for external periherals
|
||||||
|
#define I2C_SDA SDA
|
||||||
|
#define I2C_SCL SCL
|
||||||
|
|
||||||
|
#define USE_EINK
|
||||||
|
|
||||||
|
/*
|
||||||
|
* eink display pins
|
||||||
|
*/
|
||||||
|
#define PIN_EINK_CS 5
|
||||||
|
#define PIN_EINK_BUSY 1
|
||||||
|
#define PIN_EINK_DC 2
|
||||||
|
#define PIN_EINK_RES 3
|
||||||
|
#define PIN_EINK_SCLK 4
|
||||||
|
#define PIN_EINK_MOSI 6
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SPI interfaces
|
||||||
|
*/
|
||||||
|
#define SPI_INTERFACES_COUNT 2
|
||||||
|
|
||||||
|
#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 21
|
||||||
|
|
||||||
|
#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 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
|
||||||
|
#define LORA_MOSI 10
|
||||||
|
#define LORA_CS 8
|
||||||
|
|
||||||
|
#define SX126X_CS LORA_CS
|
||||||
|
#define SX126X_DIO1 LORA_DIO1
|
||||||
|
#define SX126X_BUSY LORA_DIO2
|
||||||
|
#define SX126X_RESET LORA_RESET
|
||||||
|
|
||||||
|
#define SX126X_DIO2_AS_RF_SWITCH
|
||||||
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
63
variants/heltec_vision_master_e290/pins_arduino.h
Normal file
63
variants/heltec_vision_master_e290/pins_arduino.h
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#ifndef Pins_Arduino_h
|
||||||
|
#define Pins_Arduino_h
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define HELTEC_VISION_MASTER_E290 true
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 35;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
|
static const uint8_t TX = 43;
|
||||||
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
static const uint8_t SDA = 41;
|
||||||
|
static const uint8_t SCL = 42;
|
||||||
|
|
||||||
|
static const uint8_t SS = 8;
|
||||||
|
static const uint8_t MOSI = 10;
|
||||||
|
static const uint8_t MISO = 11;
|
||||||
|
static const uint8_t SCK = 9;
|
||||||
|
|
||||||
|
static const uint8_t A0 = 1;
|
||||||
|
static const uint8_t A1 = 2;
|
||||||
|
static const uint8_t A2 = 3;
|
||||||
|
static const uint8_t A3 = 4;
|
||||||
|
static const uint8_t A4 = 5;
|
||||||
|
static const uint8_t A5 = 6;
|
||||||
|
static const uint8_t A6 = 7;
|
||||||
|
static const uint8_t A7 = 8;
|
||||||
|
static const uint8_t A8 = 9;
|
||||||
|
static const uint8_t A9 = 10;
|
||||||
|
static const uint8_t A10 = 11;
|
||||||
|
static const uint8_t A11 = 12;
|
||||||
|
static const uint8_t A12 = 13;
|
||||||
|
static const uint8_t A13 = 14;
|
||||||
|
static const uint8_t A14 = 15;
|
||||||
|
static const uint8_t A15 = 16;
|
||||||
|
static const uint8_t A16 = 17;
|
||||||
|
static const uint8_t A17 = 18;
|
||||||
|
static const uint8_t A18 = 19;
|
||||||
|
static const uint8_t A19 = 20;
|
||||||
|
|
||||||
|
static const uint8_t T1 = 1;
|
||||||
|
static const uint8_t T2 = 2;
|
||||||
|
static const uint8_t T3 = 3;
|
||||||
|
static const uint8_t T4 = 4;
|
||||||
|
static const uint8_t T5 = 5;
|
||||||
|
static const uint8_t T6 = 6;
|
||||||
|
static const uint8_t T7 = 7;
|
||||||
|
static const uint8_t T8 = 8;
|
||||||
|
static const uint8_t T9 = 9;
|
||||||
|
static const uint8_t T10 = 10;
|
||||||
|
static const uint8_t T11 = 11;
|
||||||
|
static const uint8_t T12 = 12;
|
||||||
|
static const uint8_t T13 = 13;
|
||||||
|
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;
|
||||||
|
|
||||||
|
#endif /* Pins_Arduino_h */
|
24
variants/heltec_vision_master_e290/platformio.ini
Normal file
24
variants/heltec_vision_master_e290/platformio.ini
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[env:heltec-vision-master-e290]
|
||||||
|
extends = esp32s3_base
|
||||||
|
board = heltec_wifi_lora_32_V3
|
||||||
|
build_flags =
|
||||||
|
${esp32s3_base.build_flags}
|
||||||
|
-I variants/heltec_vision_master_e290
|
||||||
|
-D HELTEC_VISION_MASTER_E290
|
||||||
|
-D EINK_DISPLAY_MODEL=GxEPD2_290_BS
|
||||||
|
-D EINK_WIDTH=296
|
||||||
|
-D EINK_HEIGHT=128
|
||||||
|
; -D USE_EINK_DYNAMICDISPLAY ; Enable Dynamic EInk
|
||||||
|
; -D EINK_LIMIT_FASTREFRESH=10 ; How many consecutive fast-refreshes are permitted
|
||||||
|
; -D EINK_LIMIT_RATE_BACKGROUND_SEC=1 ; Minimum interval between BACKGROUND updates
|
||||||
|
; -D EINK_LIMIT_RATE_RESPONSIVE_SEC=1 ; Minimum interval between RESPONSIVE updates
|
||||||
|
; -D EINK_LIMIT_GHOSTING_PX=2000 ; (Optional) How much image ghosting is tolerated
|
||||||
|
; -D EINK_BACKGROUND_USES_FAST ; (Optional) Use FAST refresh for both BACKGROUND and RESPONSIVE, until a limit is reached.
|
||||||
|
; -D EINK_HASQUIRK_GHOSTING ; Display model is identified as "prone to ghosting"
|
||||||
|
; -D EINK_HASQUIRK_WEAKFASTREFRESH ; Pixels set with fast-refresh are easy to clear, disrupted by sunlight
|
||||||
|
|
||||||
|
lib_deps =
|
||||||
|
${esp32s3_base.lib_deps}
|
||||||
|
https://github.com/meshtastic/GxEPD2#b202ebfec6a4821e098cf7a625ba0f6f2400292d
|
||||||
|
lewisxhe/PCF8563_Library@^1.0.1
|
||||||
|
upload_speed = 115200
|
58
variants/heltec_vision_master_e290/variant.h
Normal file
58
variants/heltec_vision_master_e290/variant.h
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
// #define LED_PIN 18
|
||||||
|
|
||||||
|
// Enable bus for external periherals
|
||||||
|
#define I2C_SDA SDA
|
||||||
|
#define I2C_SCL SCL
|
||||||
|
|
||||||
|
#define USE_EINK
|
||||||
|
|
||||||
|
/*
|
||||||
|
* eink display pins
|
||||||
|
*/
|
||||||
|
#define PIN_EINK_CS 3
|
||||||
|
#define PIN_EINK_BUSY 5
|
||||||
|
#define PIN_EINK_DC 4
|
||||||
|
#define PIN_EINK_RES 5
|
||||||
|
#define PIN_EINK_SCLK 2
|
||||||
|
#define PIN_EINK_MOSI 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SPI interfaces
|
||||||
|
*/
|
||||||
|
#define SPI_INTERFACES_COUNT 2
|
||||||
|
|
||||||
|
#define PIN_SPI_MISO 10 // MISO
|
||||||
|
#define PIN_SPI_MOSI 11 // MOSI
|
||||||
|
#define PIN_SPI_SCK 9 // SCK
|
||||||
|
|
||||||
|
#define VEXT_ENABLE 18 // powers the e-ink display
|
||||||
|
#define VEXT_ON_VALUE 1
|
||||||
|
#define BUTTON_PIN 21
|
||||||
|
|
||||||
|
#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
|
||||||
|
#define ADC_ATTENUATION ADC_ATTEN_DB_2_5 // Voltage divider output is quite high
|
||||||
|
|
||||||
|
#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
|
||||||
|
#define LORA_MOSI 10
|
||||||
|
#define LORA_CS 8
|
||||||
|
|
||||||
|
#define SX126X_CS LORA_CS
|
||||||
|
#define SX126X_DIO1 LORA_DIO1
|
||||||
|
#define SX126X_BUSY LORA_DIO2
|
||||||
|
#define SX126X_RESET LORA_RESET
|
||||||
|
|
||||||
|
#define SX126X_DIO2_AS_RF_SWITCH
|
||||||
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
63
variants/heltec_vision_master_t190/pins_arduino.h
Normal file
63
variants/heltec_vision_master_t190/pins_arduino.h
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#ifndef Pins_Arduino_h
|
||||||
|
#define Pins_Arduino_h
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define HELTEC_VISION_MASTER_T190 true
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 35;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
|
static const uint8_t TX = 43;
|
||||||
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
static const uint8_t SDA = 41;
|
||||||
|
static const uint8_t SCL = 42;
|
||||||
|
|
||||||
|
static const uint8_t SS = 8;
|
||||||
|
static const uint8_t MOSI = 10;
|
||||||
|
static const uint8_t MISO = 11;
|
||||||
|
static const uint8_t SCK = 9;
|
||||||
|
|
||||||
|
static const uint8_t A0 = 1;
|
||||||
|
static const uint8_t A1 = 2;
|
||||||
|
static const uint8_t A2 = 3;
|
||||||
|
static const uint8_t A3 = 4;
|
||||||
|
static const uint8_t A4 = 5;
|
||||||
|
static const uint8_t A5 = 6;
|
||||||
|
static const uint8_t A6 = 7;
|
||||||
|
static const uint8_t A7 = 8;
|
||||||
|
static const uint8_t A8 = 9;
|
||||||
|
static const uint8_t A9 = 10;
|
||||||
|
static const uint8_t A10 = 11;
|
||||||
|
static const uint8_t A11 = 12;
|
||||||
|
static const uint8_t A12 = 13;
|
||||||
|
static const uint8_t A13 = 14;
|
||||||
|
static const uint8_t A14 = 15;
|
||||||
|
static const uint8_t A15 = 16;
|
||||||
|
static const uint8_t A16 = 17;
|
||||||
|
static const uint8_t A17 = 18;
|
||||||
|
static const uint8_t A18 = 19;
|
||||||
|
static const uint8_t A19 = 20;
|
||||||
|
|
||||||
|
static const uint8_t T1 = 1;
|
||||||
|
static const uint8_t T2 = 2;
|
||||||
|
static const uint8_t T3 = 3;
|
||||||
|
static const uint8_t T4 = 4;
|
||||||
|
static const uint8_t T5 = 5;
|
||||||
|
static const uint8_t T6 = 6;
|
||||||
|
static const uint8_t T7 = 7;
|
||||||
|
static const uint8_t T8 = 8;
|
||||||
|
static const uint8_t T9 = 9;
|
||||||
|
static const uint8_t T10 = 10;
|
||||||
|
static const uint8_t T11 = 11;
|
||||||
|
static const uint8_t T12 = 12;
|
||||||
|
static const uint8_t T13 = 13;
|
||||||
|
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;
|
||||||
|
|
||||||
|
#endif /* Pins_Arduino_h */
|
13
variants/heltec_vision_master_t190/platformio.ini
Normal file
13
variants/heltec_vision_master_t190/platformio.ini
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[env:heltec-vision-master-t190]
|
||||||
|
extends = esp32s3_base
|
||||||
|
board = heltec_wifi_lora_32_V3
|
||||||
|
build_flags =
|
||||||
|
${esp32s3_base.build_flags}
|
||||||
|
-I variants/heltec_vision_master_t190
|
||||||
|
-D PRIVATE_HW
|
||||||
|
; -D PRIVATE_HW
|
||||||
|
lib_deps =
|
||||||
|
${esp32s3_base.lib_deps}
|
||||||
|
lewisxhe/PCF8563_Library@^1.0.1
|
||||||
|
https://github.com/Bei-Ji-Quan/st7789#b8e7e076714b670764139289d3829b0beff67edb
|
||||||
|
upload_speed = 921600
|
78
variants/heltec_vision_master_t190/variant.h
Normal file
78
variants/heltec_vision_master_t190/variant.h
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
// #define LED_PIN 18
|
||||||
|
|
||||||
|
// Enable bus for external periherals
|
||||||
|
#define I2C_SDA 1
|
||||||
|
#define I2C_SCL 2
|
||||||
|
#define USE_ST7789
|
||||||
|
|
||||||
|
#define ST7789_NSS 39
|
||||||
|
// #define ST7789_CS 39
|
||||||
|
#define ST7789_RS 47 // DC
|
||||||
|
#define ST7789_SDA 48 // MOSI
|
||||||
|
#define ST7789_SCK 38
|
||||||
|
#define ST7789_RESET 40
|
||||||
|
#define ST7789_MISO 4
|
||||||
|
#define ST7789_BUSY -1
|
||||||
|
#define VTFT_CTRL 7
|
||||||
|
// #define TFT_BL 3
|
||||||
|
#define VTFT_LEDA 17
|
||||||
|
#define TFT_BACKLIGHT_ON HIGH
|
||||||
|
// #define TFT_BL 17
|
||||||
|
// #define TFT_BACKLIGHT_ON HIGH
|
||||||
|
// #define ST7789_BL 3
|
||||||
|
#define ST7789_SPI_HOST SPI2_HOST
|
||||||
|
// #define ST7789_BACKLIGHT_EN 17
|
||||||
|
#define SPI_FREQUENCY 10000000
|
||||||
|
#define SPI_READ_FREQUENCY 10000000
|
||||||
|
#define TFT_HEIGHT 170
|
||||||
|
#define TFT_WIDTH 320
|
||||||
|
#define TFT_OFFSET_X 0
|
||||||
|
#define TFT_OFFSET_Y 0
|
||||||
|
// #define TFT_OFFSET_ROTATION 0
|
||||||
|
// #define SCREEN_ROTATE
|
||||||
|
// #define SCREEN_TRANSITION_FRAMERATE 5
|
||||||
|
#define BRIGHTNESS_DEFAULT 100 // Medium Low Brightnes
|
||||||
|
|
||||||
|
|
||||||
|
// #define SLEEP_TIME 120
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SPI interfaces
|
||||||
|
*/
|
||||||
|
#define SPI_INTERFACES_COUNT 2
|
||||||
|
|
||||||
|
#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 7 // active low, powers the oled display and the lora antenna boost
|
||||||
|
#define BUTTON_PIN 0
|
||||||
|
|
||||||
|
#define ADC_CTRL 46
|
||||||
|
#define ADC_CTRL_ENABLED HIGH
|
||||||
|
#define BATTERY_PIN 6
|
||||||
|
#define ADC_CHANNEL ADC1_GPIO6_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 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
|
||||||
|
#define LORA_MOSI 10
|
||||||
|
#define LORA_CS 8
|
||||||
|
|
||||||
|
#define SX126X_CS LORA_CS
|
||||||
|
#define SX126X_DIO1 LORA_DIO1
|
||||||
|
#define SX126X_BUSY LORA_DIO2
|
||||||
|
#define SX126X_RESET LORA_RESET
|
||||||
|
|
||||||
|
#define SX126X_DIO2_AS_RF_SWITCH
|
||||||
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
@ -7,8 +7,6 @@ static const uint8_t LED_BUILTIN = 18;
|
|||||||
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
#define LED_BUILTIN LED_BUILTIN
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t KEY_BUILTIN = 0;
|
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
@ -56,9 +54,6 @@ static const uint8_t T12 = 12;
|
|||||||
static const uint8_t T13 = 13;
|
static const uint8_t T13 = 13;
|
||||||
static const uint8_t T14 = 14;
|
static const uint8_t T14 = 14;
|
||||||
|
|
||||||
static const uint8_t Vext = 45;
|
|
||||||
static const uint8_t LED = 18;
|
|
||||||
|
|
||||||
static const uint8_t RST_LoRa = 12;
|
static const uint8_t RST_LoRa = 12;
|
||||||
static const uint8_t BUSY_LoRa = 13;
|
static const uint8_t BUSY_LoRa = 13;
|
||||||
static const uint8_t DIO1 = 14;
|
static const uint8_t DIO1 = 14;
|
||||||
|
Loading…
Reference in New Issue
Block a user