-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathplatformio.ini
More file actions
107 lines (94 loc) · 4.09 KB
/
Copy pathplatformio.ini
File metadata and controls
107 lines (94 loc) · 4.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
; =============================================================================
; SonosESP — PlatformIO project
; ONE project, ONE codebase. Each SCREEN is a build environment ([env:...]) below.
; Shared settings live in [env]; each screen only adds what differs (-DSCREEN_SIZE
; + which panel driver to ignore). config.h resolves dims/pins from SCREEN_SIZE.
;
; pio run -e esp32_4inch -t upload # 4" (working)
; pio run -e esp32_7inch -t upload # 7" (PLACEHOLDER / WIP — see below)
;
; `pio run` with no -e builds only the default (4") via default_envs.
; See docs/MULTI_SCREEN_SUPPORT.md.
; =============================================================================
[platformio]
default_envs = esp32_4inch
; =============================================================================
; [env] — settings SHARED by every screen variant
; =============================================================================
[env]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.38/platform-espressif32.zip
board = esp32-p4
framework = arduino
; === FLASH & STORAGE ===
board_upload.flash_size = 16MB
board_build.partitions = default_16MB.csv
board_build.flash_mode = qio
board_build.f_flash = 80000000L ; 80MHz flash speed (max for QIO)
; === PSRAM (32MB OPI) ===
board_build.psram_type = opi
board_build.f_psram = 200000000L ; 200MHz PSRAM speed (OPI max)
; === CPU FREQUENCY ===
board_build.f_cpu = 400000000L ; 400MHz dual-core RISC-V (official max per datasheet)
lib_ldf_mode = deep
lib_archive = false
extra_scripts =
pre:scripts/remove_lvgl_asm.py
pre:scripts/use_ccache.py ; no-op unless CI sets USE_CCACHE=1 (graceful)
pre:scripts/patch_gt911_bounds.py ; clamps an unbounded loop in TAMC_GT911 (see script header)
; Shared build flags. The per-screen -DSCREEN_SIZE is added in each env below
; (via ${env.build_flags} — build_flags do NOT auto-merge across sections).
build_flags =
-DBOARD_HAS_PSRAM
-DARDUINO_USB_CDC_ON_BOOT=1
-DARDUINO_USB_MODE=1
-DCORE_DEBUG_LEVEL=0
-DLV_CONF_INCLUDE_SIMPLE
-I.
; Optimization flags for RISC-V dual-core
-O3
-ffunction-sections
-fdata-sections
; PSRAM XIP (Execute In Place) — uncomment to test: -DCONFIG_SPIRAM_XIP_FROM_PSRAM=1
; LVGL ASM disabled (RISC-V, not ARM)
-DLV_USE_DRAW_SW_ASM=LV_DRAW_SW_ASM_NONE
-DLV_USE_DRAW_SW_ASM_HELIUM=0
-DLV_USE_DRAW_SW_ASM_NEON=0
-Wno-deprecated-declarations
-Wno-attributes
; ESP-IDF component access for PPA driver
-Wl,-Map,firmware.map
; Reduce mbedTLS buffer sizes to save DMA memory for OTA (prevents SDIO crashes)
-DCONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-DCONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
build_unflags =
build_src_filter =
+<*>
+<screens/*>
+<fonts/*.c>
-<.git/>
-<.svn/>
upload_speed = 460800
monitor_speed = 115200
monitor_filters = esp32_exception_decoder
lib_deps =
lvgl/lvgl@^9.5.0
tamctec/TAMC_GT911@^1.0.2
bblanchon/ArduinoJson@^7.4.3
bitbank2/PNGdec@^1.1.6
bitbank2/JPEGDEC@^1.8.4
; =============================================================================
; 4" — GUITION JC4880P433C (ST7701, 800x480) [ WORKING ]
; =============================================================================
[env:esp32_4inch]
build_flags = ${env.build_flags} -DSCREEN_SIZE=4
lib_ignore = jd9165_lcd ; 7" panel driver — not used on the 4"
; =============================================================================
; 7" — GUITION JC1060P470C (JD9165, 1024x600) [ CODE-COMPLETE / UNTESTED ]
; Panel driver ported (lib/jd9165_lcd, native 1024x600 landscape, no rotation)
; and the UI is resolution-relative (include/ui_scale.h), so this env BUILDS and
; LINKS cleanly. NOT yet validated on physical 7" hardware. See
; lib/jd9165_lcd/README.md and docs/MULTI_SCREEN_SUPPORT.md.
; =============================================================================
[env:esp32_7inch]
build_flags = ${env.build_flags} -DSCREEN_SIZE=7
lib_ignore = st7701_lcd ; 4" panel driver — not used on the 7"