mirror of
https://github.com/meshtastic/firmware.git
synced 2026-06-15 14:56:19 +00:00
Compare commits
13 Commits
esp32-h2
...
thinknode-m9
| Author | SHA1 | Date | |
|---|---|---|---|
| 813c990a9e | |||
| affbf054b2 | |||
| 12ca20678a | |||
| 8e6df3276c | |||
| d4d4b2cc70 | |||
| 9d885ad26a | |||
| 7088470b5e | |||
| d71a38078e | |||
| 86a0d9473f | |||
| 9009bbdde8 | |||
| c85f2a215a | |||
| 7960144c9b | |||
| 089ad58dd3 |
+5
-3
@@ -1304,7 +1304,7 @@ GnssModel_t GPS::probe(int serialSpeed)
|
||||
{"AG3335", "$PAIR021,AG3335", GNSS_MODEL_AG3335},
|
||||
{"AG3352", "$PAIR021,AG3352", GNSS_MODEL_AG3352},
|
||||
{"RYS3520", "$PAIR021,REYAX_RYS3520_V2", GNSS_MODEL_AG3352},
|
||||
{"UC6580", "UC6580", GNSS_MODEL_UC6580},
|
||||
{"UC6580", "UC6580", GNSS_MODEL_UC6580}
|
||||
// as L76K is sort of a last ditch effort, we won't attempt to detect it by startup messages for now.
|
||||
/*{"L76K", "SW=URANUS", GNSS_MODEL_MTK}*/};
|
||||
GnssModel_t detectedDriver = getProbeResponse(500, passive_detect, serialSpeed);
|
||||
@@ -1331,8 +1331,10 @@ GnssModel_t GPS::probe(int serialSpeed)
|
||||
case 1: {
|
||||
|
||||
// Unicore UFirebirdII Series: UC6580, UM620, UM621, UM670A, UM680A, or UM681A,or CM121
|
||||
std::vector<ChipInfo> unicore = {
|
||||
{"UC6580", "UC6580", GNSS_MODEL_UC6580}, {"UM600", "UM600", GNSS_MODEL_UC6580}, {"CM121", "CM121", GNSS_MODEL_CM121}};
|
||||
std::vector<ChipInfo> unicore = {{"UC6580", "UC6580", GNSS_MODEL_UC6580},
|
||||
{"UM600", "UM600", GNSS_MODEL_UC6580},
|
||||
{"CM121", "CM121", GNSS_MODEL_CM121},
|
||||
{"CC1167Q", "CC1167Q", GNSS_MODEL_CM121}};
|
||||
PROBE_FAMILY("Unicore Family", "$PDTINFO", unicore, 500);
|
||||
currentDelay = 20;
|
||||
currentStep = 2;
|
||||
|
||||
+1
-1
@@ -927,7 +927,7 @@ void NodeDB::installDefaultConfig(bool preserveKey = false)
|
||||
strncpy(config.network.ntp_server, "meshtastic.pool.ntp.org", 32);
|
||||
|
||||
#if (defined(T_DECK) || defined(T_WATCH_S3) || defined(UNPHONE) || defined(PICOMPUTER_S3) || defined(SENSECAP_INDICATOR) || \
|
||||
defined(ELECROW_PANEL) || defined(HELTEC_V4_TFT) || defined(HELTEC_V4_R8_TFT)) && \
|
||||
defined(ELECROW_PANEL) || defined(HELTEC_V4_TFT) || defined(HELTEC_V4_R8_TFT) || defined(ELECROW_ThinkNode_M9)) && \
|
||||
HAS_TFT
|
||||
// switch BT off by default; use TFT programming mode or hotkey to enable
|
||||
config.bluetooth.enabled = false;
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#ifndef Pins_Arduino_h
|
||||
#define Pins_Arduino_h
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define USB_VID 0x303a
|
||||
#define USB_PID 0x1001
|
||||
|
||||
static const uint8_t TX = 43;
|
||||
static const uint8_t RX = 44;
|
||||
|
||||
static const uint8_t SDA = 20;
|
||||
static const uint8_t SCL = 21;
|
||||
|
||||
static const uint8_t SS = 39;
|
||||
static const uint8_t MOSI = 47;
|
||||
static const uint8_t MISO = 38;
|
||||
static const uint8_t SCK = 40;
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,84 @@
|
||||
[thinknode_m9_base]
|
||||
extends = esp32s3_base
|
||||
board = crowpanel
|
||||
board_check = true
|
||||
board_build.partitions = default_16MB.csv
|
||||
upload_protocol = esptool
|
||||
build_src_filter =
|
||||
${esp32s3_base.build_src_filter}
|
||||
+<../variants/esp32s3/ELECROW-ThinkNode-M9>
|
||||
build_flags =
|
||||
${esp32s3_base.build_flags}
|
||||
-I variants/esp32s3/ELECROW-ThinkNode-M9
|
||||
-D ELECROW_ThinkNode_M9
|
||||
-D BOARD_HAS_PSRAM
|
||||
; -D HAS_SDCARD=1
|
||||
-D SDCARD_CS=48
|
||||
; -D SDCARD_USE_SPI1
|
||||
; -D SDCARD_USER_SPI_BEGIN
|
||||
-D SD_SPI_FREQUENCY=75000000
|
||||
-D HAS_SCREEN=1
|
||||
lib_deps = ${esp32s3_base.lib_deps}
|
||||
https://github.com/lovyan03/LovyanGFX/archive/refs/tags/1.2.21.zip
|
||||
https://github.com/lewisxhe/SensorLib/archive/refs/tags/v0.4.1.zip
|
||||
|
||||
[env:thinknode_m9]
|
||||
extends = thinknode_m9_base
|
||||
build_flags =
|
||||
${thinknode_m9_base.build_flags}
|
||||
|
||||
[env:thinknode_m9-tft]
|
||||
extends = thinknode_m9_base
|
||||
build_flags =
|
||||
${thinknode_m9_base.build_flags}
|
||||
-D RADIOLIB_SPI_PARANOID=0
|
||||
-D CONFIG_DISABLE_HAL_LOCKS=1
|
||||
-D HAS_TFT=1
|
||||
-D USE_PACKET_API
|
||||
-D USE_PIN_BUZZER=PIN_BUZZER
|
||||
-D LV_LVGL_H_INCLUDE_SIMPLE
|
||||
-D LV_CONF_INCLUDE_SIMPLE
|
||||
-D LV_COMP_CONF_INCLUDE_SIMPLE
|
||||
-D LV_USE_SYSMON=0
|
||||
-D LV_USE_PROFILER=0
|
||||
-D LV_USE_PERF_MONITOR=0
|
||||
-D LV_USE_MEM_MONITOR=0
|
||||
-D LV_USE_LOG=0
|
||||
-D LV_BUILD_TEST=0
|
||||
-D USE_LOG_DEBUG
|
||||
-D LOG_DEBUG_INC=\"DebugConfiguration.h\"
|
||||
-D RAM_SIZE=5120
|
||||
-D LGFX_BUFSIZE=153600
|
||||
-D LGFX_DRIVER_TEMPLATE
|
||||
-D DISPLAY_SIZE=320x240
|
||||
-D LGFX_DRIVER=LGFX_GENERIC
|
||||
-D GFX_DRIVER_INC=\"graphics/LGFX/LGFX_GENERIC.h\"
|
||||
-D VIEW_320x240
|
||||
-D LGFX_PANEL=ST7789
|
||||
-D LGFX_ROTATION=3
|
||||
-D LGFX_CFG_HOST=SPI3_HOST
|
||||
-D LGFX_PIN_SCK=40
|
||||
-D LGFX_PIN_MOSI=47
|
||||
-D LGFX_PIN_DC=15
|
||||
-D LGFX_PIN_CS=16
|
||||
-D LGFX_PIN_BL=17
|
||||
-D LGFX_PIN_RST=14
|
||||
-D LGFX_SCREEN_WIDTH=240
|
||||
-D LGFX_SCREEN_HEIGHT=320
|
||||
-D LGFX_INVERT_LIGHT=true
|
||||
-D SPI_FREQUENCY=75000000
|
||||
-D MAP_FULL_REDRAW
|
||||
|
||||
lib_deps =
|
||||
${thinknode_m9_base.lib_deps}
|
||||
${device-ui_base.lib_deps}
|
||||
;https://github.com/mverch67/ESPWebDAV/archive/a57dedfac243b1c47db90c712db664f896752467.zip
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
#include "RadioLib.h"
|
||||
|
||||
static const uint32_t rfswitch_dio_pins[] = {RADIOLIB_LR11X0_DIO5, RADIOLIB_LR11X0_DIO6, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC};
|
||||
|
||||
static const Module::RfSwitchMode_t rfswitch_table[] = {
|
||||
// mode DIO5 DIO6
|
||||
{LR11x0::MODE_STBY, {LOW, LOW}}, {LR11x0::MODE_RX, {HIGH, LOW}},
|
||||
{LR11x0::MODE_TX, {HIGH, HIGH}}, {LR11x0::MODE_TX_HP, {LOW, HIGH}},
|
||||
{LR11x0::MODE_TX_HF, {LOW, LOW}}, {LR11x0::MODE_GNSS, {LOW, LOW}},
|
||||
{LR11x0::MODE_WIFI, {LOW, LOW}}, END_OF_MODE_TABLE,
|
||||
};
|
||||
@@ -0,0 +1,34 @@
|
||||
#include "variant.h"
|
||||
#include "Arduino.h"
|
||||
#include "SPILock.h"
|
||||
#include "Wire.h"
|
||||
|
||||
void earlyInitVariant()
|
||||
{
|
||||
pinMode(LORA_CS, OUTPUT);
|
||||
digitalWrite(LORA_CS, HIGH);
|
||||
pinMode(SDCARD_CS, OUTPUT);
|
||||
digitalWrite(SDCARD_CS, HIGH);
|
||||
pinMode(TFT_CS, OUTPUT);
|
||||
digitalWrite(TFT_CS, HIGH);
|
||||
delay(100);
|
||||
}
|
||||
|
||||
void lateInitVariant()
|
||||
{
|
||||
// configure keyboard long-press time
|
||||
const uint16_t ms = 700;
|
||||
concurrency::LockGuard g(spiLock);
|
||||
Wire.beginTransmission(0x6C);
|
||||
Wire.write(0x03);
|
||||
Wire.write((ms >> 8) & 0xFF);
|
||||
Wire.write(ms & 0xFF);
|
||||
Wire.endTransmission();
|
||||
}
|
||||
|
||||
void variant_shutdown()
|
||||
{
|
||||
uint64_t gpioMask = (1ULL << KB_INT);
|
||||
gpio_pulldown_en((gpio_num_t)KB_INT);
|
||||
esp_sleep_enable_ext1_wakeup(gpioMask, ESP_EXT1_WAKEUP_ANY_HIGH);
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
#define CANNED_MESSAGE_MODULE_ENABLE 1
|
||||
#define PRESET_MESSAGE_MODULE_ENABLE 1
|
||||
|
||||
/*Power*/
|
||||
#define VEXT_ENABLE 18
|
||||
#define VEXT_ON_VALUE LOW
|
||||
#define PIN_GPS_EN 11
|
||||
#define GPS_EN_ACTIVE LOW
|
||||
|
||||
#define USE_POWERSAVE
|
||||
#define SLEEP_TIME 120
|
||||
|
||||
/*Wire Interface*/
|
||||
#define WIRE_INTERFACES_COUNT 2
|
||||
// I2C keyboard
|
||||
#define I2C_SCL 21
|
||||
#define I2C_SDA 20
|
||||
#define KB_INT 12
|
||||
// I2C peripheral
|
||||
#define I2C_SCL1 6
|
||||
#define I2C_SDA1 7
|
||||
|
||||
/*BUZZER*/
|
||||
#define PIN_BUZZER 9
|
||||
|
||||
/*CHARGE_CHECK*/
|
||||
#define DONE 8
|
||||
#define EXT_PWR_DETECT 1
|
||||
#define EXT_CHRG_DETECT 1
|
||||
#define EXT_CHRG_DETECT_VALUE LOW
|
||||
|
||||
/*GPS*/
|
||||
#define HAS_GPS 1
|
||||
#define GPS_BAUDRATE 115200
|
||||
#define PIN_GPS_RESET 5
|
||||
#define PIN_GPS_PPS 4
|
||||
#define GPS_TX_PIN 3
|
||||
#define GPS_RX_PIN 2
|
||||
#define GPS_THREAD_INTERVAL 50
|
||||
|
||||
/*SPI*/
|
||||
#define SPI_MOSI 47
|
||||
#define SPI_SCK 40
|
||||
#define SPI_MISO 38
|
||||
|
||||
/*Screen*/
|
||||
#define ST7789_CS 16
|
||||
#define ST7789_RS 15
|
||||
#define ST7789_TE 19
|
||||
#define ST7789_SDA SPI_MOSI // MOSI
|
||||
#define ST7789_SCK SPI_SCK
|
||||
#define ST7789_RESET 14
|
||||
#define ST7789_MISO SPI_MISO
|
||||
#define ST7789_BUSY -1
|
||||
#define ST7789_BL 17
|
||||
#define ST7789_SPI_HOST SPI3_HOST
|
||||
#define SPI_READ_FREQUENCY 16000000
|
||||
|
||||
#define USE_TFTDISPLAY 1
|
||||
#define TFT_CS ST7789_CS
|
||||
#define TFT_BL ST7789_BL
|
||||
#define TFT_HEIGHT 320
|
||||
#define TFT_WIDTH 240
|
||||
#define TFT_OFFSET_X 0
|
||||
#define TFT_OFFSET_Y 0
|
||||
#define TFT_OFFSET_ROTATION 0
|
||||
#define TFT_PWM_FREQ 44000
|
||||
#define TFT_PWM_CHANNEL 7
|
||||
#define TFT_INVERT_LIGHT true
|
||||
#define TFT_BACKLIGHT_ON LOW
|
||||
#define SCREEN_ROTATE
|
||||
#define SCREEN_TRANSITION_FRAMERATE 10
|
||||
#define BRIGHTNESS_DEFAULT 128
|
||||
|
||||
/*Lora radio*/
|
||||
#define HW_SPI1_DEVICE
|
||||
#define LORA_SCK SPI_SCK
|
||||
#define LORA_MISO SPI_MISO
|
||||
#define LORA_MOSI SPI_MOSI
|
||||
#define LORA_CS 39
|
||||
#define LORA_RESET 45
|
||||
#define LORA_DIO0 41
|
||||
#define LORA_DIO1 42
|
||||
|
||||
#define USE_LR1110
|
||||
#define LR1110_IRQ_PIN LORA_DIO1
|
||||
#define LR1110_NRESET_PIN LORA_RESET
|
||||
#define LR1110_BUSY_PIN LORA_DIO0
|
||||
#define LR1110_SPI_NSS_PIN LORA_CS
|
||||
#define LR1110_SPI_SCK_PIN LORA_SCK
|
||||
#define LR1110_SPI_MOSI_PIN LORA_MOSI
|
||||
#define LR1110_SPI_MISO_PIN LORA_MISO
|
||||
#define LR11X0_DIO3_TCXO_VOLTAGE 3.3
|
||||
#define LR11X0_DIO_AS_RF_SWITCH
|
||||
|
||||
/*RTC*/
|
||||
#define PCF8563_RTC 0x51
|
||||
|
||||
/*BATTERY*/
|
||||
#define BATTERY_PIN 13
|
||||
#define ADC_MULTIPLIER 2.0f
|
||||
#define BAT_MEASURE_ADC_UNIT ADC_UNIT_2
|
||||
#define ADC_CHANNEL ADC_CHANNEL_2
|
||||
#define ADC_ATTENUATION ADC_ATTEN_DB_12
|
||||
#define DEFAULT_VREF 1100
|
||||
#define BATTERY_SENSE_SAMPLES 15
|
||||
#define NUM_OCV_POINTS 11
|
||||
#define NUM_CELLS 1
|
||||
#define OCV_ARRAY 4260, 4180, 4050, 3950, 3850, 3780, 3730, 3680, 3600, 3500, 3400
|
||||
Reference in New Issue
Block a user