; PlatformIO Project Configuration File ; https://docs.platformio.org/page/projectconf.html [platformio] default_envs = tbeam ;default_envs = tbeam0.7 ;default_envs = heltec-v1 ;default_envs = heltec-v2.0 ;default_envs = heltec-v2.1 ;default_envs = tlora-v1 ;default_envs = tlora-v1 ;default_envs = tlora_v1_3 ;default_envs = tlora-v2 ;default_envs = tlora-v2-1-1.6 ;default_envs = lora-relay-v1 # nrf board ;default_envs = t-echo ;default_envs = nrf52840dk-geeksville ;default_envs = native # lora-relay-v1 # nrf52840dk-geeksville # linux # or if you'd like to change the default to something like lora-relay-v1 put that here ;default_envs = nano-g1 ;default_envs = pca10059_diy_eink ;default_envs = meshtastic-diy-v1 ;default_envs = meshtastic-diy-v1.1 ;default_envs = m5stack-coreink extra_configs = variants/*/platformio.ini [env] extra_scripts = bin/platformio-custom.py ; note: we add src to our include search path so that lmic_project_config can override ; note: TINYGPS_OPTION_NO_CUSTOM_FIELDS is VERY important. We don't use custom fields and somewhere in that pile ; of code is a heap corruption bug! ; FIXME: fix lib/BluetoothOTA dependency back on src/ so we can remove -Isrc build_flags = -Wno-missing-field-initializers -Wno-format -Isrc -Isrc/mesh -Isrc/gps -Isrc/buzz -Wl,-Map,.pio/build/output.map -DUSE_THREAD_NAMES -DTINYGPS_OPTION_NO_CUSTOM_FIELDS -DPB_ENABLE_MALLOC=1 monitor_speed = 921600 lib_deps = https://github.com/meshtastic/esp8266-oled-ssd1306.git#53580644255b48ebb7a737343c6b4e71c7e11cf2 ; ESP8266_SSD1306 mathertel/OneButton@^2.0.3 ; OneButton library for non-blocking button debounce 1202 ; CRC32, explicitly needed because dependency is missing in the ble ota update lib https://github.com/meshtastic/arduino-fsm.git https://github.com/meshtastic/TinyGPSPlus.git Wire ; explicitly needed here because the AXP202 library forgets to add it SPI https://github.com/meshtastic/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3 nanopb/Nanopb@^0.4.6 ; Used for the code analysis in PIO Home / Inspect check_tool = cppcheck check_skip_packages = yes ; Common settings for conventional (non Portduino) Arduino targets [arduino_base] framework = arduino lib_deps = ${env.lib_deps} ; Portduino is using meshtastic fork for now https://github.com/jgromes/RadioLib.git#3df3b092ebf412bd0b26524e7b296733bd6a62f7 build_flags = ${env.build_flags} -Os # -DRADIOLIB_GODMODE build_src_filter = ${env.build_src_filter} - ; Common libs for communicating over TCP/IP networks such as MQTT [networking_base] lib_deps = PubSubClient meshtastic/json11@^1.0.2 ; Common libs for environmental measurements in telemetry module ; (not included in native / portduino) [environmental_base] lib_deps = adafruit/Adafruit BusIO@^1.11.4 adafruit/DHT sensor library@^1.4.1 adafruit/Adafruit Unified Sensor@^1.1.4 paulstoffregen/OneWire@^2.3.5 robtillaart/DS18B20@^0.1.11 adafruit/Adafruit BME280 Library@^2.2.2 adafruit/Adafruit BME680 Library@^2.0.1 adafruit/Adafruit MCP9808 Library@^2.0.0 ; Common settings for ESP targes, mixin with extends = esp32_base [esp32_base] extends = arduino_base platform = espressif32@3.5.0 build_src_filter = ${arduino_base.build_src_filter} - upload_speed = 921600 debug_init_break = tbreak setup # Remove -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL for low level BLE logging. # See library directory for BLE logging possible values: .pio/libdeps/tbeam/NimBLE-Arduino/src/log_common/log_common.h # This overrides the BLE logging default of LOG_LEVEL_INFO (1) from: .pio/libdeps/tbeam/NimBLE-Arduino/src/esp_nimble_cfg.h # -DUSE_NEW_ESP32_BLUETOOTH will enable the new NimBLE C++ api build_flags = ${arduino_base.build_flags} -Wall -Wextra -Isrc/esp32 -Isrc/esp32-mfix-esp32-psram-cache-issue -lnimble -std=c++11 -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL -DAXP_DEBUG_PORT=Serial -DUSE_NEW_ESP32_BLUETOOTH lib_deps = ${arduino_base.lib_deps} ${networking_base.lib_deps} ${environmental_base.lib_deps} https://github.com/meshtastic/esp32_https_server.git h2zero/NimBLE-Arduino@1.3.7 arduino-libraries/NTPClient@^3.1.0 lorol/LittleFS_esp32@^1.0.6 https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460 lib_ignore = segger_rtt ESP32 BLE Arduino platform_packages = framework-arduinoespressif32@https://github.com/meshtastic/arduino-esp32.git#4cde0f5d412d2695184f32e8a47e9bea57b45276 ; leave this commented out to avoid breaking Windows ;upload_port = /dev/ttyUSB0 ;monitor_port = /dev/ttyUSB0 ; Please don't delete these lines. JM uses them. ;upload_port = /dev/cu.SLAB_USBtoUART ;monitor_port = /dev/cu.SLAB_USBtoUART ; customize the partition table ; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables board_build.partitions = partition-table.csv [nrf52_base] ; Instead of the standard nordicnrf52 platform, we use our fork which has our added variant files ; platform = nordicnrf52 ;pending https://github.com/platformio/builder-framework-arduino-nrf5/pull/7 platform = https://github.com/meshtastic/platform-nordicnrf52.git#merge extends = arduino_base 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 = ${arduino_base.build_flags} -Wno-unused-variable -Isrc/nrf52 build_src_filter = ${arduino_base.build_src_filter} - - - - - - lib_ignore = BluetoothOTA [nrf52840_base] extends = nrf52_base build_flags = ${nrf52_base.build_flags} lib_deps = ${arduino_base.lib_deps} ${environmental_base.lib_deps} https://github.com/Kongduino/Adafruit_nRFCrypto.git ; Note: By default no lora device is created for this build - it uses a simulated interface [env:nrf52840dk] extends = nrf52840_base board = nrf52840_dk ; Note: By default no lora device is created for this build - it uses a simulated interface [env:feather_nrf52832] extends = nrf52_base board = adafruit_feather_nrf52832