Files
MeshCore-Solo/solo/wio-tracker-l2/platformio.ini
T
2026-10-15 14:07:52 +02:00

90 lines
4.6 KiB
INI

; Solo build for Seeed Wio Tracker L2 -- extends the board base defined in
; variants/wio-tracker-l2/platformio.ini. Solo configs live in their own
; top-level solo/ folder, separate from the shared upstream board variants.
;
; ui-lvgl: the real L2 interface -- LVGL 9 frontend over the shared UI Core
; (docs/solo/developer/ui-core.md, step 5), on Arduino-ESP32 3.3.12 / ESP-IDF 5.5
; (pioarduino). *_solo_lvgl envs are published by build-solo-firmwares.yml
; (merged image + the -ota.bin that Settings > Firmware update installs).
[env:Wio_Tracker_L2_companion_solo_lvgl]
extends = Wio_Tracker_L2
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.312-1/platform-espressif32.zip
; USB through TinyUSB, not the chip's USB-Serial/JTAG: the serial port stays
; (CDC, reset-to-flash by the 1200 bps touch) and the SD card can be lent to
; a computer as a USB drive (ui-lvgl/LvglPort.h). A firmware that crashes
; early may need BOOT held over reset to flash.
build_unflags = -DARDUINO_USB_MODE=1
; Bigger CPU caches and other ESP-IDF options (idf/sdkconfig): the framework
; libs are rebuilt for them. Build Wio_Tracker_L2_idf_libs first (see there).
custom_sdkconfig = file://solo/wio-tracker-l2/idf/sdkconfig
build_flags =
${Wio_Tracker_L2.build_flags}
-D ARDUINO_USB_MODE=0
-I examples/companion_radio/ui-lvgl
-D DISPLAY_CLASS=WioTrackerL2Display
-D UI_ZOOM=1
-D LV_CONF_INCLUDE_SIMPLE
-D MAX_CONTACTS=350
-D MAX_GROUP_CHANNELS=40
-D BLE_PIN_CODE=123456
-D DUAL_SERIAL=1
-D OFFLINE_QUEUE_SIZE=256
-D FIRMWARE_SOLO_BUILD=1
-D MESHCORE_VERSION='"1.18.0"'
-D AUTO_OFF_MILLIS=60000
-D MESH_IN_PSRAM=1 ; frees ~120 KB internal RAM for WiFi/TLS map downloads
-D PIN_BUZZER=-1 ; no piezo pin: the speaker plays through the codec
-D BUZZER_I2S
-D OTA_ASSET_SUFFIX='"-Wio-Tracker-L2-ota.bin"' ; Settings > Firmware update
; Sized for the PSRAM (UiCore is heap-allocated, so these land there);
; the defaults in the headers are the nRF52 boards'.
-D TRAIL_CAPACITY=32768 ; 512 KB (+512 KB of map drawing buffers): ~160 km at 5 m
-D TRAIL_SIMPLIFY=0 ; every point kept: no straight-run simplification
-D TRAIL_FIXED_MIN_DELTA_M=5 ; a fixed GPS-jitter gate instead of the point spacing setting
-D WAYPOINT_CAPACITY=64
-D HIST_CH_MAX=256 ; all channels together, ~50 KB
-D HIST_DM_MAX=128 ; all DMs together, ~27 KB
-D NEARBY_MAX=64
-D HIST_ARCHIVE ; message history also on the SD card (ui-lvgl/HistoryStore.h)
-D GPS_SKYVIEW ; satellites / signal / DOPs for the GPS screen (helpers/sensors/GpsSky.h)
-D ESP32_LITTLEFS ; internal flash as LittleFS, not SPIFFS (helpers/esp32/InternalFS.h)
-D ENABLE_SCREENSHOT ; the screen over USB for the site's tools (RGB565, UITask::captureFrame)
-DUI_FLUSH_DMA ; the panel fed by DMA while LVGL draws, in its byte order (ui-lvgl/LvglPort.h)
build_src_filter = ${Wio_Tracker_L2.build_src_filter}
+<helpers/esp32/*.cpp>
+<helpers/ui/LGFXDisplay.cpp>
+<helpers/ui/MomentaryButton.cpp>
+<helpers/ui/buzzer.cpp>
+<../examples/companion_radio/*.cpp>
+<../examples/companion_radio/ui-lvgl/*.cpp>
+<../examples/companion_radio/ui-lvgl/fonts/*.c>
lib_deps =
${Wio_Tracker_L2.lib_deps}
densaugeo/base64 @ ~1.4.0
lvgl/lvgl @ 9.6.0 ; pinned: bump deliberately, re-test on hardware
bitbank2/PNGdec @ 1.1.6 ; map tiles: PNG straight to RGB565, a row at a time (ui-lvgl/TilePng.cpp)
SD_MMC ; map tiles on the microSD (framework libraries from here on)
FS
WiFi ; on-device map download, live tiles, OTA
HTTPClient
NetworkClientSecure ; 3.x name of WiFiClientSecure (the header is still there)
Preferences
Update ; Settings > Firmware update
LittleFS
; Rebuilds the framework libs (ESP-IDF) with the custom_sdkconfig above; the
; firmware env above then links them. Run once before it, and again after a
; custom_sdkconfig change (pio run -e Wio_Tracker_L2_idf_libs). Needed because
; pioarduino's rebuild pass compiles the env's own sources without its include
; paths and libraries, which fails for ours; this env's only source is the
; stub sketch pioarduino puts in .dummy/. idf/ supplies the TinyUSB options.
[env:Wio_Tracker_L2_idf_libs]
platform = ${env:Wio_Tracker_L2_companion_solo_lvgl.platform}
board = seeed_wio_tracker_l2
framework = arduino
custom_sdkconfig = ${env:Wio_Tracker_L2_companion_solo_lvgl.custom_sdkconfig}
board_build.cmake_extra_args = -DEXTRA_COMPONENT_DIRS=${platformio.src_dir}/../.dummy;${platformio.packages_dir}/framework-arduinoespressif32;${platformio.src_dir}/../solo/wio-tracker-l2/idf
lib_deps =
lib_ldf_mode = off
build_src_filter = +<../.dummy/*>