Integrate SDK-based RTC and IMU backends as alternatives to direct hardware access. HalClock now attempts SDK RTC initialization and caches time values for reliability. HalTiltSensor adds SDK IMU backend with fallback logic. ClockOffsetActivity gains touch and swipe gesture support for field navigation.
175 lines
5.8 KiB
INI
175 lines
5.8 KiB
INI
[platformio]
|
|
default_envs = default
|
|
build_cache_dir = .cache
|
|
extra_configs = platformio.local.ini
|
|
|
|
[crosspoint]
|
|
version = 1.3.0
|
|
|
|
[base]
|
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip
|
|
board = esp32-c3-devkitm-1
|
|
framework = arduino
|
|
monitor_speed = 115200
|
|
upload_speed = 921600
|
|
check_tool = cppcheck
|
|
check_flags = --enable=all --suppress=missingIncludeSystem --suppress=unusedFunction --suppress=unmatchedSuppression --suppress=*:*/.pio/* --inline-suppr
|
|
check_skip_packages = yes
|
|
|
|
board_upload.flash_size = 16MB
|
|
board_upload.maximum_size = 16777216
|
|
board_upload.offset_address = 0x10000
|
|
|
|
build_flags =
|
|
-DARDUINO_USB_MODE=1
|
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
|
-DEINK_DISPLAY_SINGLE_BUFFER_MODE=1
|
|
-DDISABLE_FS_H_WARNING=1
|
|
-DDESTRUCTOR_CLOSES_FILE=1
|
|
# https://libexpat.github.io/doc/api/latest/#XML_GE
|
|
-DXML_GE=0
|
|
-DXML_CONTEXT_BYTES=1024
|
|
-std=gnu++2a
|
|
# Enable UTF-8 long file names in SdFat
|
|
-DUSE_UTF8_LONG_NAMES=1
|
|
# Increase PNG scanline buffer to support up to 2048px wide images
|
|
# Default is (320*4+1)*2=2562, we need more for larger images
|
|
-DPNG_MAX_BUFFERED_PIXELS=16416
|
|
-Wno-bidi-chars
|
|
-Wl,--wrap=panic_print_backtrace,--wrap=panic_abort,--wrap=bootloader_common_check_efuse_blk_validity
|
|
-fno-exceptions
|
|
|
|
build_unflags =
|
|
-std=gnu++11
|
|
-fexceptions
|
|
|
|
; Board configuration
|
|
board_build.flash_mode = dio
|
|
board_build.flash_size = 16MB
|
|
board_build.partitions = partitions.csv
|
|
|
|
extra_scripts =
|
|
pre:scripts/build_html.py
|
|
pre:scripts/gen_i18n.py
|
|
pre:scripts/git_branch.py
|
|
pre:scripts/patch_jpegdec.py
|
|
post:scripts/register_unit_tests_target.py
|
|
|
|
; Libraries — FreeInk SDK (git submodule at ./freeink-sdk). The left-hand names
|
|
; are the include paths the firmware already uses (<EInkDisplay.h>, etc.); FreeInk's
|
|
; compat shim preserves them. BoardConfig + PowerManager are FreeInk-only and
|
|
; required (device profiles + the SoC-correct deep-sleep wakeup the HAL relies on).
|
|
lib_deps =
|
|
BatteryMonitor=symlink://freeink-sdk/libs/hardware/BatteryMonitor
|
|
InputManager=symlink://freeink-sdk/libs/hardware/InputManager
|
|
EInkDisplay=symlink://freeink-sdk/libs/display/FreeInkDisplay
|
|
SDCardManager=symlink://freeink-sdk/libs/hardware/SDCardManager
|
|
BoardConfig=symlink://freeink-sdk/libs/hardware/BoardConfig
|
|
PowerManager=symlink://freeink-sdk/libs/hardware/PowerManager
|
|
Rtc=symlink://freeink-sdk/libs/hardware/Rtc
|
|
Imu=symlink://freeink-sdk/libs/hardware/Imu
|
|
Icons=symlink://freeink-sdk/libs/assets/Icons
|
|
bblanchon/ArduinoJson @ 7.4.2
|
|
ricmoo/QRCode @ 0.0.1
|
|
bitbank2/PNGdec @ 1.1.6
|
|
https://github.com/bitbank2/JPEGDEC.git#86282979224c8a32fd51e091ed5a35b0c699a52b
|
|
links2004/WebSockets @ 2.7.3
|
|
|
|
; ESP32-C3 device set: X3 + X4 compiled into one binary, runtime-selected after
|
|
; the I2C fingerprint. FreeInk requires an explicit device selection, so the C3
|
|
; envs extend this instead of [base] directly. (M5Paper is a different MCU family
|
|
; and selects its own device below.)
|
|
[c3]
|
|
extends = base
|
|
build_flags =
|
|
${base.build_flags}
|
|
-DFREEINK_DEVICE_X3=1
|
|
-DFREEINK_DEVICE_X4=1
|
|
|
|
[env:default]
|
|
extends = c3
|
|
build_flags =
|
|
${c3.build_flags}
|
|
; CROSSPOINT_VERSION is set by scripts/git_branch.py (includes branch + short SHA)
|
|
-DENABLE_SERIAL_LOG
|
|
-DLOG_LEVEL=2 ; Set log level to debug for development builds
|
|
|
|
|
|
[env:gh_release]
|
|
extends = c3
|
|
build_flags =
|
|
${c3.build_flags}
|
|
-DCROSSPOINT_VERSION=\"${crosspoint.version}\"
|
|
-DENABLE_SERIAL_LOG
|
|
-DLOG_LEVEL=1 ; Set log level to info for release builds
|
|
|
|
[env:gh_release_rc]
|
|
extends = c3
|
|
build_flags =
|
|
${c3.build_flags}
|
|
-DCROSSPOINT_VERSION=\"${crosspoint.version}-rc+${sysenv.CROSSPOINT_RC_HASH}\"
|
|
-DENABLE_SERIAL_LOG
|
|
-DLOG_LEVEL=1 ; Set log level to info for release candidate builds
|
|
|
|
[env:slim]
|
|
extends = c3
|
|
build_flags =
|
|
${c3.build_flags}
|
|
-DCROSSPOINT_VERSION=\"${crosspoint.version}-slim\"
|
|
; serial output is disabled in slim builds to save space
|
|
-UENABLE_SERIAL_LOG
|
|
|
|
; --- LilyGo T5 S3 (ESP32-S3 N16R8, 4.7" ED047TC1 / raw-parallel EPD) ---------
|
|
; Uses FreeInk's LilyGo board-support library for the PCA9535/TPS65185 display
|
|
; power hooks and expander button.
|
|
; pio run -e lilygo_t5s3 -t upload --upload-port /dev/tty.usbmodemXXXX
|
|
[env:lilygo_t5s3]
|
|
extends = base
|
|
board = esp32-s3-devkitc1-n16r8
|
|
board_build.mcu = esp32s3
|
|
board_build.flash_mode = qio
|
|
board_build.arduino.memory_type = qio_opi
|
|
build_flags =
|
|
${base.build_flags}
|
|
-DBOARD_HAS_PSRAM
|
|
-DFREEINK_DEVICE_LILYGO=1
|
|
-DCROSSPOINT_VERSION=\"${crosspoint.version}-lilygo_t5s3\"
|
|
-DCROSSPOINT_SHOW_BUTTON_HINTS=0
|
|
-DENABLE_SERIAL_LOG
|
|
-DLOG_LEVEL=2
|
|
-DTOUCH_PROBE_DEBUG=1
|
|
lib_deps =
|
|
${base.lib_deps}
|
|
BoardT5S3=symlink://freeink-sdk/libs/hardware/BoardT5S3
|
|
m5stack/M5GFX @ 0.2.20
|
|
|
|
; --- M5Paper v1.1 (classic ESP32-D0WDQ6, 4.7" 540x960 / IT8951E) -------------
|
|
; Different MCU family than the C3 base: override board/mcu/flash, disable the
|
|
; C3-only native-USB CDC (logs over UART0), and select the M5Paper device.
|
|
; pio run -e m5paper_v11 -t upload --upload-port /dev/tty.usbserial-XXXX
|
|
[env:m5paper_v11]
|
|
extends = base
|
|
board = esp32dev
|
|
board_build.mcu = esp32
|
|
board_build.flash_mode = qio
|
|
; CP2104 bridge: 460800 is ~4x the 115200 fallback and reliable; drop if a flash
|
|
; stalls. (921600 usually works too.)
|
|
upload_speed = 460800
|
|
build_flags =
|
|
${base.build_flags}
|
|
-UARDUINO_USB_MODE
|
|
-UARDUINO_USB_CDC_ON_BOOT
|
|
-DBOARD_HAS_PSRAM
|
|
-DFREEINK_DEVICE_M5PAPER=1
|
|
; git_branch.py only injects CROSSPOINT_VERSION for the default env; set it here.
|
|
-DCROSSPOINT_VERSION=\"${crosspoint.version}-m5paper_v11\"
|
|
-DENABLE_SERIAL_LOG
|
|
-DLOG_LEVEL=2
|
|
; Touch + rotary: no physical button row, so hide on-screen button hints.
|
|
-DCROSSPOINT_SHOW_BUTTON_HINTS=0
|
|
; Archive-order workarounds for the classic-ESP32 link (see freeink-sdk
|
|
; platformio.crosspoint.sample.ini): force Arduino startup + the I2C HAL members.
|
|
-Wl,.pio/build/m5paper_v11/FrameworkArduino/main.cpp.o
|
|
-Wl,-u,i2cInit
|
|
-Wl,-u,i2cSlaveInit
|