; 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 = nrf52dk ; Note: the github actions CI test build can't yet build NRF52 targets [common] ; common is not currently used ; REQUIRED environment variables - if not set the specified default will be sued ; The following environment variables must be set in the shell if you'd like to override them. ; They are used in this ini file as systenv.VARNAME, so in your shell do export "VARNAME=fish" ; COUNTRY (default US), i.e. "export COUNTRY=EU865" ; APP_VERSION (default emptystring) ; HW_VERSION (default emptystring) [env] framework = arduino ; customize the partition table ; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables board_build.partitions = partition-table.csv ; note: we add src to our include search path so that lmic_project_config can override ; FIXME: fix lib/BluetoothOTA dependency back on src/ so we can remove -Isrc build_flags = -Wno-missing-field-initializers -Isrc -Isrc/mesh -Isrc/gps -Ilib/nanopb/include -Os -Wl,-Map,.pio/build/output.map -DAXP_DEBUG_PORT=Serial -DHW_VERSION_${sysenv.COUNTRY} -DAPP_VERSION=${sysenv.APP_VERSION} -DHW_VERSION=${sysenv.HW_VERSION} ; not needed included in ttgo-t-beam board file ; also to use PSRAM https://docs.platformio.org/en/latest/platforms/espressif32.html#external-ram-psram ; -DBOARD_HAS_PSRAM ; -mfix-esp32-psram-cache-issue ; -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG ; leave this commented out to avoid breaking Windows ;upload_port = /dev/ttyUSB0 ;monitor_port = /dev/ttyUSB0 ; the default is esptool ; upload_protocol = esp-prog ; monitor_speed = 115200 monitor_speed = 921600 # debug_tool = esp-prog # debug_port = /dev/ttyACM0 debug_tool = jlink ;upload_protocol = jlink ; debug_tool = olimex-arm-usb-ocd-h ; upload_protocol = olimex-arm-usb-ocd-h ;debug_init_cmds = ; monitor adapter_khz 10000 lib_deps = https://github.com/meshtastic/esp8266-oled-ssd1306.git ; ESP8266_SSD1306 SPI 1260 ; OneButton library for non-blocking button debounce 1202 ; CRC32, explicitly needed because dependency is missing in the ble ota update lib Wire ; explicitly needed here because the AXP202 library forgets to add it https://github.com/meshtastic/arduino-fsm.git https://github.com/meshtastic/SparkFun_Ublox_Arduino_Library.git https://github.com/meshtastic/RadioLib.git#d6b12f7eb0a06bd2414c79b437b25d377e3f603f https://github.com/meshtastic/TinyGPSPlus.git ; Common settings for ESP targes, mixin with extends = esp32_base [esp32_base] platform = espressif32 src_filter = ${env.src_filter} - upload_speed = 921600 debug_init_break = tbreak setup build_flags = ${env.build_flags} -Wall -Wextra -Isrc/esp32 -mfix-esp32-psram-cache-issue # Hmm - this doesn't work yet # board_build.ldscript = linker/esp32.extram.bss.ld lib_ignore = segger_rtt platform_packages = framework-arduinoespressif32 @ https://github.com/meshtastic/arduino-esp32.git#71ed4002c953d8c87f44ed27e34fe0735f99013e ; The 1.0 release of the TBEAM board [env:tbeam] extends = esp32_base board = ttgo-t-beam lib_deps = ${env.lib_deps} https://github.com/meshtastic/AXP202X_Library.git build_flags = ${esp32_base.build_flags} -D TBEAM_V10 ; The original TBEAM board without the AXP power chip and a few other changes ; Note: I've heard reports this didn't work. Disabled until someone with a 0.7 can test and debug. [env:tbeam0.7] extends = esp32_base board = ttgo-t-beam build_flags = ${esp32_base.build_flags} -D TBEAM_V07 [env:heltec] ;build_type = debug ; to make it possible to step through our jtag debugger extends = esp32_base board = heltec_wifi_lora_32_V2 [env:ttgo-lora32-v1] extends = esp32_base board = ttgo-lora32-v1 build_flags = ${esp32_base.build_flags} -D TTGO_LORA_V1 ; note: the platformio definition for lora32-v2 seems stale, it is missing a pins_arduino.h file, therefore I don't think it works [env:ttgo-lora32-v2] extends = esp32_base board = ttgo-lora32-v1 build_flags = ${esp32_base.build_flags} -D TTGO_LORA_V2 ; The Heltec Cubecell plus ; IMPORTANT NOTE: This target doesn't yet work and probably won't ever work. I'm keeping it around for now. ; For more details see my post in the forum. [env:cubecellplus] platform = https://github.com/HelTecAutomation/platform-asrmicro650x.git ; we use top-of-tree because stable version has too many bugs - asrmicro650x board = cubecell_board_plus ; FIXME, bug in cubecell arduino - they are supposed to set ARDUINO build_flags = ${env.build_flags} -DARDUINO=100 -Isrc/cubecell src_filter = ${env.src_filter} - - ; Common settings for NRF52 based targets [nrf52_base] platform = nordicnrf52 debug_tool = jlink build_type = debug ; I'm debugging with ICE a lot now ; note: liboberon provides the AES256 implementation for NRF52 (though not using the hardware acceleration of the NRF52840 - FIXME) build_flags = ${env.build_flags} -Wno-unused-variable -Isrc/nrf52 -Isdk-nrfxlib/crypto/nrf_oberon/include -Lsdk-nrfxlib/crypto/nrf_oberon/lib/cortex-m4/hard-float/ -lliboberon_3.0.3 ;-DCFG_DEBUG=3 src_filter = ${env.src_filter} - lib_ignore = BluetoothOTA monitor_port = /dev/ttyACM1 debug_extra_cmds = source gdbinit ; after programming the flash, reset the initial PC ; debug_load_cmds = load ; Set initial breakpoint (defaults to main) debug_init_break = ;debug_init_break = tbreak loop ;debug_init_break = tbreak Reset_Handler ; The NRF52840-dk development board [env:nrf52dk] extends = nrf52_base board = nrf52840_dk_modified # For experimenting with RAM sizes # board_build.ldscript = linker/nrf52840_s140_sim832.ld ; The PPR board [env:ppr] extends = nrf52_base board = ppr lib_deps = ${env.lib_deps} UC1701