Merge branch 'HASwitchPlate:master' into ng_fix_esp32s2_pins

This commit is contained in:
Nick 2022-03-15 21:17:19 -07:00 committed by GitHub
commit f2a80d5309
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
49 changed files with 340 additions and 147 deletions

View File

@ -1,8 +1,11 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"ms-vscode.cpptools",
"platformio.platformio-ide"
]
}
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"ms-vscode.cpptools",
"platformio.platformio-ide"
],
"unwantedRecommendations": [
"ms-vscode.cpptools-extension-pack"
]
}

View File

@ -17,6 +17,10 @@
### Services
- Add SimpleFTPServer to easily upload and download files to the plate *(one simultanious connection only)*
### Architecture
- Moved to Arduino 2.0.2 with native LittleFS library
- Moved to ESP-IDF 4.4 with fix for FragAttacks CVEs
## v0.6.3
@ -30,6 +34,9 @@
- Hide cursor during `antiburn` and `idle` if the pointer is enabled
- Screenshot images now display properly in Safari on macOS/iOS (thanks @masto)
### MQTT
- Remember last `page` id for mqtt messages
### Objects
- `img.src` now accepts both `http` and `https` urls (thanks @htvekov)
- `img.src` now accepts `png` and `binary` image urls, PSram is *highly* recommended
@ -53,12 +60,10 @@
- Expose the device URL in discovery message
### Architecture
- Moved to Arduino 2.0.2 with native LittleFS library
- Moved to ESP-IDF 4.4 with fix for FragAttacks CVEs
- Prepare support for ESP32-S2
- **Breaking:** Removed support for ESP8266!
Updated libraries to ArduinoJson 6.19.2, ArduinoStreamUtils 1.6.2, TFT_eSPI 2.4.32, LovyanGFX 0.4.12 and Adafruit STMPE610 1.1.4
Updated libraries to ArduinoJson 6.19.3, ArduinoStreamUtils 1.6.2, TFT_eSPI 2.4.42, LovyanGFX 0.4.14 and Adafruit STMPE610 1.1.4
## v0.6.2

35
boards/esp32s2_solo1.json Normal file
View File

@ -0,0 +1,35 @@
{
"build": {
"arduino": {
"ldscript": "esp32s2_out.ld"
},
"core": "esp32",
"extra_flags": "-DBOARD_HAS_PSRAM -DCORE32SOLO1",
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "dout",
"mcu": "esp32s2",
"variant": "esp32s2",
"partitions": "esp32_partition_app1856k_spiffs320k.csv"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s2.cfg"
},
"frameworks": [
"espidf",
"arduino"
],
"name": "Espressif Generic ESP32-S2",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-saola-1-v1.2.html",
"vendor": "Espressif"
}

View File

@ -89,9 +89,9 @@ typedef int16_t lv_coord_t;
#if defined(ARDUINO_ARCH_ESP8266)
# define LV_MEM_SIZE (12 * 1024U) // Minimum 12 Kb
#elif defined(ESP32S2)
# define LV_MEM_SIZE (20 * 1024U) // 20Kb is much better
# define LV_MEM_SIZE (32 * 1024U) // 32Kb on ESP32-S2
#elif defined(ARDUINO_ARCH_ESP32)
# define LV_MEM_SIZE (48 * 1024U) // 48Kb is much better
# define LV_MEM_SIZE (48 * 1024U) // 48Kb on ESP32
#else
# define LV_MEM_SIZE (256 * 1024U) // native app
#endif

View File

@ -64,13 +64,14 @@ void FtpServer::end()
DEBUG_PRINTLN(F("Stop server!"));
if(client.connected()) {
DEBUG_PRINTLN(F("Disconnect client!"));
disconnectClient();
}
ftpServer.end();
dataServer.end();
cmdStage = FTP_Init;
cmdStage = FTP_Stop;
transferStage = FTP_Close;
dataConn = FTP_NoConn;
}
@ -1194,12 +1195,12 @@ bool FtpServer::doList()
#endif
{
if(dir.isDirectory()) {
data.print(F("+/,\t"));
DEBUG_PRINT(F("+/,\t"));
if(fileDir.isDirectory()) {
data.print(F("drw-rw-rw- 1 hasp hasp "));
DEBUG_PRINT(F("drw-rw-rw- "));
} else {
data.print(F("+r,s"));
DEBUG_PRINT(F("+r,s"));
data.print(F("-rw-rw-rw- 1 hasp hasp "));
DEBUG_PRINT(F("-rw-rw-rw- "));
}
#if ESP8266
data.print(long(dir.fileSize()));
@ -1214,11 +1215,13 @@ bool FtpServer::doList()
long fz = fileDir.size();
#else
data.print(long(fileDir.size()));
data.print(F(",\t"));
data.print(F(" "));
data.print(long(fileDir.getLastWrite()));
data.print(F(" "));
data.println(fileDir.name());
DEBUG_PRINT(long(fileDir.size()));
DEBUG_PRINT(F(",\t"));
DEBUG_PRINT(F(" "));
DEBUG_PRINTLN(fileDir.name());
#endif

View File

@ -260,13 +260,14 @@
#define FTP_FILE_WRITE_APPEND "a+"
#define FTP_FILE_WRITE_CREATE "w+"
#else
#if 1
#include "LittleFS.h"
#define STORAGE_MANAGER LittleFS
#else
#include "LITTLEFS.h"
#define STORAGE_MANAGER LITTLEFS
#endif
#if ESP_ARDUINO_VERSION_MAJOR >= 2
#include "FS.h"
#include "LittleFS.h"
#define STORAGE_MANAGER LittleFS
#else
#include "LITTLEFS.h"
#define STORAGE_MANAGER LITTLEFS
#endif
#define FTP_FILE File
#define FTP_DIR File
@ -514,7 +515,7 @@ private:
#elif STORAGE_TYPE == STORAGE_FATFS
return file->fileName();
#else
#if 1
#if ESP_ARDUINO_VERSION_MAJOR >= 2
return file->path();
#else
return file->name();

View File

@ -74,7 +74,7 @@ build_flags =
; Warning : don't put comments after github links => causes infinite download loop
lib_deps =
bxparks/AceButton@^1.9.1 ; GPIO button library
bblanchon/ArduinoJson@^6.19.2 ; Json(l) parser
bblanchon/ArduinoJson@^6.19.3 ; Json(l) parser
bblanchon/StreamUtils@^1.6.2 ; for EEPromStream and BufferedTelnetClient
knolleary/PubSubClient@^2.8.0 ; MQTT client
;git+https://github.com/fvanroie/ConsoleInput.git
@ -95,3 +95,27 @@ lib_deps =
;https://github.com/me-no-dev/ESPAsyncTCP/archive/master.zip
src_filter = +<*> -<.git/> -<examples/> -<test/> -<tests/> -<stm32f4/> -<lv_font_montserrat_*.c>
[lovyangfx]
lib_deps =
lovyan03/LovyanGFX @ ^0.4.14
[tft_espi]
lib_deps =
bodmer/TFT_eSPI @ 2.4.42
[goodix]
lib_deps =
git+https://github.com/netwizeBE/arduino-goodix.git
[ft6336]
lib_deps =
git+https://github.com/aselectroworks/Arduino-FT6336U.git
[gsl1680]
lib_deps =
git+https://github.com/arovak/GSL2038.git
[stmpe610]
lib_deps =
adafruit/Adafruit STMPE610 @ ^1.1.4

View File

@ -185,7 +185,11 @@ void Esp32Device::set_backlight_pin(uint8_t pin)
/* Setup Backlight Control Pin */
if(pin < GPIO_NUM_MAX) {
LOG_VERBOSE(TAG_GUI, F("Backlight : Pin %d"), pin);
ledcSetup(BACKLIGHT_CHANNEL, 2000, 10);
#if !defined(CONFIG_IDF_TARGET_ESP32S2)
ledcSetup(BACKLIGHT_CHANNEL, BACKLIGHT_FREQUENCY, 10);
#else
ledcSetup(BACKLIGHT_CHANNEL, BACKLIGHT_FREQUENCY, 10);
#endif
ledcAttachPin(pin, BACKLIGHT_CHANNEL);
update_backlight();
} else {
@ -218,9 +222,15 @@ bool Esp32Device::get_backlight_power()
void Esp32Device::update_backlight()
{
if(_backlight_pin < GPIO_NUM_MAX) {
#if !defined(CONFIG_IDF_TARGET_ESP32S2)
uint32_t duty = _backlight_power ? map(_backlight_level, 0, 255, 0, 1023) : 0;
if(_backlight_invert) duty = 1023 - duty;
ledcWrite(BACKLIGHT_CHANNEL, duty); // ledChannel and value
#else
uint32_t duty = _backlight_power ? map(_backlight_level, 0, 255, 0, 1023) : 0;
if(_backlight_invert) duty = 1023 - duty;
ledcWrite(BACKLIGHT_CHANNEL, duty); // ledChannel and value
#endif
}
// haspTft.tft.writecommand(0x53); // Write CTRL Display
@ -350,7 +360,7 @@ long Esp32Device::get_uptime()
// #warning Building for Lanbon L8
#include "dev/esp32/lanbonl8.h"
#elif defined(M5STACK)
// #warning Building for M5Stack core2
// #warning Building for M5Stack core2
#include "dev/esp32/m5stackcore2.h"
#else
dev::Esp32Device haspDevice;

View File

@ -9,6 +9,10 @@
#if defined(ESP32)
#ifndef BACKLIGHT_FREQUENCY
#define BACKLIGHT_FREQUENCY 20000
#endif
#ifdef __cplusplus
extern "C" {
#endif

View File

@ -9,10 +9,12 @@
#include "dev/esp32/esp32.h"
#include "driver/pcnt.h" // Pulse count driver
#if ESP_ARDUINO_VERSION_MAJOR >= 2
#include "hal/pcnt_hal.h"
#include "hal/gpio_hal.h"
#include "soc/pcnt_periph.h"
#include "esp_rom_gpio.h"
#endif
#include "driver/adc.h"
#include "esp_adc_cal.h"

View File

@ -144,17 +144,25 @@ static lgfx::Bus_SPI* init_spi_bus(Preferences* prefs)
case 1:
// SPI_HOST (SPI1_HOST) is not supported by the SPI Master and SPI Slave driver on ESP32-S2 and later
LOG_DEBUG(TAG_TFT, F("%s - %d"), __FILE__, __LINE__);
cfg.spi_host = SPI1_HOST;
cfg.spi_host = SPI_HOST;
break;
#endif
case 2: // HSPI on ESP32 and HSPI on ESP32-S2
case 2: // HSPI on ESP32 and FSPI on ESP32-S2
LOG_DEBUG(TAG_TFT, F("%s - %d"), __FILE__, __LINE__);
cfg.spi_host = SPI2_HOST;
#ifdef CONFIG_IDF_TARGET_ESP32
cfg.spi_host = HSPI_HOST;
#elif CONFIG_IDF_TARGET_ESP32S2
cfg.spi_host = FSPI_HOST;
#endif
break;
case 3:
default: // VSPI on ESP32 and FSPI on ESP32-S2
default: // VSPI on ESP32 and HSPI on ESP32-S2
LOG_DEBUG(TAG_TFT, F("%s - %d"), __FILE__, __LINE__);
cfg.spi_host = SPI3_HOST;
#ifdef CONFIG_IDF_TARGET_ESP32
cfg.spi_host = VSPI_HOST;
#elif CONFIG_IDF_TARGET_ESP32S2
cfg.spi_host = HSPI_HOST;
#endif
}
bus->config(cfg); // The set value is reflected on the bus.
bus->init();
@ -186,12 +194,12 @@ static void init_panel(lgfx::Panel_Device* panel, Preferences* prefs)
prefs->getUInt("dummy_read_bits", 1); // bits of dummy read before reading data other than pixels
cfg.readable = prefs->getBool("readable", false); // true if data can be read
#ifdef INVERT_COLORS
cfg.invert =
prefs->getBool("invert", INVERT_COLORS != 0); // true if the light and darkness of the panel is reversed
#else
cfg.invert = prefs->getBool("invert", false); // true if the light and darkness of the panel is reversed
#endif
// #ifdef INVERT_COLORS // This is configurable un Web UI
// cfg.invert =
// prefs->getBool("invert", INVERT_COLORS != 0); // true if the light and darkness of the panel is reversed
// #else
cfg.invert = prefs->getBool("invert", false); // true if the light and darkness of the panel is reversed
// #endif
#ifdef TFT_RGB_ORDER
cfg.rgb_order = prefs->getBool("rgb_order", true); // true if the red and blue of the panel are swapped
#else
@ -336,8 +344,8 @@ void LovyanGfx::show_info()
{
LOG_VERBOSE(TAG_TFT, F("Interface : Serial"));
auto panel = tft.getPanel();
auto bus = (lgfx::Bus_SPI*)panel->getBus();
auto cfg = bus->config(); // Get the structure for bus configuration.
auto bus = (lgfx::Bus_SPI*)panel->getBus();
auto cfg = bus->config(); // Get the structure for bus configuration.
tftPinInfo(F("MOSI"), cfg.pin_mosi);
tftPinInfo(F("MISO"), cfg.pin_miso);
tftPinInfo(F("SCLK"), cfg.pin_sclk);

View File

@ -649,7 +649,12 @@ void hasp_get_info(JsonDocument& doc)
char size_buf[32];
JsonObject info = doc.createNestedObject(F(D_MANUFACTURER));
info[F(D_INFO_VERSION)] = haspDevice.get_version();
buffer = haspDevice.get_version();
#ifdef COMMIT_HASH
buffer += " ";
buffer += COMMIT_HASH;
#endif
info[F(D_INFO_VERSION)] = buffer;
buffer = __DATE__;
buffer += (" ");

View File

@ -1,7 +1,17 @@
#include <string.h>
#include "hasplib.h"
#if HASP_USE_FREETYPE > 0
#include "lv_freetype.h"
#else
typedef struct
{
const char* name; /* The name of the font file */
lv_font_t* font; /* point to lvgl font */
uint16_t weight; /* font size */
uint16_t style; /* font style */
} lv_ft_info_t;
#endif
#include "hasp_mem.h"
#include "font/hasp_font_loader.h"
@ -51,28 +61,28 @@ static lv_font_t* font_add_to_list(const char* payload)
lv_font_t* font = hasp_font_load(filename);
char* name_p = NULL;
#if defined(ARDUINO_ARCH_ESP32)
if(!font) {
// Try .ttf file
#if defined(ARDUINO_ARCH_ESP32) && (HASP_USE_FREETYPE > 0)
// if(!font) {
// // Try .ttf file
size_t pos = font_split_payload(payload);
if(pos > 0 && pos < 56) {
uint16_t size = atoi(payload + pos);
// size_t pos = font_split_payload(payload);
// if(pos > 0 && pos < 56) {
// uint16_t size = atoi(payload + pos);
char fontname[64];
memset(fontname, 0, sizeof(fontname));
strncpy(fontname, payload, pos);
snprintf_P(filename, sizeof(filename), PSTR("L:\\%s.ttf"), fontname);
// char fontname[64];
// memset(fontname, 0, sizeof(fontname));
// strncpy(fontname, payload, pos);
// snprintf_P(filename, sizeof(filename), PSTR("L:\\%s.ttf"), fontname);
lv_ft_info_t info;
info.name = filename;
info.weight = size;
info.style = FT_FONT_STYLE_NORMAL;
if(lv_ft_font_init(&info)) {
font = info.font;
}
}
}
// lv_ft_info_t info;
// info.name = filename;
// info.weight = size;
// info.style = FT_FONT_STYLE_NORMAL;
// if(lv_ft_font_init(&info)) {
// font = info.font;
// }
// }
// }
if(!font) {
// Try .otf file

View File

@ -0,0 +1,30 @@
import pkg_resources
Import("env")
required_pkgs = {'dulwich'}
installed_pkgs = {pkg.key for pkg in pkg_resources.working_set}
missing_pkgs = required_pkgs - installed_pkgs
if missing_pkgs:
env.Execute('$PYTHONEXE -m pip install dulwich --global-option="--pure"')
from dulwich import porcelain
from dulwich.repo import Repo
def get_firmware_specifier_build_flag():
build_version = porcelain.describe('.') # '.' refers to the repository root dir
build_flag = "-D AUTO_VERSION=\\\"" + build_version + "\\\""
print ("Firmware Revision: " + build_version)
return (build_flag)
def get_firmware_commit_hash():
r = Repo('.')
commit_hash = r.head().decode("utf-8")[0:7]
build_flag = "-D COMMIT_HASH=\\\"" + commit_hash + "\\\""
print ("Commit Hash: " + commit_hash)
return (build_flag)
env.Append(
BUILD_FLAGS=[get_firmware_commit_hash()]
)

View File

@ -3,6 +3,7 @@ import os
import sys
import shutil
import subprocess
import pkg_resources
buildFlags = env.ParseFlags(env['BUILD_FLAGS'])
OUTPUT_DIR = "build_output{}".format(os.path.sep)
@ -11,6 +12,21 @@ platform = env.PioPlatform()
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
FRAMEWORK_DIR = "{}{}".format(FRAMEWORK_DIR, os.path.sep)
required_pkgs = {'dulwich'}
installed_pkgs = {pkg.key for pkg in pkg_resources.working_set}
missing_pkgs = required_pkgs - installed_pkgs
if missing_pkgs:
env.Execute('$PYTHONEXE -m pip install dulwich --global-option="--pure"')
from dulwich import porcelain
from dulwich.repo import Repo
def get_firmware_commit_hash():
r = Repo('.')
commit_hash = r.head().decode("utf-8")[0:7]
print ("Commit Hash: " + commit_hash)
return (commit_hash)
def get_fw_version(source, target, env):
global HASP_VER_MAJ
@ -28,12 +44,17 @@ def get_fw_version(source, target, env):
def copy_merge_bins(source, target, env):
version = 'v' + str(HASP_VER_MAJ) + '.' + str(HASP_VER_MIN) + '.' + str(HASP_VER_REV)
version = 'v' + str(HASP_VER_MAJ) + '.' + str(HASP_VER_MIN) + '.' + str(HASP_VER_REV) + '_' + get_firmware_commit_hash()
name = str(target[0]).split(os.path.sep)[2]
name = name.replace('_4MB', '').replace('_8MB', '').replace('_16MB', '').replace('_32MB', '')
flash_size = env.GetProjectOption("board_upload.flash_size")
bootloader = "{}tools{}sdk{}esp32{}bin{}bootloader_dio_40m.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, os.path.sep, os.path.sep, os.path.sep)
board = env.BoardConfig()
mcu = board.get("build.mcu", "esp32")
bootloader = "{}tools{}sdk{}{}{}bin{}bootloader_dio_40m.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, mcu, os.path.sep, os.path.sep, os.path.sep)
if not os.path.isfile(bootloader):
bootloader = "{}tools{}sdk{}bin{}bootloader_dio_40m.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, os.path.sep, os.path.sep, os.path.sep)
partitions = "{}{}partitions.bin".format(env.subst("$BUILD_DIR"), os.path.sep)
boot_app0 = "{}tools{}partitions{}boot_app0.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, os.path.sep)
firmware_dst ="{}firmware{}{}_full_{}_{}.bin".format(OUTPUT_DIR, os.path.sep, name, flash_size, version)
@ -59,7 +80,7 @@ def copy_merge_bins(source, target, env):
print(firmware_dst)
print(flash_size)
process = subprocess.Popen(['python', 'tools/esptool_with_merge_bin.py', '--chip', 'esp32', 'merge_bin', '--output', firmware_dst, '--flash_mode', 'dio', '--flash_size', flash_size, '0x1000', bootloader, '0x8000', partitions, '0xe000', boot_app0, '0x10000', firmware_src],
process = subprocess.Popen(['python', 'tools/esptool_with_merge_bin.py', '--chip', mcu, 'merge_bin', '--output', firmware_dst, '--flash_mode', 'dio', '--flash_size', flash_size, '0x1000', bootloader, '0x8000', partitions, '0xe000', boot_app0, '0x10000', firmware_src],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
@ -68,7 +89,7 @@ def copy_merge_bins(source, target, env):
print(stderr.decode("utf-8") )
def copy_ota(source, target, env):
version = 'v' + str(HASP_VER_MAJ) + '.' + str(HASP_VER_MIN) + '.' + str(HASP_VER_REV)
version = 'v' + str(HASP_VER_MAJ) + '.' + str(HASP_VER_MIN) + '.' + str(HASP_VER_REV) + '_' + get_firmware_commit_hash()
name =str(target[0]).split(os.path.sep)[2]
name = name.replace('_4MB', '').replace('_8MB', '').replace('_16MB', '').replace('_32MB', '')

View File

@ -67,7 +67,7 @@ lib_deps =
; lv_drivers@~7.9.1
;lv_drivers=https://github.com/littlevgl/lv_drivers/archive/7d71907c1d6b02797d066f50984b866e080ebeed.zip
https://github.com/eclipse/paho.mqtt.c.git
bblanchon/ArduinoJson@^6.19.2 ; Json(l) parser
bblanchon/ArduinoJson@^6.19.3 ; Json(l) parser
https://github.com/fvanroie/lv_drivers
git+https://github.com/lvgl/lv_lib_png.git#release/v7

View File

@ -59,15 +59,15 @@ lib_ignore =
lv_drv_fsmc_ili9341
lv_drivers
AXP192
;LittleFS_esp32 ; for v2
LittleFS_esp32 ; for v2
lib_deps =
;LittleFS_esp32 ; for v1
bodmer/TFT_eSPI@2.4.32
;ESP Async WebServer
;lorol/LittleFS_esp32@^1.0.6 ; for v1
${tft_espi.lib_deps}
git+https://github.com/fvanroie/ConsoleInput.git#dev
extra_scripts =
pre:tools/auto_firmware_version.py
tools/littlefsbuilder.py
tools/esp_merge_bin.py
tools/analyze_elf.py
@ -93,7 +93,7 @@ hspi =
; -- The Arduino ESP32 v1.0.6 with 3 available flash sizes:
[arduino_esp32_v1]
framework = arduino
platform = espressif32@^3.3.2
platform = espressif32@^3.5.0
board_build.embed_files =
data/edit.htm.gz
data/style.css.gz
@ -105,19 +105,19 @@ extra_scripts =
${esp32.extra_scripts}
[esp32_4mb]
extends = exp32, arduino_esp32_v2
extends = esp32, arduino_esp32_v1
board_upload.flash_size=4MB
board_upload.maximum_size = 4194304
board_build.partitions = user_setups/esp32/partitions_4MB.csv
[esp32_8mb]
extends = exp32, arduino_esp32_v2
extends = esp32, arduino_esp32_v1
board_upload.flash_size=8MB
board_upload.maximum_size = 8388608
board_build.partitions = user_setups/esp32/partitions_8MB.csv
[esp32_16mb]
extends = exp32, arduino_esp32_v2
extends = esp32, arduino_esp32_v1
board_upload.flash_size = 16MB
board_upload.maximum_size = 16777216
board_build.partitions = user_setups/esp32/partitions_16MB.csv
@ -126,7 +126,7 @@ board_build.partitions = user_setups/esp32/partitions_16MB.csv
; -- The Arduino ESP32 v2.0.2 with 3 available flash sizes:
[arduino_esp32_v2]
framework = arduino
platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.2/platform-tasmota-espressif32-2.0.2.zip
platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.3/platform-espressif32-2.0.2.3.zip
board_build.embed_files =
data/edit.htm.gz
data/style.css.gz
@ -138,19 +138,19 @@ extra_scripts =
${esp32.extra_scripts}
[esp32_4mb_v2]
extends = exp32, arduino_esp32_v2
extends = esp32, arduino_esp32_v2
board_upload.flash_size=4MB
board_upload.maximum_size = 4194304
board_build.partitions = user_setups/esp32/partitions_4MB.csv
[esp32_8mb_v2]
extends = exp32, arduino_esp32_v2
extends = esp32, arduino_esp32_v2
board_upload.flash_size=8MB
board_upload.maximum_size = 8388608
board_build.partitions = user_setups/esp32/partitions_8MB.csv
[esp32_16mb_v2]
extends = exp32, arduino_esp32_v2
extends = esp32, arduino_esp32_v2
board_upload.flash_size = 16MB
board_upload.maximum_size = 16777216
board_build.partitions = user_setups/esp32/partitions_16MB.csv

View File

@ -33,6 +33,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}
@ -40,7 +41,7 @@ lib_ignore =
;endregion
[env:az-touch-mod-esp32_ili9341_4MB]
extends = az-touch-mod-esp32_ili9341, esp32_4mb
extends = az-touch-mod-esp32_ili9341, esp32_4mb_v2
[env:az-touch-mod-esp32_ili9341_8MB]
extends = az-touch-mod-esp32_ili9341, esp32_8mb
extends = az-touch-mod-esp32_ili9341, esp32_8mb_v2

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:d1-mini-esp32_ili9341]
extends = esp32_4mb
extends = esp32_4mb_v2
board = wemos_d1_mini32
build_flags =
@ -30,6 +30,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -51,10 +51,13 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
;git+https://github.com/s60sc/Adafruit_TouchScreen
adafruit/Adafruit TouchScreen @ ~1.1.2
bodmer/TFT_eSPI @ 2.4.32
; ${tft_espi.lib_deps}
; https://github.com/lovyan03/LovyanGFX.git#1be6600
lorol/LittleFS_esp32@^1.0.6 ; for v1
lib_ignore =
${env.lib_ignore}
${esp32.lib_ignore}
;endregion
;${esp32.lib_ignore}
; TFT_eSPI
;endregion

View File

@ -50,8 +50,13 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
bodmer/TFT_eSPI @ 2.4.32
; ${tft_espi.lib_deps}
; https://github.com/lovyan03/LovyanGFX.git#1be6600
lorol/LittleFS_esp32@^1.0.6 ; for v1
lib_ignore =
${env.lib_ignore}
${esp32.lib_ignore}
;endregion
;${esp32.lib_ignore}
; TFT_eSPI
;endregion

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:d1-r32-waveshare_ili9486]
extends = esp32_4mb
extends = esp32_4mb_v2
board = wemos_d1_mini32
build_flags =
@ -40,6 +40,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -5,7 +5,7 @@
;***************************************************;
[env:esp32dev-ili9488]
extends = esp32_4mb
extends = esp32_4mb_v2
board = esp32dev
build_flags =
@ -41,6 +41,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:esp32dev-mrb3511]
extends = esp32_4mb
extends = esp32_4mb_v2
board = esp32dev
build_flags =
@ -43,10 +43,10 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
adafruit/Adafruit GFX Library @ ^1.10.3
adafruit/Adafruit BusIO @ ^1.6.0
; GT911 touch screen driver
git+https://github.com/netwizeBE/arduino-goodix.git
${tft_espi.lib_deps}
${goodix.lib_deps}
; adafruit/Adafruit GFX Library @ ^1.10.3
; adafruit/Adafruit BusIO @ ^1.6.0
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:esp32-one_st7796]
extends = esp32_4mb
extends = esp32_4mb_v2
board = esp32dev
build_flags =
@ -36,6 +36,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -5,7 +5,7 @@
;***************************************************;
[env:esp32-touchdown]
extends = esp32_4mb
extends = esp32_4mb_v2
board = esp32dev
build_flags =
@ -44,7 +44,8 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
git+https://github.com/aselectroworks/Arduino-FT6336U.git
${tft_espi.lib_deps}
${ft6336.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:esp32cam-st7796]
extends = esp32_4mb
extends = esp32_4mb_v2
board = esp32cam
;ESP32 CAM PINS
@ -33,6 +33,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -43,6 +43,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}
@ -50,7 +51,7 @@ lib_ignore =
;endregion
[env:freetouchdeck_4MB]
extends = freetouchdeck, esp32_4mb
extends = freetouchdeck, esp32_4mb_v2
[env:freetouchdeck_8MB]
extends = freetouchdeck, esp32_8mb
extends = freetouchdeck, esp32_8mb_v2

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:huzzah32-featherwing-24]
extends = esp32_4mb
extends = esp32_4mb_v2
board = featheresp32
build_flags =
@ -30,7 +30,8 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
adafruit/Adafruit STMPE610@^1.1.4 ;STMPE610 touch controller
${tft_espi.lib_deps}
${stmpe610.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:huzzah32-featherwing-35]
extends = esp32_4mb
extends = esp32_4mb_v2
board = featheresp32
build_flags =
@ -31,7 +31,8 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
adafruit/Adafruit STMPE610@^1.1.4 ;STMPE610 touch controller
${tft_espi.lib_deps}
${stmpe610.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:lanbon_l8]
extends = esp32_8mb
extends = esp32_8mb_v2
board = esp32dev
build_flags =
@ -44,12 +44,14 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
; FT6336U is 6x faster then FocalTech Library
;git+https://github.com/lewisxhe/FocalTech_Library.git
git+https://github.com/aselectroworks/Arduino-FT6336U.git
${ft6336.lib_deps}
lib_ignore =
${env.lib_ignore}
${esp32.lib_ignore}
ESP32 BLE Arduino
LittleFS_esp32
;endregion

View File

@ -8,7 +8,7 @@
; !! This board already defines TFT_CS, TFT_DC and TFT_RST !!
[env:lolin-d32-pro_ili9341]
extends = esp32_16mb
extends = esp32_16mb_v2
board = lolin_d32_pro
build_flags =
@ -33,6 +33,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:m5stack-core2]
extends = esp32_16mb
extends = esp32_16mb_v2
board = esp32dev
build_flags =
@ -36,7 +36,8 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
git+https://github.com/aselectroworks/Arduino-FT6336U.git
${tft_espi.lib_deps}
${ft6336.lib_deps}
https://github.com/fvanroie/M5Core2.git#AXP192
lib_ignore =

View File

@ -5,7 +5,7 @@
;***************************************************;
[env:makerfabs-tft35-cap]
extends = esp32_16mb
extends = esp32_16mb_v2
board = esp32dev
build_flags =
@ -40,7 +40,8 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
git+https://github.com/aselectroworks/Arduino-FT6336U.git
${tft_espi.lib_deps}
${ft6336.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:nodemcu32s-raspi]
extends = esp32_4mb
extends = esp32_4mb_v2
board = nodemcu-32s
build_flags =
@ -31,6 +31,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -7,7 +7,7 @@
;***************************************************;
[env:ttgo_esp32_poe-ili9341]
extends = esp32_4mb
extends = esp32_4mb_v2
board = esp32dev
build_flags =
@ -36,6 +36,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:ttgo-lilygo-pi_ili9481]
extends = esp32_16mb
extends = esp32_16mb_v2
board = esp32dev
#platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream
@ -55,11 +55,10 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${lovyangfx.lib_deps}
${goodix.lib_deps}
adafruit/Adafruit GFX Library @ ^1.10.3
adafruit/Adafruit BusIO @ ^1.6.0
; GT911 touch screen driver
; git+https://github.com/netwizeBE/arduino-goodix.git
lovyan03/LovyanGFX @ ^0.4.12
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:ttgo-lilygo-pi_st7796]
extends = esp32_16mb
extends = esp32_16mb_v2
board = esp32dev
build_flags =
@ -49,12 +49,10 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${lovyangfx.lib_deps}
${ft6336.lib_deps}
adafruit/Adafruit GFX Library @ ^1.10.3
adafruit/Adafruit BusIO @ ^1.6.0
; GT911 touch screen driver
; git+https://github.com/netwizeBE/arduino-goodix.git
; git+https://github.com/aselectroworks/Arduino-FT6336U.git
lovyan03/LovyanGFX @ ^0.4.12
lib_ignore =
${env.lib_ignore}

View File

@ -6,7 +6,7 @@
;***************************************************;
[env:ttgo-t7-v1.5_ili9341]
extends = esp32_4mb
extends = esp32_4mb_v2
board = esp32dev
build_flags =
@ -33,6 +33,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
${tft_espi.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -39,7 +39,8 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
git+https://github.com/aselectroworks/Arduino-FT6336U.git
${tft_espi.lib_deps}
${ft6336.lib_deps}
lib_ignore =
${env.lib_ignore}
@ -47,7 +48,7 @@ lib_ignore =
;endregion
[env:wt32-sc01_4MB]
extends = wt32-sc01, esp32_4mb
extends = wt32-sc01, esp32_4mb_v2
[env:wt32-sc01_16MB]
extends = wt32-sc01, esp32_16mb
extends = wt32-sc01, esp32_16mb_v2

View File

@ -18,6 +18,7 @@ build_flags =
;region -- TFT_eSPI build options ------------------------
-D USER_SETUP_LOADED=1
;-D LGFX_USE_V1=1
-D ST7796_DRIVER=1
-D ESP32_PARALLEL=1
-D TFT_ROTATION=0 ; 0=0, 1=90, 2=180 or 3=270 degree
@ -56,9 +57,14 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32.lib_deps}
git+https://github.com/netwizeBE/arduino-goodix.git
bodmer/TFT_eSPI @ 2.4.32
; ${tft_espi.lib_deps}
${goodix.lib_deps}
; https://github.com/lovyan03/LovyanGFX.git#1be6600
lorol/LittleFS_esp32@^1.0.6 ; for v1
lib_ignore =
${env.lib_ignore}
${esp32.lib_ignore}
;${esp32.lib_ignore}
; TFT_eSPI
;endregion

View File

@ -67,13 +67,13 @@ lib_ignore =
AXP192
lib_deps =
bodmer/TFT_eSPI@2.4.32
${tft_espi.lib_deps}
;ESP Async WebServer
git+https://github.com/fvanroie/ConsoleInput.git#dev
ps_ram =
-DBOARD_HAS_PSRAM
-mfix-esp32-psram-cache-issue ; uses 24kB
;-mfix-esp32-psram-cache-issue ; uses 24kB
extra_scripts =
tools/littlefsbuilder.py

View File

@ -45,8 +45,8 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32s2.lib_deps}
adafruit/Adafruit STMPE610@^1.1.4 ;STMPE610 touch controller
lovyan03/LovyanGFX @ ^0.4.12
${stmpe610.lib_deps}
${lovyangfx.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -59,8 +59,8 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32s2.lib_deps}
adafruit/Adafruit STMPE610@^1.1.4 ;STMPE610 touch controller
lovyan03/LovyanGFX @ ^0.4.12
${stmpe610.lib_deps}
${lovyangfx.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -47,7 +47,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32s2.lib_deps}
lovyan03/LovyanGFX @ ^0.4.12
${lovyangfx.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -7,7 +7,7 @@
[env:s2-mini-esp32s2_ili9341]
extends = esp32s2_4mb_v2
board = esp32s2
board = esp32s2_solo1
build_flags =
${env.build_flags}
@ -45,7 +45,7 @@ build_flags =
lib_deps =
${env.lib_deps}
${esp32s2.lib_deps}
lovyan03/LovyanGFX @ ^0.4.12
${lovyangfx.lib_deps}
lib_ignore =
${env.lib_ignore}

View File

@ -2,7 +2,7 @@
; Wireless-Tag WT-86-32-3ZW1 ;
; - custom ESP32-S2 pcb ;
; - ili9488 TFT 8-bit ;
; - gls1680 touch controller ;
; - gsl1680 touch controller ;
;***************************************************;
[env:wt-86-32-3zw1]
@ -45,20 +45,22 @@ build_flags =
-D LGFX_USE_V1=1
-D SUPPORT_TRANSACTIONS
-D SPI_TOUCH_FREQUENCY=2500000
-D TOUCH_DRIVER=0x1680 ; GLS1680 Capacitive I2C touch panel driver
-D TOUCH_DRIVER=0x1680 ; GSL1680 Capacitive I2C touch panel driver
-D I2C_TOUCH_PORT=0
-D I2C_TOUCH_ADDRESS=0x40
-D I2C_TOUCH_FREQUENCY=400000
-D BACKLIGHT_FREQUENCY=2000
;endregion
;region -- Library options -------------------------------
lib_deps =
${env.lib_deps}
${esp32s2.lib_deps}
${gsl1680.lib_deps}
;lovyan03/LovyanGFX @ ^0.4.14
https://github.com/lovyan03/LovyanGFX.git#1be6600
git+https://github.com/arovak/GSL2038.git
lib_ignore =
${env.lib_ignore}

View File

@ -61,7 +61,7 @@ lib_deps =
;lv_drivers@~7.9.0
;lv_drivers=https://github.com/littlevgl/lv_drivers/archive/7d71907c1d6b02797d066f50984b866e080ebeed.zip
https://github.com/eclipse/paho.mqtt.c.git
bblanchon/ArduinoJson@^6.19.2 ; Json(l) parser
bblanchon/ArduinoJson@^6.19.3 ; Json(l) parser
https://github.com/fvanroie/lv_drivers
lib_ignore =

View File

@ -92,7 +92,7 @@ lib_deps =
;lv_drivers@~7.9.0
;lv_drivers=https://github.com/littlevgl/lv_drivers/archive/7d71907c1d6b02797d066f50984b866e080ebeed.zip
https://github.com/eclipse/paho.mqtt.c.git
bblanchon/ArduinoJson@^6.19.2 ; Json(l) parser
bblanchon/ArduinoJson@^6.19.3 ; Json(l) parser
https://github.com/fvanroie/lv_drivers
lib_ignore =