2020-02-01 16:30:53 +00:00
; 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]
2020-09-26 19:40:15 +00:00
default_envs = tbeam # lora-relay-v1 # nrf52840dk-geeksville # linux # or if you'd like to change the default to something like lora-relay-v1 put that here
2020-09-27 07:55:41 +00:00
;default_envs = heltec # lora-relay-v1 # nrf52840dk-geeksville # linux # or if you'd like to change the default to something like lora-relay-v1 put that here
2020-02-01 16:30:53 +00:00
2020-03-27 20:20:52 +00:00
[common]
2020-04-19 15:33:59 +00:00
; common is not currently used
2020-03-27 20:20:52 +00:00
2020-04-19 15:33:59 +00:00
; 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"
2020-06-20 16:58:45 +00:00
; COUNTRY (default US), i.e. "export COUNTRY=EU865"
2020-04-19 15:33:59 +00:00
; APP_VERSION (default emptystring)
; HW_VERSION (default emptystring)
2020-04-10 19:15:00 +00:00
2020-03-27 20:20:52 +00:00
[env]
2020-02-01 16:30:53 +00:00
; note: we add src to our include search path so that lmic_project_config can override
2020-02-28 05:45:20 +00:00
; FIXME: fix lib/BluetoothOTA dependency back on src/ so we can remove -Isrc
2020-09-06 17:09:40 +00:00
build_flags = -Wno-missing-field-initializers -Isrc -Isrc/mesh -Isrc/gps -Ilib/nanopb/include -Wl,-Map,.pio/build/output.map
2020-04-19 15:33:59 +00:00
-DHW_VERSION_${sysenv.COUNTRY}
-DAPP_VERSION = ${sysenv.APP_VERSION}
-DHW_VERSION = ${sysenv.HW_VERSION}
2020-02-05 23:37:58 +00:00
2020-03-29 19:33:14 +00:00
; leave this commented out to avoid breaking Windows
;upload_port = /dev/ttyUSB0
;monitor_port = /dev/ttyUSB0
2020-10-01 17:03:23 +00:00
; geeksville: I think setting this should not be required - it breaks linux
;upload_port = /dev/cu.SLAB_USBtoUART
;monitor_port = /dev/cu.SLAB_USBtoUART
2020-03-29 19:33:14 +00:00
2020-02-03 02:33:46 +00:00
; the default is esptool
; upload_protocol = esp-prog
2020-05-12 20:35:22 +00:00
; monitor_speed = 115200
2020-04-22 21:58:35 +00:00
monitor_speed = 921600
2020-02-01 16:30:53 +00:00
2020-02-04 06:22:53 +00:00
# debug_tool = esp-prog
2020-02-05 23:37:58 +00:00
# debug_port = /dev/ttyACM0
2020-02-03 02:33:46 +00:00
2020-02-05 23:37:58 +00:00
debug_tool = jlink
2020-02-07 05:26:40 +00:00
;upload_protocol = jlink
2020-02-05 23:37:58 +00:00
; debug_tool = olimex-arm-usb-ocd-h
2020-02-04 17:00:17 +00:00
; upload_protocol = olimex-arm-usb-ocd-h
2020-02-04 06:22:53 +00:00
;debug_init_cmds =
2020-02-05 23:37:58 +00:00
; monitor adapter_khz 10000
2020-02-01 16:30:53 +00:00
lib_deps =
2020-03-02 23:13:33 +00:00
https://github.com/meshtastic/esp8266-oled-ssd1306.git ; ESP8266_SSD1306
2020-06-22 18:09:26 +00:00
1260 ; OneButton library for non-blocking button debounce
2020-02-28 05:45:20 +00:00
1202 ; CRC32, explicitly needed because dependency is missing in the ble ota update lib
2020-03-15 04:21:45 +00:00
https://github.com/meshtastic/arduino-fsm.git
2020-10-05 22:07:30 +00:00
https://github.com/meshtastic/SparkFun_Ublox_Arduino_Library.git#cb8353dfddd1b0e205098f5e70d5f2a5f74b4838
SX1262: fix serious bug with detecting if we have a rx packet in progress
Could cause hangs on the way into sleep (and enormous power consumption).
Instead of checking for rx packet length (which only changes at completion)
check if we've received preamble bits but haven't yet received a completed
packet interrupt.
notes:
wait to sleep loop problem
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
Can not send yet, busyRx
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
vs normal run
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
radio wait to sleep, txEmpty=0
Starting low level send (id=0x53fe1dd0 Fr0xe5 To0xff, WantAck0, HopLim3 encrypted)
Completed sending (id=0x53fe1dd0 Fr0xe5 To0xff, WantAck0, HopLim3 encrypted)
2020-10-07 05:43:51 +00:00
https://github.com/meshtastic/RadioLib.git#1083c2e76f9906c5f80dfec726facebf8413eef0
2020-05-05 00:39:57 +00:00
https://github.com/meshtastic/TinyGPSPlus.git
2020-08-13 00:03:36 +00:00
https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460
2020-09-04 22:03:22 +00:00
Wire ; explicitly needed here because the AXP202 library forgets to add it
2020-09-05 00:23:17 +00:00
SPI
2020-09-04 22:03:22 +00:00
2020-09-06 17:09:40 +00:00
; Common settings for conventional (non Portduino) Ardino targets
2020-09-04 22:03:22 +00:00
[arduino_base]
framework = arduino
lib_deps =
${env.lib_deps}
2020-08-13 00:03:36 +00:00
2020-09-06 17:09:40 +00:00
build_flags = ${env.build_flags} -Os
2020-09-07 20:03:37 +00:00
src_filter = ${env.src_filter} -<portduino/>
2020-08-13 00:03:36 +00:00
2020-04-15 03:22:27 +00:00
; Common settings for ESP targes, mixin with extends = esp32_base
[esp32_base]
2020-09-04 22:03:22 +00:00
extends = arduino_base
2020-06-13 15:26:48 +00:00
platform = espressif32
2020-04-15 03:22:27 +00:00
src_filter =
2020-09-07 20:03:37 +00:00
${arduino_base.src_filter} -<nrf52/>
2020-04-15 03:22:27 +00:00
upload_speed = 921600
debug_init_break = tbreak setup
build_flags =
2020-09-06 17:09:40 +00:00
${arduino_base.build_flags} -Wall -Wextra -Isrc/esp32 -Isrc/esp32-mfix-esp32-psram-cache-issue -lnimble -std = c++11
2020-07-22 17:46:01 +00:00
-DLOG_LOCAL_LEVEL = ESP_LOG_DEBUG -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
2020-08-13 00:10:59 +00:00
-DAXP_DEBUG_PORT = Serial
2020-06-21 21:11:38 +00:00
# Hmm - this doesn't work yet
# board_build.ldscript = linker/esp32.extram.bss.ld
2020-04-23 23:20:07 +00:00
lib_ignore = segger_rtt
2020-06-13 15:26:48 +00:00
platform_packages =
2020-09-10 16:51:53 +00:00
framework-arduinoespressif32@https://github.com/meshtastic/arduino-esp32.git#2814f110aa618429bdd9a0a2d6a93c55f29f87a6
2020-04-15 03:22:27 +00:00
2020-09-04 22:03:22 +00:00
; customize the partition table
; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables
board_build.partitions = partition-table.csv
2020-07-21 18:16:14 +00:00
; 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
2020-09-10 16:51:53 +00:00
; The 1.0 release of the TBEAM board
2020-04-10 19:15:00 +00:00
[env:tbeam]
extends = esp32_base
2020-03-27 20:20:52 +00:00
board = ttgo-t-beam
lib_deps =
2020-09-04 22:03:22 +00:00
${arduino_base.lib_deps}
2020-03-28 22:31:22 +00:00
build_flags =
2020-04-15 03:22:27 +00:00
${esp32_base.build_flags} -D TBEAM_V10
2020-03-28 22:31:22 +00:00
; The original TBEAM board without the AXP power chip and a few other changes
2020-04-16 16:05:53 +00:00
; Note: I've heard reports this didn't work. Disabled until someone with a 0.7 can test and debug.
2020-07-03 05:44:14 +00:00
[env:tbeam0.7]
extends = esp32_base
board = ttgo-t-beam
build_flags =
${esp32_base.build_flags} -D TBEAM_V07
2020-02-06 06:13:27 +00:00
2020-03-27 20:20:52 +00:00
[env:heltec]
2020-02-06 06:13:27 +00:00
;build_type = debug ; to make it possible to step through our jtag debugger
2020-04-10 19:15:00 +00:00
extends = esp32_base
2020-03-27 20:20:52 +00:00
board = heltec_wifi_lora_32_V2
2020-03-27 23:55:19 +00:00
2020-07-14 14:16:49 +00:00
[env:tlora-v1]
2020-04-10 19:15:00 +00:00
extends = esp32_base
2020-03-27 23:55:19 +00:00
board = ttgo-lora32-v1
2020-03-28 21:45:33 +00:00
build_flags =
2020-07-14 14:16:49 +00:00
${esp32_base.build_flags} -D TLORA_V1
2020-03-27 23:55:19 +00:00
; note: the platformio definition for lora32-v2 seems stale, it is missing a pins_arduino.h file, therefore I don't think it works
2020-07-14 14:16:49 +00:00
[env:tlora-v2]
2020-04-10 19:15:00 +00:00
extends = esp32_base
2020-03-28 21:45:33 +00:00
board = ttgo-lora32-v1
build_flags =
2020-07-14 14:16:49 +00:00
${esp32_base.build_flags} -D TLORA_V2
[env:tlora-v2-1-1.6]
extends = esp32_base
board = ttgo-lora32-v1
build_flags =
${esp32_base.build_flags} -D TLORA_V2_1_16
2020-04-01 04:56:35 +00:00
2020-06-17 18:35:21 +00:00
; 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.
2020-06-06 00:30:09 +00:00
[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
2020-09-06 17:09:40 +00:00
build_flags = ${arduino_base.build_flags} -DARDUINO=100 -Isrc/cubecell
2020-06-06 00:30:09 +00:00
src_filter =
2020-09-07 20:03:37 +00:00
${arduino_base.src_filter} -<esp32/> -<nrf52/>
2020-06-06 00:30:09 +00:00
2020-05-10 19:33:17 +00:00
; Common settings for NRF52 based targets
[nrf52_base]
2020-07-10 03:22:40 +00:00
; Instead of the standard nordicnrf52 platform, we use our fork which has our added variant files
; platform = nordicnrf52
2020-09-07 22:22:00 +00:00
platform = https://github.com/meshtastic/platform-nordicnrf52.git#1a2639a6b0f79b5df66bea3e3089f0d5285fdc63
2020-09-04 22:03:22 +00:00
extends = arduino_base
2020-04-15 03:22:27 +00:00
debug_tool = jlink
2020-04-30 02:04:59 +00:00
build_type = debug ; I'm debugging with ICE a lot now
2020-05-24 21:15:49 +00:00
; note: liboberon provides the AES256 implementation for NRF52 (though not using the hardware acceleration of the NRF52840 - FIXME)
2020-04-01 04:56:35 +00:00
build_flags =
2020-09-06 17:09:40 +00:00
${arduino_base.build_flags} -Wno-unused-variable
2020-07-24 18:39:30 +00:00
-Isrc/nrf52
-Isdk-nrfxlib/crypto/nrf_oberon/include -Lsdk-nrfxlib/crypto/nrf_oberon/lib/cortex-m4/hard-float/ -lliboberon_3.0.3
2020-05-22 04:17:38 +00:00
;-DCFG_DEBUG=3
2020-04-10 19:15:00 +00:00
src_filter =
2020-09-24 17:36:37 +00:00
${arduino_base.src_filter} -<esp32/> -<nimble/> -<meshwifi/>
2020-04-10 19:15:00 +00:00
lib_ignore =
2020-04-15 03:22:27 +00:00
BluetoothOTA
2020-04-24 01:47:27 +00:00
monitor_port = /dev/ttyACM1
2020-04-30 03:23:59 +00:00
debug_extra_cmds =
source gdbinit
2020-05-26 22:55:36 +00:00
; after programming the flash, reset the initial PC
; debug_load_cmds = load
2020-04-24 01:47:27 +00:00
; Set initial breakpoint (defaults to main)
debug_init_break =
;debug_init_break = tbreak loop
2020-04-30 03:23:59 +00:00
;debug_init_break = tbreak Reset_Handler
2020-05-10 19:33:17 +00:00
; The NRF52840-dk development board
2020-07-10 03:22:40 +00:00
; Note: By default no lora device is created for this build - it uses a simulated interface
2020-07-10 03:31:16 +00:00
[env:nrf52840dk]
2020-05-10 19:33:17 +00:00
extends = nrf52_base
2020-07-10 03:05:39 +00:00
board = nrf52840_dk
; The NRF52840-dk development board, but @geeksville's board - which has a busted oscilliator
2020-07-10 03:31:16 +00:00
[env:nrf52840dk-geeksville]
2020-05-10 19:33:17 +00:00
extends = nrf52_base
board = nrf52840_dk_modified
2020-08-17 17:23:21 +00:00
# add our variants files to the include and src paths
build_flags = ${nrf52_base.build_flags} -Ivariants/pca10056-rc-clock
src_filter = ${nrf52_base.src_filter} +<../variants/pca10056-rc-clock>
2020-05-10 19:33:17 +00:00
2020-07-10 04:27:34 +00:00
; 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
2020-07-10 18:02:29 +00:00
[env:rak815]
extends = nrf52_base
board = rak815
2020-07-10 19:12:03 +00:00
debug_tool = jlink
upload_protocol = jlink
2020-07-10 20:11:29 +00:00
monitor_port = /dev/ttyUSB0
2020-07-10 20:24:00 +00:00
; this board's serial chip can only run at 115200, not faster
monitor_speed = 115200
2020-07-10 18:02:29 +00:00
2020-06-16 22:27:08 +00:00
# For experimenting with RAM sizes
# board_build.ldscript = linker/nrf52840_s140_sim832.ld
2020-05-10 19:33:17 +00:00
; The PPR board
[env:ppr]
extends = nrf52_base
board = ppr
lib_deps =
2020-09-04 22:03:22 +00:00
${arduino_base.lib_deps}
2020-05-10 19:33:17 +00:00
UC1701
2020-06-15 20:31:53 +00:00
2020-09-24 21:36:43 +00:00
; Prototype eink/nrf52840/sx1262 device
[env:eink]
extends = nrf52_base
board = eink
# add our variants files to the include and src paths
# define build flags for the TFT_eSPI library
build_flags = ${nrf52_base.build_flags} -Ivariants/eink
2020-09-26 16:40:48 +00:00
-DBUSY_PIN = 3 -DRST_PIN=2 -DDC_PIN=28 -DCS_PIN=30
2020-09-24 21:36:43 +00:00
src_filter = ${nrf52_base.src_filter} +<../variants/eink>
lib_deps =
${arduino_base.lib_deps}
2020-09-26 16:40:48 +00:00
https://github.com/geeksville/EPD_Libraries.git
2020-09-24 21:36:43 +00:00
TFT_eSPI
2020-08-16 21:08:31 +00:00
; The https://github.com/BigCorvus/SX1262-LoRa-BLE-Relay board by @BigCorvus
[env:lora-relay-v1]
extends = nrf52_base
board = lora-relay-v1
2020-08-17 17:23:21 +00:00
# add our variants files to the include and src paths
2020-08-28 21:24:22 +00:00
# define build flags for the TFT_eSPI library
2020-08-17 17:23:21 +00:00
build_flags = ${nrf52_base.build_flags} -Ivariants/lora_relay_v1
2020-08-28 21:24:22 +00:00
-DUSER_SETUP_LOADED
-DTFT_WIDTH = 80
-DTFT_HEIGHT = 160
-DST7735_GREENTAB160x80
-DST7735_DRIVER
-DTFT_CS = ST7735_CS
-DTFT_DC = ST7735_RS
-DTFT_RST = ST7735_RESET
-DSPI_FREQUENCY = 27000000
2020-08-17 17:23:21 +00:00
src_filter = ${nrf52_base.src_filter} +<../variants/lora_relay_v1>
2020-08-16 21:08:31 +00:00
lib_deps =
2020-09-04 22:03:22 +00:00
${arduino_base.lib_deps}
2020-08-16 21:50:04 +00:00
SparkFun BQ27441 LiPo Fuel Gauge Arduino Library
2020-08-17 20:47:05 +00:00
TFT_eSPI
2020-08-16 21:50:04 +00:00
# Adafruit ST7735 and ST7789 Library
2020-08-16 21:08:31 +00:00
2020-09-07 20:03:37 +00:00
; The Portduino based sim environment on top of linux
2020-09-04 22:03:22 +00:00
[env:linux]
platform = https://github.com/geeksville/platform-portduino.git
2020-09-24 00:22:17 +00:00
src_filter = ${env.src_filter} -<esp32/> -<nimble/> -<nrf52/> -<meshwifi/>
2020-09-06 21:45:43 +00:00
build_flags = ${arduino_base.build_flags} -O0
2020-09-04 22:03:22 +00:00
framework = arduino
board = linux_x86_64