platformio.ini 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. [nrf52840_xiao]
  2. extends = nrf52_base
  3. platform_packages =
  4. toolchain-gccarmnoneeabi@~1.100301.0
  5. framework-arduinoadafruitnrf52
  6. board = seeed-xiao-afruitnrf52-nrf52840
  7. board_build.ldscript = boards/nrf52840_s140_v7.ld
  8. build_flags = ${nrf52_base.build_flags}
  9. -D NRF52_PLATFORM -D XIAO_NRF52
  10. -I lib/nrf52/s140_nrf52_7.3.0_API/include
  11. -I lib/nrf52/s140_nrf52_7.3.0_API/include/nrf52
  12. lib_ignore =
  13. BluetoothOTA
  14. lvgl
  15. lib5b4
  16. lib_deps =
  17. ${nrf52_base.lib_deps}
  18. rweather/Crypto @ ^0.4.0
  19. adafruit/Adafruit INA3221 Library @ ^1.0.1
  20. adafruit/Adafruit INA219 @ ^1.2.3
  21. adafruit/Adafruit AHTX0 @ ^2.0.5
  22. adafruit/Adafruit BME280 Library @ ^2.3.0
  23. adafruit/Adafruit SSD1306 @ ^2.5.13
  24. [ikoka_nano_nrf_baseboard]
  25. extends = nrf52840_xiao
  26. ;board_build.ldscript = boards/nrf52840_s140_v7.ld
  27. build_flags = ${nrf52840_xiao.build_flags}
  28. -D P_LORA_TX_LED=11
  29. -I variants/ikoka_nano_nrf
  30. -I src/helpers/nrf52
  31. -D DISPLAY_CLASS=NullDisplayDriver
  32. -D RADIO_CLASS=CustomSX1262
  33. -D WRAPPER_CLASS=CustomSX1262Wrapper
  34. -D P_LORA_DIO_1=D1
  35. ; -D P_LORA_BUSY=D3
  36. -D P_LORA_BUSY=D2 ; specific to ikoka nano variant.
  37. ; -D P_LORA_RESET=D2
  38. -D P_LORA_RESET=D3 ; specific to ikoka nano variant.
  39. ; -D P_LORA_NSS=D4
  40. -D P_LORA_NSS=D0 ; specific to ikoka nano variant.
  41. ; -D SX126X_RXEN=D5
  42. -D SX126X_RXEN=D7
  43. -D SX126X_TXEN=RADIOLIB_NC
  44. -D SX126X_DIO2_AS_RF_SWITCH=1
  45. -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  46. -D SX126X_CURRENT_LIMIT=140
  47. -D SX126X_RX_BOOSTED_GAIN=1
  48. -D PIN_WIRE_SCL=5 ; specific to ikoka nano variant.
  49. -D PIN_WIRE_SDA=4 ; specific to ikoka nano variant.
  50. -D ENV_INCLUDE_AHTX0=1
  51. -D ENV_INCLUDE_BME280=1
  52. -D ENV_INCLUDE_INA3221=1
  53. -D ENV_INCLUDE_INA219=1
  54. debug_tool = jlink
  55. upload_protocol = nrfutil
  56. ;;; abstracted hardware variants
  57. [ikoka_nano_nrf_e22_22dbm]
  58. extends = ikoka_nano_nrf_baseboard
  59. ; No PA in this model, full 22dBm
  60. build_flags =
  61. ${ikoka_nano_nrf_baseboard.build_flags}
  62. -D MANUFACTURER_STRING='"Ikoka Nano-E22-22dBm (Xiao_nrf52)"'
  63. -D LORA_TX_POWER=22
  64. build_src_filter = ${nrf52840_xiao.build_src_filter}
  65. +<helpers/*.cpp>
  66. +<helpers/sensors>
  67. +<helpers/ui/NullDisplayDriver.cpp>
  68. +<../variants/ikoka_nano_nrf>
  69. [ikoka_nano_nrf_e22_30dbm]
  70. extends = ikoka_nano_nrf_baseboard
  71. ; limit txpower to 20dBm on E22-900M30S. Anything higher will
  72. ; cause distortion in the PA output. 20dBm in -> 30dBm out
  73. build_flags =
  74. ${ikoka_nano_nrf_baseboard.build_flags}
  75. -D MANUFACTURER_STRING='"Ikoka Nano-E22-30dBm (Xiao_nrf52)"'
  76. -D LORA_TX_POWER=20
  77. build_src_filter = ${nrf52840_xiao.build_src_filter}
  78. +<helpers/*.cpp>
  79. +<helpers/sensors>
  80. +<helpers/ui/NullDisplayDriver.cpp>
  81. +<../variants/ikoka_nano_nrf>
  82. [ikoka_nano_nrf_e22_33dbm]
  83. extends = ikoka_nano_nrf_baseboard
  84. ; limit txpower to 9dBm on E22-900M33S to avoid hardware damage
  85. ; to the rf amplifier frontend. 9dBm in -> 33dBm out
  86. build_flags =
  87. ${ikoka_nano_nrf_baseboard.build_flags}
  88. -D MANUFACTURER_STRING='"Ikoka Nano-E22-33dBm (Xiao_nrf52)"'
  89. -D LORA_TX_POWER=9
  90. build_src_filter = ${nrf52840_xiao.build_src_filter}
  91. +<helpers/*.cpp>
  92. +<helpers/sensors>
  93. +<helpers/ui/NullDisplayDriver.cpp>
  94. +<../variants/ikoka_nano_nrf>
  95. ;;; abstracted firmware roles
  96. [ikoka_nano_nrf_companion_radio_ble]
  97. extends = ikoka_nano_nrf_baseboard
  98. board_build.ldscript = boards/nrf52840_s140_v7_extrafs.ld
  99. board_upload.maximum_size = 708608
  100. build_flags =
  101. ${ikoka_nano_nrf_baseboard.build_flags}
  102. -D MAX_CONTACTS=350
  103. -D MAX_GROUP_CHANNELS=40
  104. -D BLE_PIN_CODE=123456
  105. -D OFFLINE_QUEUE_SIZE=256
  106. -I examples/companion_radio/ui-new
  107. ; -D BLE_DEBUG_LOGGING=1
  108. ; -D MESH_PACKET_LOGGING=1
  109. ; -D MESH_DEBUG=1
  110. build_src_filter = ${ikoka_nano_nrf_baseboard.build_src_filter}
  111. +<helpers/nrf52/SerialBLEInterface.cpp>
  112. +<../examples/companion_radio/*.cpp>
  113. +<../examples/companion_radio/ui-new/*.cpp>
  114. lib_deps =
  115. ${ikoka_nano_nrf_baseboard.lib_deps}
  116. densaugeo/base64 @ ~1.4.0
  117. [ikoka_nano_nrf_companion_radio_usb]
  118. extends = ikoka_nano_nrf_baseboard
  119. board_build.ldscript = boards/nrf52840_s140_v7_extrafs.ld
  120. board_upload.maximum_size = 708608
  121. build_flags =
  122. ${ikoka_nano_nrf_baseboard.build_flags}
  123. -D MAX_CONTACTS=350
  124. -D MAX_GROUP_CHANNELS=40
  125. -I examples/companion_radio/ui-new
  126. ; -D MESH_PACKET_LOGGING=1
  127. ; -D MESH_DEBUG=1
  128. build_src_filter = ${ikoka_nano_nrf_baseboard.build_src_filter}
  129. +<helpers/nrf52/SerialBLEInterface.cpp>
  130. +<../examples/companion_radio/*.cpp>
  131. +<../examples/companion_radio/ui-new/*.cpp>
  132. lib_deps =
  133. ${ikoka_nano_nrf_baseboard.lib_deps}
  134. densaugeo/base64 @ ~1.4.0
  135. [ikoka_nano_nrf_repeater]
  136. extends = ikoka_nano_nrf_baseboard
  137. build_flags =
  138. ${ikoka_nano_nrf_baseboard.build_flags}
  139. -D ADVERT_NAME='"Ikoka Nano Repeater"'
  140. -D ADVERT_LAT=0.0
  141. -D ADVERT_LON=0.0
  142. -D ADMIN_PASSWORD='"password"'
  143. -D MAX_NEIGHBOURS=50
  144. ; -D MESH_PACKET_LOGGING=1
  145. ; -D MESH_DEBUG=1
  146. build_src_filter = ${ikoka_nano_nrf_baseboard.build_src_filter}
  147. +<../examples/simple_repeater/*.cpp>
  148. [ikoka_nano_nrf_room_server]
  149. extends = ikoka_nano_nrf_baseboard
  150. build_flags =
  151. ${ikoka_nano_nrf_baseboard.build_flags}
  152. -D ADVERT_NAME='"Ikoka Nano Room"'
  153. -D ADVERT_LAT=0.0
  154. -D ADVERT_LON=0.0
  155. -D ADMIN_PASSWORD='"password"'
  156. ; -D MESH_PACKET_LOGGING=1
  157. ; -D MESH_DEBUG=1
  158. build_src_filter = ${ikoka_nano_nrf_baseboard.build_src_filter}
  159. +<../examples/simple_room_server/*.cpp>
  160. ;;; hardware + firmware variants
  161. ;;; 22dBm EBYTE E22-900M22 variants
  162. [env:ikoka_nano_nrf_22dbm_companion_radio_usb]
  163. extends =
  164. ikoka_nano_nrf_e22_22dbm
  165. ikoka_nano_nrf_companion_radio_usb
  166. build_flags =
  167. ${ikoka_nano_nrf_companion_radio_usb.build_flags}
  168. ${ikoka_nano_nrf_e22_22dbm.build_flags}
  169. build_src_filter =
  170. ${ikoka_nano_nrf_companion_radio_usb.build_src_filter}
  171. ${ikoka_nano_nrf_e22_22dbm.build_src_filter}
  172. [env:ikoka_nano_nrf_22dbm_companion_radio_ble]
  173. extends =
  174. ikoka_nano_nrf_e22_22dbm
  175. ikoka_nano_nrf_companion_radio_ble
  176. build_flags =
  177. ${ikoka_nano_nrf_companion_radio_ble.build_flags}
  178. ${ikoka_nano_nrf_e22_22dbm.build_flags}
  179. build_src_filter =
  180. ${ikoka_nano_nrf_companion_radio_ble.build_src_filter}
  181. ${ikoka_nano_nrf_e22_22dbm.build_src_filter}
  182. [env:ikoka_nano_nrf_22dbm_repeater]
  183. extends =
  184. ikoka_nano_nrf_e22_22dbm
  185. ikoka_nano_nrf_repeater
  186. build_flags =
  187. ${ikoka_nano_nrf_repeater.build_flags}
  188. ${ikoka_nano_nrf_e22_22dbm.build_flags}
  189. build_src_filter =
  190. ${ikoka_nano_nrf_repeater.build_src_filter}
  191. ${ikoka_nano_nrf_e22_22dbm.build_src_filter}
  192. [env:ikoka_nano_nrf_22dbm_room_server]
  193. extends =
  194. ikoka_nano_nrf_e22_22dbm
  195. ikoka_nano_nrf_room_server
  196. build_flags =
  197. ${ikoka_nano_nrf_room_server.build_flags}
  198. ${ikoka_nano_nrf_e22_22dbm.build_flags}
  199. build_src_filter =
  200. ${ikoka_nano_nrf_room_server.build_src_filter}
  201. ${ikoka_nano_nrf_e22_22dbm.build_src_filter}
  202. ;;; 30dBm EBYTE E22-900M30 variants
  203. [env:ikoka_nano_nrf_30dbm_companion_radio_usb]
  204. extends =
  205. ikoka_nano_nrf_e22_30dbm
  206. ikoka_nano_nrf_companion_radio_usb
  207. build_flags =
  208. ${ikoka_nano_nrf_companion_radio_usb.build_flags}
  209. ${ikoka_nano_nrf_e22_30dbm.build_flags}
  210. build_src_filter =
  211. ${ikoka_nano_nrf_companion_radio_usb.build_src_filter}
  212. ${ikoka_nano_nrf_e22_30dbm.build_src_filter}
  213. [env:ikoka_nano_nrf_30dbm_companion_radio_ble]
  214. extends =
  215. ikoka_nano_nrf_e22_30dbm
  216. ikoka_nano_nrf_companion_radio_ble
  217. build_flags =
  218. ${ikoka_nano_nrf_companion_radio_ble.build_flags}
  219. ${ikoka_nano_nrf_e22_30dbm.build_flags}
  220. build_src_filter =
  221. ${ikoka_nano_nrf_companion_radio_ble.build_src_filter}
  222. ${ikoka_nano_nrf_e22_30dbm.build_src_filter}
  223. [env:ikoka_nano_nrf_30dbm_repeater]
  224. extends =
  225. ikoka_nano_nrf_e22_30dbm
  226. ikoka_nano_nrf_repeater
  227. build_flags =
  228. ${ikoka_nano_nrf_repeater.build_flags}
  229. ${ikoka_nano_nrf_e22_30dbm.build_flags}
  230. build_src_filter =
  231. ${ikoka_nano_nrf_repeater.build_src_filter}
  232. ${ikoka_nano_nrf_e22_30dbm.build_src_filter}
  233. [env:ikoka_nano_nrf_30dbm_room_server]
  234. extends =
  235. ikoka_nano_nrf_e22_30dbm
  236. ikoka_nano_nrf_room_server
  237. build_flags =
  238. ${ikoka_nano_nrf_room_server.build_flags}
  239. ${ikoka_nano_nrf_e22_30dbm.build_flags}
  240. build_src_filter =
  241. ${ikoka_nano_nrf_room_server.build_src_filter}
  242. ${ikoka_nano_nrf_e22_30dbm.build_src_filter}
  243. ;;; 33dBm EBYTE E22-900M33 variants
  244. [env:ikoka_nano_nrf_33dbm_companion_radio_usb]
  245. extends =
  246. ikoka_nano_nrf_e22_33dbm
  247. ikoka_nano_nrf_companion_radio_usb
  248. build_flags =
  249. ${ikoka_nano_nrf_companion_radio_usb.build_flags}
  250. ${ikoka_nano_nrf_e22_33dbm.build_flags}
  251. build_src_filter =
  252. ${ikoka_nano_nrf_companion_radio_usb.build_src_filter}
  253. ${ikoka_nano_nrf_e22_33dbm.build_src_filter}
  254. [env:ikoka_nano_nrf_33dbm_companion_radio_ble]
  255. extends =
  256. ikoka_nano_nrf_e22_33dbm
  257. ikoka_nano_nrf_companion_radio_ble
  258. build_flags =
  259. ${ikoka_nano_nrf_companion_radio_ble.build_flags}
  260. ${ikoka_nano_nrf_e22_33dbm.build_flags}
  261. build_src_filter =
  262. ${ikoka_nano_nrf_companion_radio_ble.build_src_filter}
  263. ${ikoka_nano_nrf_e22_33dbm.build_src_filter}
  264. [env:ikoka_nano_nrf_33dbm_repeater]
  265. extends =
  266. ikoka_nano_nrf_e22_33dbm
  267. ikoka_nano_nrf_repeater
  268. build_flags =
  269. ${ikoka_nano_nrf_repeater.build_flags}
  270. ${ikoka_nano_nrf_e22_33dbm.build_flags}
  271. build_src_filter =
  272. ${ikoka_nano_nrf_repeater.build_src_filter}
  273. ${ikoka_nano_nrf_e22_33dbm.build_src_filter}
  274. [env:ikoka_nano_nrf_33dbm_room_server]
  275. extends =
  276. ikoka_nano_nrf_e22_33dbm
  277. ikoka_nano_nrf_room_server
  278. build_flags =
  279. ${ikoka_nano_nrf_room_server.build_flags}
  280. ${ikoka_nano_nrf_e22_33dbm.build_flags}
  281. build_src_filter =
  282. ${ikoka_nano_nrf_room_server.build_src_filter}
  283. ${ikoka_nano_nrf_e22_33dbm.build_src_filter}