; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [platformio] default_envs = esp32 [env] ;-- platformio.ini custom options, reused by TFT_eSPI, SDL2 and in OMOTE code - custom_screen_width = 240 custom_screen_heigth = 320 lib_deps = lvgl/lvgl@^8.3.11 build_flags = ;-- OMOTE ----------------------------------------------------------------- -D ENABLE_WIFI_AND_MQTT=1 -D ENABLE_KEYBOARD_MQTT=0 -D ENABLE_BLUETOOTH=1 -D ENABLE_KEYBOARD_BLE=1 -D USE_SCENE_SPECIFIC_GUI_LIST=1 -D SCR_WIDTH=${env.custom_screen_width} -D SCR_HEIGHT=${env.custom_screen_heigth} ;-D OMOTE_LOG_LEVEL=OMOTE_LOG_LEVEL_NONE ;-D OMOTE_LOG_LEVEL=OMOTE_LOG_LEVEL_ERROR ;-D OMOTE_LOG_LEVEL=OMOTE_LOG_LEVEL_WARN -D OMOTE_LOG_LEVEL=OMOTE_LOG_LEVEL_INFO ;-D OMOTE_LOG_LEVEL=OMOTE_LOG_LEVEL_DEBUG ;-D OMOTE_LOG_LEVEL=OMOTE_LOG_LEVEL_VERBOSE ;-- lvgl ------------------------------------------------------------------ ; lvgl variant 1: ; Don't use lv_conf.h. Tweak params via platfom.ini. See lv_conf_internal.h line 31. Don't change this line. -D LV_CONF_SKIP=1 ; Set this in specific environments below. Will be different in Arduino and Windows/Linux ;-D LV_TICK_CUSTOM=1 ; dynamic memory. Takes as much as it gets from heap (DRAM). Needs approx. 25%-30% more memory than static memory. ;-D LV_MEM_CUSTOM=1 ; Set this in specific environments below. 32 bit and 64 bit need differenz sizes. ;-D LV_MEM_CUSTOM=0 ;-D LV_MEM_SIZE="(32U * 1024U)" ; fonts and theme -D LV_FONT_MONTSERRAT_10=1 -D LV_FONT_MONTSERRAT_12=1 -D LV_FONT_MONTSERRAT_16=1 -D LV_FONT_MONTSERRAT_24=1 -D LV_THEME_DEFAULT_DARK=1 ; don't build examples -D LV_BUILD_EXAMPLES=0 ; Enable the log module -D LV_USE_LOG=1 -D LV_LOG_PRINTF=1 ;-D LV_LOG_LEVEL=LV_LOG_LEVEL_NONE ;-D LV_LOG_LEVEL=LV_LOG_LEVEL_USER -D LV_LOG_LEVEL=LV_LOG_LEVEL_ERROR ;-D LV_LOG_LEVEL=LV_LOG_LEVEL_WARN ;-D LV_LOG_LEVEL=LV_LOG_LEVEL_INFO ;-D LV_LOG_LEVEL=LV_LOG_LEVEL_TRACE ; --- ; Enable asserts if an operation is failed or an invalid data is found. ; If LV_USE_LOG is enabled an error message will be printed on failure*/ ; /*Check if the styles are properly initialized. (Very fast, recommended)*/ -D LV_USE_ASSERT_STYLE=1 ; /*Check the integrity of `lv_mem` after critical operations. (Slow)*/ ;-D LV_USE_ASSERT_MEM_INTEGRITY=1 ; /*Check the object's type and existence (e.g. not deleted). (Slow)*/ ;-D LV_USE_ASSERT_OBJ=1 ; --------- ; lvgl variant 2: ; or define where lv_conf.h is, relative to the `lvgl` folder ;-D LV_CONF_PATH=../../../../src/gui_general_and_keys/lv_conf.h ; --- interesting lvgl debug infos (OSD) ;-D LV_USE_PERF_MONITOR=1 ;-D LV_USE_MEM_MONITOR=1 ;-D LV_USE_REFR_DEBUG=1 [env:esp32] platform = espressif32 board = esp32dev framework = arduino monitor_speed = 115200 board_build.f_flash = 80000000L board_build.f_cpu = 240000000L board_build.partitions = huge_app.csv upload_speed = 1000000 lib_deps = ${env.lib_deps} bodmer/TFT_eSPI@^2.5.43 adafruit/Adafruit BusIO@^1.15.0 adafruit/Adafruit FT6206 Library@^1.1.0 sparkfun/SparkFun LIS3DH Arduino Library@^1.0.3 crankyoldgit/IRremoteESP8266@^2.8.6 knolleary/PubSubClient@^2.8 h2zero/NimBLE-Arduino@^1.4.1 sparkfun/SparkFun MAX1704x Fuel Gauge Arduino Library@^1.0.4 ;chris--a/Keypad@^3.1.1 ;t-vk/ESP32 BLE Keyboard@^0.3.2 build_flags = ${env.build_flags} ;-- OMOTE ----------------------------------------------------------------- ; 1: rev1 - Slowly charge the VSW voltage to prevent a brownout ; 2: rev2 - no special handling needed ; 3: rev3 - no special handling needed ; 4: rev4 - Switched from ADC battery monitoring to i2c fuel gauge -D OMOTE_HARDWARE_REV=3 ;-- Arduino log ----------------------------------------------------------- ;-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_NONE ;-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_ERROR ;-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_WARN -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_INFO ;-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG ;-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE ;-- lvgl arduino ---------------------------------------------------------- ; use millis() from "Arduino.h" to tell the elapsed time in milliseconds -D LV_TICK_CUSTOM=1 ; static memory, will be allocated in static DRAM -D LV_MEM_CUSTOM=0 -D LV_MEM_SIZE="(32U * 1024U)" ;-- TFT_eSPI -------------------------------------------------------------- -D DISABLE_ALL_LIBRARY_WARNINGS=1 ; The following lines replace the TFT_eSPI User_setup.h-file -D USER_SETUP_LOADED=1 -D ILI9341_DRIVER=1 -D TFT_WIDTH=${env.custom_screen_width} -D TFT_HEIGHT=${env.custom_screen_heigth} ;-D TFT_MISO not connected -D TFT_MOSI=23 -D TFT_SCLK=18 -D TFT_CS=5 -D TFT_DC=9 -D TFT_RST=-1 -D SPI_FREQUENCY=40000000 ; 40MHz default, some displays might support 80MHz ; TFT_eSPI fonts are disabled by default ;-D LOAD_GLCD=1 ;-D LOAD_FONT2=1 ;-D LOAD_FONT4=1 ;-D LOAD_FONT6=1 ;-D LOAD_FONT7=1 ;-D LOAD_FONT8=1 ;-D LOAD_GFXFF=1 ;-D SMOOTH_FONT=1 ;-- for BLE Keyboard. Don't change this line! ----------------------------- -D USE_NIMBLE=1 ;-- hardware abstraction, needed to find hardwareLayer.h ------------------ -I hardware -I hardware/ESP32/lib/Keypad/src ;-I hardware/ESP32/lib/ESP32-BLE-Keyboard build_src_filter = +<*> +<../hardware/ESP32/*> ;+<../hardware/ESP32/lib/ESP32-BLE-Keyboard/*> - ; use this if you are using Ubuntu or WSL2 (64 bit compiler) [env:linux_64bit] platform = native@^1.2.1 lib_deps = ${env.lib_deps} ;we need the master branch from github because of this commit https://github.com/lvgl/lv_drivers/commit/7b9dee11c93ad27e2591182457c1eba7677473be lv_drivers=https://github.com/lvgl/lv_drivers ;lvgl/lv_drivers@^8.3.0 build_flags = ${env.build_flags} ;-- lvgl ------------------------------------------------------------------ ; 64 bit needs a lot more static memory -D LV_MEM_CUSTOM=0 -D LV_MEM_SIZE="(64U * 1024U)" ;SDL2 from msys64 -l SDL2 ; settings for lv_drivers -D LV_LVGL_H_INCLUDE_SIMPLE -D LV_DRV_NO_CONF -D USE_SDL -D SDL_INCLUDE_PATH="\"SDL2/SDL.h\"" -D SDL_HOR_RES=${env.custom_screen_width} -D SDL_VER_RES=${env.custom_screen_heigth} -D SDL_ZOOM=2 ;-- hardware abstraction, needed to find hardwareLayer.h ------------------ -I hardware -I hardware/windows_linux/lib/MQTT-C/include build_src_filter = +<*> +<../hardware/windows_linux/*> - ; use this if you are using Windows MSYS2 MINGW64 (64 bit compiler) [env:windows_64bit] extends = env:linux_64bit build_flags = ${env:linux_64bit.build_flags} ; winsock -l ws2_32 ; use this if you are using Windows MSYS2 MINGW32 (32 bit compiler) [env:windows_32bit] extends = env:windows_64bit build_unflags = ${env:windows_64bit.build_unflags} ;-- lvgl ------------------------------------------------------------------ -D LV_MEM_CUSTOM=0 -D LV_MEM_SIZE="(64U * 1024U)" build_flags = ${env:windows_64bit.build_flags} ;-- lvgl ------------------------------------------------------------------ ; 32 bit needs exact the same lvgl memory as on ESP32 -D LV_MEM_CUSTOM=0 -D LV_MEM_SIZE="(32U * 1024U)" ; Take care. If you have a 64 bit compiler, this setting will tell the compiler to cross compile to 32 bit. ; Compiling is successfull, but linker fails. So use this env only with a 32 bit compiler. ; Probably a custom linker script would be needed for cross compiling to work. ; Ubuntu and WSL2 are using 64 bit compilers! So you can only build the 32 bit simulator with Windows MSYS2 MINGW32 -m32 ;linker option -Wl,-mi386pe