mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-10-09 03:06:39 +00:00
Map screen (Home > Map): Web-Mercator tiles from /maps/{z}/{x}/{y}.png on
the card (Meshtastic MUI layout; per-column TPK1 .pak also read), drag to
pan, +/- zoom, re-centre/follow GPS, Nearby nodes with a position as
markers opening node detail. Tiles decode one per loop pass into a
12-slot RGB565 cache in PSRAM. map/TileProvider.h is the swap point for a
later vector renderer: the screen only calls renderTile(). The tile set's
credit line comes from maps/attribution.txt.
L2 mounts the card over SDMMC 1-bit (CLK 2, CMD 3, D0 1). LVGL's lodepng
is enabled; note its LVGL patch returns an lv_draw_buf_t*, not pixels.
LVGL pool 2 MB for PNG decoding. Fonts gain map / users icons.
tools/maps/fetch_tiles.py prepares a card for an area (presets for
Poland), requires an explicit tile URL (tile.openstreetmap.org blocks
offline use) and stops on placeholder images. The LVGL sim preloads
web/maps into the L2's /sdcard and puts its GPS on Kraków.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
70 lines
2.5 KiB
INI
70 lines
2.5 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.
|
|
;
|
|
; BRING-UP ONLY: this env runs the existing ui-new (OLED-era, joystick-driven)
|
|
; UI zoomed 2x (160x120 logical on the 320x240 panel) purely to compile-test
|
|
; and smoke-test the board layer -- display, radio, GPS, battery. It has no
|
|
; touch input yet; the only control is the BOOT button. The real interface for
|
|
; this board is the planned LVGL frontend over a shared UI Core.
|
|
;
|
|
; Deliberately NOT named *_solo_dual yet, so build-solo-firmwares.yml doesn't
|
|
; publish it as a release artifact.
|
|
[env:Wio_Tracker_L2_companion_solo_bringup]
|
|
extends = Wio_Tracker_L2
|
|
build_flags =
|
|
${Wio_Tracker_L2.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D DISPLAY_CLASS=WioTrackerL2Display
|
|
-D UI_ZOOM=2
|
|
-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.17.1"'
|
|
-D OLED_MISC_FIXED_FONT=1
|
|
-D AUTO_OFF_MILLIS=60000
|
|
build_src_filter = ${Wio_Tracker_L2.build_src_filter}
|
|
+<helpers/esp32/*.cpp>
|
|
+<helpers/ui/LGFXDisplay.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${Wio_Tracker_L2.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
; ui-lvgl skeleton: the real L2 interface -- LVGL 9 frontend over the shared UI
|
|
; Core (docs/development/ui-core.md, step 5). Not *_solo_dual yet (no release).
|
|
[env:Wio_Tracker_L2_companion_solo_lvgl]
|
|
extends = Wio_Tracker_L2
|
|
build_flags =
|
|
${Wio_Tracker_L2.build_flags}
|
|
-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.17.1"'
|
|
-D AUTO_OFF_MILLIS=60000
|
|
build_src_filter = ${Wio_Tracker_L2.build_src_filter}
|
|
+<helpers/esp32/*.cpp>
|
|
+<helpers/ui/LGFXDisplay.cpp>
|
|
+<helpers/ui/MomentaryButton.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.2.2 ; pinned: bump deliberately, re-test on hardware
|
|
SD_MMC ; map tiles on the microSD (framework library)
|
|
FS
|