feat: FTP server with Wi-Fi, NTP, LVGL UI — initial working build

- Rewrite main.cpp: SD_MMC mount, Wi-Fi from JSON, NTP Vienna, FTP server
- Add ui.h/ui.cpp: LVGL status screen (IP, FTP status, SD bar, time)
- Add build_framework_libs.py: dynamic ESP32 Core 3.x lib resolution
- Remove unused sensor libs (IMU, magnetometer, fuel gauge, charger)
- Add SimpleFTPServer + ArduinoJson dependencies
- Build succeeds: RAM 19.2%, Flash 4.2%
This commit is contained in:
Lago
2026-04-03 14:13:09 +02:00
parent a3d9840a92
commit 4510cfe16c
6 changed files with 688 additions and 202 deletions
+11 -12
View File
@@ -8,8 +8,9 @@
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
; ==============================================================
; BaseApp for Kode Dot (ESP32S3)
; Builds Arduino firmware and flashes app only (keeps bootloader/partitions).
; FTP Explorer for Kode Dot (ESP32S3)
; FTP server serving the microSD card over Wi-Fi.
; Flashes app only (keeps bootloader/partitions).
; ==============================================================
[platformio]
; Default environment
@@ -24,7 +25,7 @@ board = kode_dot
framework = arduino
lib_compat_mode = off
monitor_speed = 115200
lib_ldf_mode = chain+
lib_ldf_mode = deep+
; Serial monitor filters
monitor_filters = time, esp32_exception_decoder
; Build flags
@@ -35,6 +36,8 @@ build_flags =
-Wl,--wrap=esp_ota_mark_app_valid_cancel_rollback
; Enable LVGL simple include
-DLV_CONF_INCLUDE_SIMPLE
; FTP server storage type: SD_MMC
-DDEFAULT_STORAGE_TYPE_ESP32=STORAGE_SD_MMC
; Suppress deprecation warnings
-Wno-deprecated-declarations
; Allow #warning without failing build
@@ -42,24 +45,20 @@ build_flags =
; Suppress narrowing conversion warnings
-Wno-narrowing
; Pre-build scripts
extra_scripts = pre:extra_scripts/auto_port.py, pre:extra_scripts/rename_bin.py
extra_scripts = pre:extra_scripts/auto_port.py, pre:extra_scripts/rename_bin.py, pre:extra_scripts/build_framework_libs.py
upload_protocol = custom
upload_port = auto
monitor_port = auto
upload_port = COM10
monitor_port = COM10
upload_speed = 460800
; Flash app at 0x400000 (preserve bootloader/partitions)
upload_command = esptool --chip esp32s3 --port ${UPLOAD_PORT} --baud ${UPLOAD_SPEED} write-flash --flash-freq 80m --flash-mode dio --flash-size 32MB 0x400000 "${BUILD_DIR}/${PROGNAME}.bin"
; Libraries
lib_deps =
adafruit/Adafruit BusIO @ ^1.15.0
adafruit/Adafruit Unified Sensor @ ^1.1.4
moononournation/GFX Library for Arduino @ ^1.6.0
lvgl/lvgl @ ^8.3.9
adafruit/Adafruit NeoPixel
https://github.com/RobTillaart/TCA9555.git#0.4.3
adafruit/Adafruit LSM6DS @ ^4.7.4
adafruit/Adafruit LIS2MDL @ ^2.1.8
adafruit/Adafruit MAX1704X @ ^1.0.3
https://github.com/bitbank2/bb_captouch.git
https://github.com/andhieSetyabudi/BQ25896.git
https://github.com/xreef/SimpleFTPServer.git
bblanchon/ArduinoJson @ ^7