[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 (, 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