platformio.ini 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960
  1. ; PlatformIO Project Configuration File
  2. ;
  3. ; Build options: build flags, source filter
  4. ; Upload options: custom upload port, speed and extra flags
  5. ; Library options: dependencies, extra library storages
  6. ; Advanced options: extra scripting
  7. ;
  8. ; Please visit documentation for the other options and examples
  9. ; https://docs.platformio.org/page/projectconf.html
  10. [arduino_base]
  11. framework = arduino
  12. monitor_speed = 115200
  13. lib_deps =
  14. SPI
  15. Wire
  16. jgromes/RadioLib @ ^7.1.2
  17. rweather/Crypto @ ^0.4.0
  18. adafruit/RTClib @ ^2.1.3
  19. melopero/Melopero RV3028 @ ^1.1.0
  20. build_flags = -w -DNDEBUG -DRADIOLIB_STATIC_ONLY=1 -DRADIOLIB_GODMODE=1
  21. -D LORA_FREQ=867.5
  22. -D LORA_BW=250
  23. -D LORA_SF=10
  24. build_src_filter =
  25. +<*.cpp>
  26. +<helpers/*.cpp>
  27. [esp32_base]
  28. extends = arduino_base
  29. platform = espressif32
  30. monitor_filters = esp32_exception_decoder
  31. extra_scripts = merge-bin.py
  32. build_flags = ${arduino_base.build_flags}
  33. ; -D ESP32_CPU_FREQ=80 ; change it to your need
  34. build_src_filter = ${arduino_base.build_src_filter}
  35. ; ================
  36. [Heltec_lora32_v2]
  37. extends = esp32_base
  38. board = heltec_wifi_lora_32_V2 ; heltec_wifi_lora_32_V2
  39. build_flags =
  40. ${esp32_base.build_flags}
  41. -D HELTEC_LORA_V2
  42. -D RADIO_CLASS=CustomSX1276
  43. -D WRAPPER_CLASS=CustomSX1276Wrapper
  44. -D LORA_TX_POWER=20
  45. -D P_LORA_TX_LED=25
  46. build_src_filter = ${esp32_base.build_src_filter}
  47. [env:Heltec_v2_repeater]
  48. extends = Heltec_lora32_v2
  49. build_flags =
  50. ${Heltec_lora32_v2.build_flags}
  51. -D ADVERT_NAME='"Heltec Repeater"'
  52. -D ADVERT_LAT=-37.0
  53. -D ADVERT_LON=145.0
  54. -D ADMIN_PASSWORD='"password"'
  55. ; -D MESH_PACKET_LOGGING=1
  56. ; -D MESH_DEBUG=1
  57. build_src_filter = ${Heltec_lora32_v2.build_src_filter}
  58. +<../examples/simple_repeater/main.cpp>
  59. [env:Heltec_v2_terminal_chat]
  60. extends = Heltec_lora32_v2
  61. build_flags =
  62. ${Heltec_lora32_v2.build_flags}
  63. -D MAX_CONTACTS=100
  64. -D MAX_GROUP_CHANNELS=1
  65. ; -D MESH_PACKET_LOGGING=1
  66. ; -D MESH_DEBUG=1
  67. build_src_filter = ${Heltec_lora32_v2.build_src_filter}
  68. +<../examples/simple_secure_chat/main.cpp>
  69. lib_deps =
  70. ${Heltec_lora32_v2.lib_deps}
  71. densaugeo/base64 @ ~1.4.0
  72. [env:Heltec_v2_companion_radio_usb]
  73. extends = Heltec_lora32_v2
  74. build_flags =
  75. ${Heltec_lora32_v2.build_flags}
  76. -D MAX_CONTACTS=100
  77. -D MAX_GROUP_CHANNELS=8
  78. ; NOTE: DO NOT ENABLE --> -D MESH_PACKET_LOGGING=1
  79. ; NOTE: DO NOT ENABLE --> -D MESH_DEBUG=1
  80. build_src_filter = ${Heltec_lora32_v2.build_src_filter}
  81. +<helpers/esp32/*.cpp>
  82. +<../examples/companion_radio/main.cpp>
  83. lib_deps =
  84. ${Heltec_lora32_v2.lib_deps}
  85. densaugeo/base64 @ ~1.4.0
  86. [env:Heltec_v2_companion_radio_ble]
  87. extends = Heltec_lora32_v2
  88. build_flags =
  89. ${Heltec_lora32_v2.build_flags}
  90. -D MAX_CONTACTS=100
  91. -D MAX_GROUP_CHANNELS=8
  92. -D BLE_PIN_CODE=123456
  93. -D BLE_DEBUG_LOGGING=1
  94. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  95. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  96. ; -D MESH_PACKET_LOGGING=1
  97. ; -D MESH_DEBUG=1
  98. build_src_filter = ${Heltec_lora32_v2.build_src_filter}
  99. +<helpers/esp32/*.cpp>
  100. +<../examples/companion_radio/main.cpp>
  101. lib_deps =
  102. ${Heltec_lora32_v2.lib_deps}
  103. densaugeo/base64 @ ~1.4.0
  104. ; ================
  105. [Heltec_lora32_v3]
  106. extends = esp32_base
  107. board = esp32-s3-devkitc-1
  108. build_flags =
  109. ${esp32_base.build_flags}
  110. -D HELTEC_LORA_V3
  111. -D RADIO_CLASS=CustomSX1262
  112. -D WRAPPER_CLASS=CustomSX1262Wrapper
  113. -D LORA_TX_POWER=22
  114. -D P_LORA_TX_LED=35
  115. -D PIN_BOARD_SDA=17
  116. -D PIN_BOARD_SCL=18
  117. -D PIN_USER_BTN=0
  118. -D SX126X_DIO2_AS_RF_SWITCH=true
  119. -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  120. -D SX126X_CURRENT_LIMIT=130.0f ; for best TX power!
  121. -D SX126X_RX_BOOSTED_GAIN=1
  122. build_src_filter = ${esp32_base.build_src_filter}
  123. lib_deps =
  124. ${esp32_base.lib_deps}
  125. adafruit/Adafruit SSD1306 @ ^2.5.13
  126. [env:Heltec_v3_repeater]
  127. extends = Heltec_lora32_v3
  128. build_flags =
  129. ${Heltec_lora32_v3.build_flags}
  130. -D DISPLAY_CLASS=SSD1306Display
  131. -D ADVERT_NAME='"Heltec Repeater"'
  132. -D ADVERT_LAT=-37.0
  133. -D ADVERT_LON=145.0
  134. -D ADMIN_PASSWORD='"password"'
  135. -D MESH_PACKET_LOGGING=1
  136. ; -D MESH_DEBUG=1
  137. build_src_filter = ${Heltec_lora32_v3.build_src_filter}
  138. +<helpers/ui/*.cpp>
  139. +<../examples/simple_repeater>
  140. [env:Heltec_v3_room_server]
  141. extends = Heltec_lora32_v3
  142. build_src_filter = ${Heltec_lora32_v3.build_src_filter}
  143. +<helpers/ui/*.cpp>
  144. +<../examples/simple_room_server>
  145. build_flags =
  146. ${Heltec_lora32_v3.build_flags}
  147. -D DISPLAY_CLASS=SSD1306Display
  148. -D ADVERT_NAME='"Heltec Room"'
  149. -D ADVERT_LAT=-37.0
  150. -D ADVERT_LON=145.0
  151. -D ADMIN_PASSWORD='"password"'
  152. -D ROOM_PASSWORD='"hello"'
  153. ; -D MESH_PACKET_LOGGING=1
  154. ; -D MESH_DEBUG=1
  155. [env:Heltec_v3_terminal_chat]
  156. extends = Heltec_lora32_v3
  157. build_flags =
  158. ${Heltec_lora32_v3.build_flags}
  159. -D MAX_CONTACTS=100
  160. -D MAX_GROUP_CHANNELS=1
  161. ; -D MESH_PACKET_LOGGING=1
  162. ; -D MESH_DEBUG=1
  163. build_src_filter = ${Heltec_lora32_v3.build_src_filter}
  164. +<../examples/simple_secure_chat/main.cpp>
  165. lib_deps =
  166. ${Heltec_lora32_v3.lib_deps}
  167. densaugeo/base64 @ ~1.4.0
  168. [env:Heltec_v3_companion_radio_usb]
  169. extends = Heltec_lora32_v3
  170. build_flags =
  171. ${Heltec_lora32_v3.build_flags}
  172. -D MAX_CONTACTS=100
  173. -D MAX_GROUP_CHANNELS=8
  174. -D DISPLAY_CLASS=SSD1306Display
  175. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  176. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  177. ; NOTE: DO NOT ENABLE --> -D MESH_PACKET_LOGGING=1
  178. ; NOTE: DO NOT ENABLE --> -D MESH_DEBUG=1
  179. build_src_filter = ${Heltec_lora32_v3.build_src_filter}
  180. +<helpers/ui/*.cpp>
  181. +<../examples/companion_radio>
  182. lib_deps =
  183. ${Heltec_lora32_v3.lib_deps}
  184. densaugeo/base64 @ ~1.4.0
  185. [env:Heltec_v3_companion_radio_ble]
  186. extends = Heltec_lora32_v3
  187. build_flags =
  188. ${Heltec_lora32_v3.build_flags}
  189. -D MAX_CONTACTS=100
  190. -D MAX_GROUP_CHANNELS=8
  191. -D DISPLAY_CLASS=SSD1306Display
  192. -D BLE_PIN_CODE=0 ; dynamic, random PIN
  193. -D BLE_DEBUG_LOGGING=1
  194. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  195. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  196. ; -D MESH_PACKET_LOGGING=1
  197. ; -D MESH_DEBUG=1
  198. build_src_filter = ${Heltec_lora32_v3.build_src_filter}
  199. +<helpers/ui/*.cpp>
  200. +<helpers/esp32/*.cpp>
  201. +<../examples/companion_radio>
  202. lib_deps =
  203. ${Heltec_lora32_v3.lib_deps}
  204. densaugeo/base64 @ ~1.4.0
  205. [env:Heltec_v3_companion_radio_wifi]
  206. extends = Heltec_lora32_v3
  207. build_flags =
  208. ${Heltec_lora32_v3.build_flags}
  209. -D MAX_CONTACTS=100
  210. -D MAX_GROUP_CHANNELS=8
  211. -D DISPLAY_CLASS=SSD1306Display
  212. -D WIFI_DEBUG_LOGGING=1
  213. -D WIFI_SSID='"myssid"'
  214. -D WIFI_PWD='"mypwd"'
  215. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  216. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  217. ; -D MESH_PACKET_LOGGING=1
  218. ; -D MESH_DEBUG=1
  219. build_src_filter = ${Heltec_lora32_v3.build_src_filter}
  220. +<helpers/ui/*.cpp>
  221. +<helpers/esp32/*.cpp>
  222. +<../examples/companion_radio>
  223. lib_deps =
  224. ${Heltec_lora32_v3.lib_deps}
  225. densaugeo/base64 @ ~1.4.0
  226. [env:Heltec_WSL3_repeater]
  227. extends = Heltec_lora32_v3
  228. build_flags =
  229. ${Heltec_lora32_v3.build_flags}
  230. -D ADVERT_NAME='"Heltec Repeater"'
  231. -D ADVERT_LAT=-37.0
  232. -D ADVERT_LON=145.0
  233. -D ADMIN_PASSWORD='"password"'
  234. -D MESH_PACKET_LOGGING=1
  235. ; -D MESH_DEBUG=1
  236. build_src_filter = ${Heltec_lora32_v3.build_src_filter}
  237. +<../examples/simple_repeater>
  238. [env:Heltec_WSL3_room_server]
  239. extends = Heltec_lora32_v3
  240. build_src_filter = ${Heltec_lora32_v3.build_src_filter}
  241. +<../examples/simple_room_server>
  242. build_flags =
  243. ${Heltec_lora32_v3.build_flags}
  244. -D ADVERT_NAME='"Heltec Room"'
  245. -D ADVERT_LAT=-37.0
  246. -D ADVERT_LON=145.0
  247. -D ADMIN_PASSWORD='"password"'
  248. -D ROOM_PASSWORD='"hello"'
  249. ; -D MESH_PACKET_LOGGING=1
  250. ; -D MESH_DEBUG=1
  251. [env:Heltec_WSL3_companion_radio_ble]
  252. extends = Heltec_lora32_v3
  253. build_flags =
  254. ${Heltec_lora32_v3.build_flags}
  255. -D MAX_CONTACTS=100
  256. -D MAX_GROUP_CHANNELS=8
  257. -D BLE_PIN_CODE=123456
  258. -D BLE_DEBUG_LOGGING=1
  259. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  260. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  261. ; -D MESH_PACKET_LOGGING=1
  262. ; -D MESH_DEBUG=1
  263. build_src_filter = ${Heltec_lora32_v3.build_src_filter}
  264. +<helpers/esp32/*.cpp>
  265. +<../examples/companion_radio>
  266. lib_deps =
  267. ${Heltec_lora32_v3.lib_deps}
  268. densaugeo/base64 @ ~1.4.0
  269. ; ================
  270. [Xiao_esp32_C3]
  271. extends = esp32_base
  272. board = seeed_xiao_esp32c3
  273. build_flags =
  274. ${esp32_base.build_flags}
  275. -D LORA_TX_BOOST_PIN=D3
  276. -D P_LORA_TX_LED=D5
  277. -D PIN_VBAT_READ=D0
  278. -D P_LORA_DIO_1=D2
  279. -D P_LORA_NSS=D4
  280. -D P_LORA_RESET=RADIOLIB_NC
  281. -D P_LORA_BUSY=D1
  282. -D PIN_BOARD_SDA=D6
  283. -D PIN_BOARD_SCL=D7
  284. -D SX126X_DIO2_AS_RF_SWITCH=true
  285. -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  286. -D SX126X_CURRENT_LIMIT=130.0f ; for best TX power!
  287. [env:Xiao_C3_Repeater_sx1262]
  288. extends = Xiao_esp32_C3
  289. build_src_filter = ${Xiao_esp32_C3.build_src_filter}
  290. +<../examples/simple_repeater/main.cpp>
  291. build_flags =
  292. ${Xiao_esp32_C3.build_flags}
  293. -D RADIO_CLASS=CustomSX1262
  294. -D WRAPPER_CLASS=CustomSX1262Wrapper
  295. -D SX126X_RX_BOOSTED_GAIN=1
  296. -D LORA_TX_POWER=22
  297. -D ADVERT_NAME='"Xiao Repeater"'
  298. -D ADVERT_LAT=-37.0
  299. -D ADVERT_LON=145.0
  300. -D ADMIN_PASSWORD='"password"'
  301. ; -D MESH_PACKET_LOGGING=1
  302. ; -D MESH_DEBUG=1
  303. [env:Xiao_C3_Repeater_sx1268]
  304. extends = Xiao_esp32_C3
  305. build_src_filter = ${Xiao_esp32_C3.build_src_filter}
  306. +<../examples/simple_repeater/main.cpp>
  307. build_flags =
  308. ${Xiao_esp32_C3.build_flags}
  309. -D RADIO_CLASS=CustomSX1268
  310. -D WRAPPER_CLASS=CustomSX1268Wrapper
  311. -D LORA_TX_POWER=22
  312. -D ADVERT_NAME='"Xiao Repeater"'
  313. -D ADVERT_LAT=-37.0
  314. -D ADVERT_LON=145.0
  315. -D ADMIN_PASSWORD='"password"'
  316. ; -D MESH_PACKET_LOGGING=1
  317. ; -D MESH_DEBUG=1
  318. ; =============
  319. [Xiao_S3_WIO]
  320. extends = esp32_base
  321. board = seeed_xiao_esp32s3
  322. board_check = true
  323. board_build.mcu = esp32s3
  324. build_flags = ${esp32_base.build_flags}
  325. -D SEEED_XIAO_S3
  326. -D P_LORA_DIO_1=39
  327. -D P_LORA_NSS=41
  328. -D P_LORA_RESET=42 ; RADIOLIB_NC
  329. -D P_LORA_BUSY=40 ; DIO2 = 38
  330. -D P_LORA_SCLK=7
  331. -D P_LORA_MISO=8
  332. -D P_LORA_MOSI=9
  333. -D SX126X_DIO2_AS_RF_SWITCH=true
  334. -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  335. -D SX126X_CURRENT_LIMIT=130
  336. -D RADIO_CLASS=CustomSX1262
  337. -D WRAPPER_CLASS=CustomSX1262Wrapper
  338. -D LORA_TX_POWER=22
  339. -D SX126X_RX_BOOSTED_GAIN=1
  340. [env:Xiao_S3_WIO_Repeater]
  341. extends = Xiao_S3_WIO
  342. build_src_filter = ${Xiao_S3_WIO.build_src_filter}
  343. +<../examples/simple_repeater/main.cpp>
  344. build_flags =
  345. ${Xiao_S3_WIO.build_flags}
  346. -D ADVERT_NAME='"XiaoS3 Repeater"'
  347. -D ADVERT_LAT=-37.0
  348. -D ADVERT_LON=145.0
  349. -D ADMIN_PASSWORD='"password"'
  350. ; -D MESH_PACKET_LOGGING=1
  351. ; -D MESH_DEBUG=1
  352. [env:Xiao_S3_WIO_terminal_chat]
  353. extends = Xiao_S3_WIO
  354. build_flags =
  355. ${Xiao_S3_WIO.build_flags}
  356. -D MAX_CONTACTS=100
  357. -D MAX_GROUP_CHANNELS=8
  358. ; -D MESH_PACKET_LOGGING=1
  359. ; -D MESH_DEBUG=1
  360. build_src_filter = ${Xiao_S3_WIO.build_src_filter}
  361. +<../examples/simple_secure_chat/main.cpp>
  362. lib_deps =
  363. ${Xiao_S3_WIO.lib_deps}
  364. densaugeo/base64 @ ~1.4.0
  365. [env:Xiao_S3_WIO_companion_radio_ble]
  366. extends = Xiao_S3_WIO
  367. build_flags =
  368. ${Xiao_S3_WIO.build_flags}
  369. -D MAX_CONTACTS=100
  370. -D MAX_GROUP_CHANNELS=8
  371. -D BLE_PIN_CODE=123456
  372. ; -D BLE_DEBUG_LOGGING=1
  373. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  374. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  375. ; -D MESH_PACKET_LOGGING=1
  376. ; -D MESH_DEBUG=1
  377. build_src_filter = ${Xiao_S3_WIO.build_src_filter}
  378. +<helpers/esp32/*.cpp>
  379. +<../examples/companion_radio/main.cpp>
  380. lib_deps =
  381. ${Xiao_S3_WIO.lib_deps}
  382. densaugeo/base64 @ ~1.4.0
  383. ; =============
  384. [LilyGo_TLora_V2_1_1_6]
  385. extends = esp32_base
  386. board = ttgo-lora32-v1 ; LILYGO T-LoRa V2.1-1.6 ESP32 with SX1276
  387. build_unflags = -Os
  388. build_type = release ; Set build type to release
  389. board_build.partitions = min_spiffs.csv ; get around 4mb flash limit
  390. build_flags =
  391. ${esp32_base.build_flags}
  392. -Os -ffunction-sections -fdata-sections ; Optimize for size
  393. -D LILYGO_TLORA ; LILYGO T-LoRa V2.1-1.6 ESP32 with SX1276
  394. -D P_LORA_DIO_0=26 ; SX1276 DIO0 interrupt pin
  395. -D P_LORA_DIO_1=33 ; SX1276 DIO1 interrupt pin
  396. -D P_LORA_NSS=18 ; Chip select - SS pin
  397. -D P_LORA_RESET=14 ; Reset pin
  398. -D P_LORA_SCLK=5 ; SPI clock
  399. -D P_LORA_MISO=19 ; SPI MISO
  400. -D P_LORA_MOSI=27 ; SPI MOSI
  401. -D P_LORA_TX_LED=2 ; LED pin for TX indication
  402. -D PIN_VBAT_READ=35 ; Battery voltage reading (analog pin)
  403. -D PIN_USER_BTN=0
  404. -D RADIO_CLASS=CustomSX1276
  405. -D ARDUINO_LOOP_STACK_SIZE=16384
  406. -D DISPLAY_CLASS=SSD1306Display
  407. -D WRAPPER_CLASS=CustomSX1276Wrapper
  408. -D LORA_TX_POWER=20
  409. lib_deps =
  410. ${esp32_base.lib_deps}
  411. adafruit/Adafruit SSD1306 @ ^2.5.13
  412. ; === LILYGO T-LoRa V2.1-1.6 with SX1276 environments ===
  413. [env:LilyGo_TLora_V2_1_1_6_Repeater]
  414. extends = LilyGo_TLora_V2_1_1_6
  415. build_src_filter = ${LilyGo_TLora_V2_1_1_6.build_src_filter}
  416. +<helpers/ui/*.cpp>
  417. +<../examples/simple_repeater>
  418. build_flags =
  419. ${LilyGo_TLora_V2_1_1_6.build_flags}
  420. -D ADVERT_NAME='"TLora-V2.1-1.6 Repeater"'
  421. -D ADVERT_LAT=-37.0
  422. -D ADVERT_LON=145.0
  423. -D ADMIN_PASSWORD='"password"'
  424. ; -D MESH_PACKET_LOGGING=1
  425. ; -D MESH_DEBUG=1
  426. ; -D CORE_DEBUG_LEVEL=3
  427. [env:LilyGo_TLora_V2_1_1_6_terminal_chat]
  428. extends = LilyGo_TLora_V2_1_1_6
  429. build_flags =
  430. ${LilyGo_TLora_V2_1_1_6.build_flags}
  431. -D MAX_CONTACTS=100
  432. -D MAX_GROUP_CHANNELS=8
  433. ; -D MESH_PACKET_LOGGING=1
  434. ; -D MESH_DEBUG=1
  435. build_src_filter = ${LilyGo_TLora_V2_1_1_6.build_src_filter}
  436. +<helpers/ui/*.cpp>
  437. +<../examples/simple_repeater>
  438. lib_deps =
  439. ${LilyGo_TLora_V2_1_1_6.lib_deps}
  440. densaugeo/base64 @ ~1.4.0
  441. [env:LilyGo_TLora_V2_1_1_6_companion_radio_usb]
  442. extends = LilyGo_TLora_V2_1_1_6
  443. build_flags =
  444. ${LilyGo_TLora_V2_1_1_6.build_flags}
  445. -D MAX_CONTACTS=100
  446. -D MAX_GROUP_CHANNELS=8
  447. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  448. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  449. ; NOTE: DO NOT ENABLE --> -D MESH_PACKET_LOGGING=1
  450. ; NOTE: DO NOT ENABLE --> -D MESH_DEBUG=1
  451. build_src_filter = ${LilyGo_TLora_V2_1_1_6.build_src_filter}
  452. +<helpers/ui/*.cpp>
  453. +<../examples/companion_radio>
  454. lib_deps =
  455. ${LilyGo_TLora_V2_1_1_6.lib_deps}
  456. densaugeo/base64 @ ~1.4.0
  457. [env:LilyGo_TLora_V2_1_1_6_companion_radio_ble]
  458. extends = LilyGo_TLora_V2_1_1_6
  459. build_flags =
  460. ${LilyGo_TLora_V2_1_1_6.build_flags}
  461. -D MAX_CONTACTS=100
  462. -D MAX_GROUP_CHANNELS=8
  463. -D BLE_PIN_CODE=123456
  464. ; -D BLE_DEBUG_LOGGING=1
  465. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  466. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  467. ; -D MESH_PACKET_LOGGING=1
  468. ; -D MESH_DEBUG=1
  469. build_src_filter = ${LilyGo_TLora_V2_1_1_6.build_src_filter}
  470. +<helpers/esp32/*.cpp>
  471. +<helpers/ui/*.cpp>
  472. +<../examples/companion_radio>
  473. lib_deps =
  474. ${LilyGo_TLora_V2_1_1_6.lib_deps}
  475. densaugeo/base64 @ ~1.4.0
  476. [env:LilyGo_TLora_V2_1_1_6_room_server]
  477. extends = LilyGo_TLora_V2_1_1_6
  478. build_src_filter = ${LilyGo_TLora_V2_1_1_6.build_src_filter}
  479. +<helpers/ui/*.cpp>
  480. +<../examples/simple_room_server>
  481. build_flags =
  482. ${LilyGo_TLora_V2_1_1_6.build_flags}
  483. -D ADVERT_NAME='"TLora-V2.1-1.6 Room"'
  484. -D ADVERT_LAT=-37.0
  485. -D ADVERT_LON=145.0
  486. -D ADMIN_PASSWORD='"password"'
  487. -D ROOM_PASSWORD='"hello"'
  488. ; -D MESH_PACKET_LOGGING=1
  489. ; -D MESH_DEBUG=1
  490. ; =============
  491. [LilyGo_T3S3_sx1262]
  492. extends = esp32_base
  493. board = t3_s3_v1_x
  494. build_flags = ${esp32_base.build_flags}
  495. -D LILYGO_T3S3
  496. -D P_LORA_DIO_1=33
  497. -D P_LORA_NSS=7
  498. -D P_LORA_RESET=8 ; RADIOLIB_NC
  499. -D P_LORA_BUSY=34
  500. -D P_LORA_SCLK=5
  501. -D P_LORA_MISO=3
  502. -D P_LORA_MOSI=6
  503. -D P_LORA_TX_LED=37
  504. -D PIN_VBAT_READ=1
  505. -D SX126X_DIO2_AS_RF_SWITCH=true
  506. -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  507. -D SX126X_CURRENT_LIMIT=130
  508. -D RADIO_CLASS=CustomSX1262
  509. -D WRAPPER_CLASS=CustomSX1262Wrapper
  510. -D LORA_TX_POWER=22
  511. -D SX126X_RX_BOOSTED_GAIN=1
  512. ; === LilyGo T3S3 with SX1262 environments ===
  513. [env:LilyGo_T3S3_sx1262_Repeater]
  514. extends = LilyGo_T3S3_sx1262
  515. build_src_filter = ${LilyGo_T3S3_sx1262.build_src_filter}
  516. +<../examples/simple_repeater/main.cpp>
  517. build_flags =
  518. ${LilyGo_T3S3_sx1262.build_flags}
  519. -D ADVERT_NAME='"T3S3-1262 Repeater"'
  520. -D ADVERT_LAT=-37.0
  521. -D ADVERT_LON=145.0
  522. -D ADMIN_PASSWORD='"password"'
  523. ; -D MESH_PACKET_LOGGING=1
  524. ; -D MESH_DEBUG=1
  525. [env:LilyGo_T3S3_sx1262_terminal_chat]
  526. extends = LilyGo_T3S3_sx1262
  527. build_flags =
  528. ${LilyGo_T3S3_sx1262.build_flags}
  529. -D MAX_CONTACTS=100
  530. -D MAX_GROUP_CHANNELS=1
  531. ; -D MESH_PACKET_LOGGING=1
  532. ; -D MESH_DEBUG=1
  533. build_src_filter = ${LilyGo_T3S3_sx1262.build_src_filter}
  534. +<../examples/simple_secure_chat/main.cpp>
  535. lib_deps =
  536. ${LilyGo_T3S3_sx1262.lib_deps}
  537. densaugeo/base64 @ ~1.4.0
  538. [env:LilyGo_T3S3_sx1262_companion_radio_usb]
  539. extends = LilyGo_T3S3_sx1262
  540. build_flags =
  541. ${LilyGo_T3S3_sx1262.build_flags}
  542. -D MAX_CONTACTS=100
  543. -D MAX_GROUP_CHANNELS=8
  544. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  545. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  546. ; NOTE: DO NOT ENABLE --> -D MESH_PACKET_LOGGING=1
  547. ; NOTE: DO NOT ENABLE --> -D MESH_DEBUG=1
  548. build_src_filter = ${LilyGo_T3S3_sx1262.build_src_filter}
  549. +<../examples/companion_radio/main.cpp>
  550. lib_deps =
  551. ${LilyGo_T3S3_sx1262.lib_deps}
  552. densaugeo/base64 @ ~1.4.0
  553. [env:LilyGo_T3S3_sx1262_companion_radio_ble]
  554. extends = LilyGo_T3S3_sx1262
  555. build_flags =
  556. ${LilyGo_T3S3_sx1262.build_flags}
  557. -D MAX_CONTACTS=100
  558. -D MAX_GROUP_CHANNELS=8
  559. -D BLE_PIN_CODE=123456
  560. -D BLE_DEBUG_LOGGING=1
  561. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  562. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  563. ; -D MESH_PACKET_LOGGING=1
  564. ; -D MESH_DEBUG=1
  565. build_src_filter = ${LilyGo_T3S3_sx1262.build_src_filter}
  566. +<helpers/esp32/*.cpp>
  567. +<../examples/companion_radio/main.cpp>
  568. lib_deps =
  569. ${LilyGo_T3S3_sx1262.lib_deps}
  570. densaugeo/base64 @ ~1.4.0
  571. [Station_G2]
  572. extends = esp32_base
  573. board = station-g2
  574. build_flags =
  575. ${esp32_base.build_flags}
  576. -D STATION_G2
  577. -D RADIO_CLASS=CustomSX1262
  578. -D WRAPPER_CLASS=CustomSX1262Wrapper
  579. -D LORA_TX_POWER=7
  580. ; -D P_LORA_TX_LED=35
  581. ; -D PIN_BOARD_SDA=5
  582. ; -D PIN_BOARD_SCL=6
  583. -D PIN_USER_BTN=0
  584. -D SX126X_DIO2_AS_RF_SWITCH=true
  585. -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  586. -D SX126X_CURRENT_LIMIT=130.0f ; for best TX power!
  587. ; -D SX126X_RX_BOOSTED_GAIN=1 - DO NOT ENABLE THIS!
  588. ; https://wiki.uniteng.com/en/meshtastic/station-g2#impact-of-lora-node-dense-areashigh-noise-environments-on-rf-performance
  589. build_src_filter = ${esp32_base.build_src_filter}
  590. lib_deps =
  591. ${esp32_base.lib_deps}
  592. [env:Station_G2_repeater]
  593. extends = Station_G2
  594. build_flags =
  595. ${Station_G2.build_flags}
  596. -D ADVERT_NAME='"Station G2 Repeater"'
  597. -D ADVERT_LAT=-37.0
  598. -D ADVERT_LON=145.0
  599. -D ADMIN_PASSWORD='"password"'
  600. -D MESH_PACKET_LOGGING=1
  601. ; -D MESH_DEBUG=1
  602. build_src_filter = ${Station_G2.build_src_filter}
  603. +<../examples/simple_repeater>
  604. [env:Station_G2_room_server]
  605. extends = Station_G2
  606. build_src_filter = ${Station_G2.build_src_filter}
  607. +<../examples/simple_room_server>
  608. build_flags =
  609. ${Station_G2.build_flags}
  610. -D ADVERT_NAME='"Station G2 Room"'
  611. -D ADVERT_LAT=-37.0
  612. -D ADVERT_LON=145.0
  613. -D ADMIN_PASSWORD='"password"'
  614. -D ROOM_PASSWORD='"hello"'
  615. ; -D MESH_PACKET_LOGGING=1
  616. ; -D MESH_DEBUG=1
  617. ; ----------------- NRF52 ---------------------
  618. [nrf52_base]
  619. extends = arduino_base
  620. platform = nordicnrf52
  621. build_flags = ${arduino_base.build_flags}
  622. -D NRF52_PLATFORM
  623. [nrf52840_base]
  624. extends = nrf52_base
  625. build_flags = ${nrf52_base.build_flags}
  626. lib_deps =
  627. ${nrf52_base.lib_deps}
  628. rweather/Crypto @ ^0.4.0
  629. https://github.com/adafruit/Adafruit_nRF52_Arduino
  630. [rak4631]
  631. extends = nrf52840_base
  632. platform = https://github.com/maxgerhardt/platform-nordicnrf52.git#rak
  633. board = wiscore_rak4631
  634. board_check = true
  635. build_src_filter = ${nrf52840_base.build_src_filter}
  636. +<helpers/nrf52/*.cpp>
  637. build_flags = ${nrf52840_base.build_flags}
  638. -D RAK_4631
  639. -D RADIO_CLASS=CustomSX1262
  640. -D WRAPPER_CLASS=CustomSX1262Wrapper
  641. -D LORA_TX_POWER=22
  642. -D SX126X_CURRENT_LIMIT=130
  643. -D SX126X_RX_BOOSTED_GAIN=1
  644. [env:RAK_4631_Repeater]
  645. extends = rak4631
  646. build_src_filter = ${rak4631.build_src_filter}
  647. +<../examples/simple_repeater/main.cpp>
  648. build_flags =
  649. ${rak4631.build_flags}
  650. -D ADVERT_NAME='"RAK4631 Repeater"'
  651. -D ADVERT_LAT=-37.0
  652. -D ADVERT_LON=145.0
  653. -D ADMIN_PASSWORD='"password"'
  654. ; -D MESH_PACKET_LOGGING=1
  655. ; -D MESH_DEBUG=1
  656. [env:RAK_4631_room_server]
  657. extends = rak4631
  658. build_src_filter = ${rak4631.build_src_filter}
  659. +<../examples/simple_room_server/main.cpp>
  660. build_flags =
  661. ${rak4631.build_flags}
  662. -D ADVERT_NAME='"Test Room"'
  663. -D ADVERT_LAT=-37.0
  664. -D ADVERT_LON=145.0
  665. -D ADMIN_PASSWORD='"password"'
  666. -D ROOM_PASSWORD='"hello"'
  667. ; -D MESH_PACKET_LOGGING=1
  668. ; -D MESH_DEBUG=1
  669. [env:RAK_4631_terminal_chat]
  670. extends = rak4631
  671. build_flags =
  672. ${rak4631.build_flags}
  673. -D MAX_CONTACTS=100
  674. -D MAX_GROUP_CHANNELS=1
  675. -D MESH_PACKET_LOGGING=1
  676. -D MESH_DEBUG=1
  677. build_src_filter = ${rak4631.build_src_filter}
  678. +<../examples/simple_secure_chat/main.cpp>
  679. lib_deps =
  680. ${rak4631.lib_deps}
  681. densaugeo/base64 @ ~1.4.0
  682. [env:RAK_4631_companion_radio_usb]
  683. extends = rak4631
  684. build_flags =
  685. ${rak4631.build_flags}
  686. -D MAX_CONTACTS=100
  687. -D MAX_GROUP_CHANNELS=8
  688. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  689. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  690. ; NOTE: DO NOT ENABLE --> -D MESH_PACKET_LOGGING=1
  691. ; NOTE: DO NOT ENABLE --> -D MESH_DEBUG=1
  692. build_src_filter = ${rak4631.build_src_filter}
  693. +<../examples/companion_radio/main.cpp>
  694. lib_deps =
  695. ${rak4631.lib_deps}
  696. densaugeo/base64 @ ~1.4.0
  697. [env:RAK_4631_companion_radio_ble]
  698. extends = rak4631
  699. build_flags =
  700. ${rak4631.build_flags}
  701. -D MAX_CONTACTS=100
  702. -D MAX_GROUP_CHANNELS=8
  703. -D BLE_PIN_CODE=123456
  704. -D BLE_DEBUG_LOGGING=1
  705. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  706. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  707. ; -D MESH_PACKET_LOGGING=1
  708. ; -D MESH_DEBUG=1
  709. build_src_filter = ${rak4631.build_src_filter}
  710. +<helpers/nrf52/*.cpp>
  711. +<../examples/companion_radio/main.cpp>
  712. lib_deps =
  713. ${rak4631.lib_deps}
  714. densaugeo/base64 @ ~1.4.0
  715. ; ----------------- NRF52 T1000e---------------------
  716. [nrf52840_t1000e]
  717. extends = nrf52_base
  718. platform_packages = framework-arduinoadafruitnrf52
  719. build_flags = ${nrf52_base.build_flags}
  720. -I src/helpers/nrf52
  721. -I lib/nrf52/s140_nrf52_7.3.0_API/include
  722. -I lib/nrf52/s140_nrf52_7.3.0_API/include/nrf52
  723. lib_ignore =
  724. BluetoothOTA
  725. lvgl
  726. lib5b4
  727. lib_deps =
  728. ${nrf52_base.lib_deps}
  729. rweather/Crypto @ ^0.4.0
  730. [t1000-e]
  731. extends = nrf52840_t1000e
  732. board = tracker-t1000-e
  733. board_build.ldscript = boards/nrf52840_s140_v7.ld
  734. build_flags = ${nrf52840_t1000e.build_flags}
  735. -Ivariants/t1000-e
  736. -DT1000_E
  737. -D PIN_USER_BTN=6
  738. -D RADIO_CLASS=CustomLR1110
  739. -D WRAPPER_CLASS=CustomLR1110Wrapper
  740. -D MAX_LORA_TX_POWER=22
  741. build_src_filter = ${nrf52840_t1000e.build_src_filter}
  742. +<helpers/*.cpp>
  743. +<helpers/nrf52/T1000eBoard.cpp>
  744. +<../variants/t1000-e>
  745. debug_tool = jlink
  746. upload_protocol = nrfutil
  747. [env:t1000e_companion_radio_ble]
  748. extends = t1000-e
  749. build_flags = ${t1000-e.build_flags}
  750. -D MAX_CONTACTS=100
  751. -D MAX_GROUP_CHANNELS=8
  752. -D BLE_PIN_CODE=123456
  753. -D BLE_DEBUG_LOGGING=1
  754. -D MESH_PACKET_LOGGING=1
  755. -D MESH_DEBUG=1
  756. build_src_filter = ${t1000-e.build_src_filter}
  757. +<helpers/nrf52/SerialBLEInterface.cpp>
  758. +<../examples/companion_radio/*.cpp>
  759. lib_deps = ${t1000-e.lib_deps}
  760. densaugeo/base64 @ ~1.4.0
  761. [nrf52840_t114]
  762. extends = nrf52_base
  763. platform_packages = framework-arduinoadafruitnrf52
  764. build_flags = ${nrf52_base.build_flags}
  765. -I src/helpers/nrf52
  766. -I lib/nrf52/s140_nrf52_6.1.1_API/include
  767. -I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
  768. lib_deps =
  769. ${nrf52_base.lib_deps}
  770. rweather/Crypto @ ^0.4.0
  771. [Heltec_t114]
  772. extends = nrf52840_t114
  773. board = heltec_t114
  774. board_build.ldscript = boards/nrf52840_s140_v6.ld
  775. build_flags = ${nrf52840_t114.build_flags}
  776. -Ivariants/t114
  777. -DHELTEC_T114
  778. -D P_LORA_TX_LED=35
  779. -D RADIO_CLASS=CustomSX1262
  780. -D WRAPPER_CLASS=CustomSX1262Wrapper
  781. -D LORA_TX_POWER=22
  782. -D SX126X_CURRENT_LIMIT=130
  783. -D SX126X_RX_BOOSTED_GAIN=1
  784. build_src_filter = ${nrf52840_t114.build_src_filter}
  785. +<helpers/*.cpp>
  786. +<helpers/nrf52/T114Board.cpp>
  787. +<../variants/t114>
  788. debug_tool = jlink
  789. upload_protocol = nrfutil
  790. [env:Heltec_t114_repeater]
  791. extends = Heltec_t114
  792. build_src_filter = ${Heltec_t114.build_src_filter}
  793. +<../examples/simple_repeater/main.cpp>
  794. build_flags =
  795. ${Heltec_t114.build_flags}
  796. -D ADVERT_NAME='"Heltec_T114 Repeater"'
  797. -D ADVERT_LAT=-37.0
  798. -D ADVERT_LON=145.0
  799. -D ADMIN_PASSWORD='"password"'
  800. ; -D MESH_PACKET_LOGGING=1
  801. ; -D MESH_DEBUG=1
  802. [env:Heltec_t114_room_server]
  803. extends = Heltec_t114
  804. build_src_filter = ${Heltec_t114.build_src_filter}
  805. +<../examples/simple_room_server>
  806. build_flags =
  807. ${Heltec_t114.build_flags}
  808. -D ADVERT_NAME='"Heltec_T114 Room"'
  809. -D ADVERT_LAT=-37.0
  810. -D ADVERT_LON=145.0
  811. -D ADMIN_PASSWORD='"password"'
  812. -D ROOM_PASSWORD='"hello"'
  813. ; -D MESH_PACKET_LOGGING=1
  814. ; -D MESH_DEBUG=1
  815. [env:Heltec_t114_companion_radio_ble]
  816. extends = Heltec_t114
  817. build_flags =
  818. ${Heltec_t114.build_flags}
  819. -D MAX_CONTACTS=100
  820. -D MAX_GROUP_CHANNELS=8
  821. -D BLE_PIN_CODE=123456
  822. -D BLE_DEBUG_LOGGING=1
  823. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  824. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  825. ; -D MESH_PACKET_LOGGING=1
  826. ; -D MESH_DEBUG=1
  827. build_src_filter = ${Heltec_t114.build_src_filter}
  828. +<helpers/nrf52/*.cpp>
  829. +<../examples/companion_radio/main.cpp>
  830. lib_deps =
  831. ${Heltec_t114.lib_deps}
  832. densaugeo/base64 @ ~1.4.0
  833. [nrf52840_techo]
  834. extends = nrf52_base
  835. platform_packages = framework-arduinoadafruitnrf52
  836. build_flags = ${nrf52_base.build_flags}
  837. -I src/helpers/nrf52
  838. -I lib/nrf52/s140_nrf52_6.1.1_API/include
  839. -I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
  840. lib_deps =
  841. ${nrf52_base.lib_deps}
  842. rweather/Crypto @ ^0.4.0
  843. [LilyGo_Techo]
  844. extends = nrf52840_techo
  845. board = t-echo
  846. board_build.ldscript = boards/nrf52840_s140_v6.ld
  847. build_flags = ${nrf52840_techo.build_flags}
  848. -Ivariants/techo
  849. -DLILYGO_TECHO
  850. -D RADIO_CLASS=CustomSX1262
  851. -D WRAPPER_CLASS=CustomSX1262Wrapper
  852. -D LORA_TX_POWER=22
  853. -D SX126X_CURRENT_LIMIT=130
  854. -D SX126X_RX_BOOSTED_GAIN=1
  855. build_src_filter = ${nrf52840_techo.build_src_filter}
  856. +<helpers/*.cpp>
  857. +<helpers/nrf52/TechoBoard.cpp>
  858. +<../variants/techo>
  859. debug_tool = jlink
  860. upload_protocol = nrfutil
  861. [env:LilyGo_T-Echo_repeater]
  862. extends = LilyGo_Techo
  863. build_src_filter = ${LilyGo_Techo.build_src_filter} +<../examples/simple_repeater/main.cpp>
  864. build_flags =
  865. ${LilyGo_Techo.build_flags}
  866. -D ADVERT_NAME='"T-Echo Repeater"'
  867. -D ADVERT_LAT=-37.0
  868. -D ADVERT_LON=145.0
  869. -D ADMIN_PASSWORD='"password"'
  870. ; -D MESH_PACKET_LOGGING=1
  871. ; -D MESH_DEBUG=1
  872. [env:LilyGo_T-Echo_room_server]
  873. extends = LilyGo_Techo
  874. build_src_filter = ${LilyGo_Techo.build_src_filter} +<../examples/simple_room_server/main.cpp>
  875. build_flags =
  876. ${LilyGo_Techo.build_flags}
  877. -D ADVERT_NAME='"T-Echo Room"'
  878. -D ADVERT_LAT=-37.0
  879. -D ADVERT_LON=145.0
  880. -D ADMIN_PASSWORD='"password"'
  881. ; -D MESH_PACKET_LOGGING=1
  882. ; -D MESH_DEBUG=1
  883. [env:LilyGo_T-Echo_companion_radio_ble]
  884. extends = LilyGo_Techo
  885. build_flags =
  886. ${LilyGo_Techo.build_flags}
  887. -D MAX_CONTACTS=100
  888. -D MAX_GROUP_CHANNELS=8
  889. -D BLE_PIN_CODE=123456
  890. -D BLE_DEBUG_LOGGING=1
  891. ; -D ENABLE_PRIVATE_KEY_IMPORT=1
  892. ; -D ENABLE_PRIVATE_KEY_EXPORT=1
  893. ; -D MESH_PACKET_LOGGING=1
  894. ; -D MESH_DEBUG=1
  895. build_src_filter = ${LilyGo_Techo.build_src_filter}
  896. +<helpers/nrf52/*.cpp>
  897. +<../examples/companion_radio/main.cpp>
  898. lib_deps =
  899. ${LilyGo_Techo.lib_deps}
  900. densaugeo/base64 @ ~1.4.0