platformio.ini 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  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_stick_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_stick_nrf
  30. -I src/helpers/nrf52
  31. -D DISPLAY_CLASS=SSD1306Display
  32. -D DISPLAY_ROTATION=2
  33. -D RADIO_CLASS=CustomSX1262
  34. -D WRAPPER_CLASS=CustomSX1262Wrapper
  35. -D P_LORA_DIO_1=D1
  36. -D P_LORA_RESET=D2
  37. -D P_LORA_BUSY=D3
  38. -D P_LORA_NSS=D4
  39. -D SX126X_RXEN=D5
  40. -D SX126X_TXEN=RADIOLIB_NC
  41. -D SX126X_DIO2_AS_RF_SWITCH=1
  42. -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  43. -D SX126X_CURRENT_LIMIT=140
  44. -D SX126X_RX_BOOSTED_GAIN=1
  45. -D PIN_USER_BTN=0
  46. -D PIN_WIRE_SCL=7
  47. -D PIN_WIRE_SDA=6
  48. -D ENV_INCLUDE_AHTX0=1
  49. -D ENV_INCLUDE_BME280=1
  50. -D ENV_INCLUDE_INA3221=1
  51. -D ENV_INCLUDE_INA219=1
  52. debug_tool = jlink
  53. upload_protocol = nrfutil
  54. ;;; abstracted hardware variants
  55. [ikoka_stick_nrf_e22_22dbm]
  56. extends = ikoka_stick_nrf_baseboard
  57. ; No PA in this model, full 22dBm
  58. build_flags =
  59. ${ikoka_stick_nrf_baseboard.build_flags}
  60. -D MANUFACTURER_STRING='"Ikoka Stick-E22-22dBm (Xiao_nrf52)"'
  61. -D LORA_TX_POWER=22
  62. build_src_filter = ${nrf52840_xiao.build_src_filter}
  63. +<helpers/*.cpp>
  64. +<helpers/sensors>
  65. +<helpers/ui/MomentaryButton.cpp>
  66. +<helpers/ui/SSD1306Display.cpp>
  67. +<../variants/ikoka_stick_nrf>
  68. [ikoka_stick_nrf_e22_30dbm]
  69. extends = ikoka_stick_nrf_baseboard
  70. ; limit txpower to 20dBm on E22-900M30S. Anything higher will
  71. ; cause distortion in the PA output. 20dBm in -> 30dBm out
  72. build_flags =
  73. ${ikoka_stick_nrf_baseboard.build_flags}
  74. -D MANUFACTURER_STRING='"Ikoka Stick-E22-30dBm (Xiao_nrf52)"'
  75. -D LORA_TX_POWER=20
  76. build_src_filter = ${nrf52840_xiao.build_src_filter}
  77. +<helpers/*.cpp>
  78. +<helpers/sensors>
  79. +<helpers/ui/MomentaryButton.cpp>
  80. +<helpers/ui/SSD1306Display.cpp>
  81. +<../variants/ikoka_stick_nrf>
  82. [ikoka_stick_nrf_e22_33dbm]
  83. extends = ikoka_stick_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_stick_nrf_baseboard.build_flags}
  88. -D MANUFACTURER_STRING='"Ikoka Stick-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/MomentaryButton.cpp>
  94. +<helpers/ui/SSD1306Display.cpp>
  95. +<../variants/ikoka_stick_nrf>
  96. ;;; abstracted firmware roles
  97. [ikoka_stick_nrf_companion_radio_ble]
  98. extends = ikoka_stick_nrf_baseboard
  99. build_flags =
  100. ${ikoka_stick_nrf_baseboard.build_flags}
  101. -D MAX_CONTACTS=100
  102. -D MAX_GROUP_CHANNELS=8
  103. -D BLE_PIN_CODE=123456
  104. -D OFFLINE_QUEUE_SIZE=256
  105. -I examples/companion_radio/ui-new
  106. ; -D BLE_DEBUG_LOGGING=1
  107. ; -D MESH_PACKET_LOGGING=1
  108. ; -D MESH_DEBUG=1
  109. build_src_filter = ${ikoka_stick_nrf_baseboard.build_src_filter}
  110. +<helpers/nrf52/SerialBLEInterface.cpp>
  111. +<../examples/companion_radio/*.cpp>
  112. +<../examples/companion_radio/ui-new/*.cpp>
  113. lib_deps =
  114. ${ikoka_stick_nrf_baseboard.lib_deps}
  115. densaugeo/base64 @ ~1.4.0
  116. [ikoka_stick_nrf_companion_radio_usb]
  117. extends = ikoka_stick_nrf_baseboard
  118. build_flags =
  119. ${ikoka_stick_nrf_baseboard.build_flags}
  120. -D MAX_CONTACTS=100
  121. -D MAX_GROUP_CHANNELS=8
  122. -I examples/companion_radio/ui-new
  123. ; -D MESH_PACKET_LOGGING=1
  124. ; -D MESH_DEBUG=1
  125. build_src_filter = ${ikoka_stick_nrf_baseboard.build_src_filter}
  126. +<helpers/nrf52/SerialBLEInterface.cpp>
  127. +<../examples/companion_radio/*.cpp>
  128. +<../examples/companion_radio/ui-new/*.cpp>
  129. lib_deps =
  130. ${ikoka_stick_nrf_baseboard.lib_deps}
  131. densaugeo/base64 @ ~1.4.0
  132. [ikoka_stick_nrf_repeater]
  133. extends = ikoka_stick_nrf_baseboard
  134. build_flags =
  135. ${ikoka_stick_nrf_baseboard.build_flags}
  136. -D ADVERT_NAME='"Ikoka Stick Repeater"'
  137. -D ADVERT_LAT=0.0
  138. -D ADVERT_LON=0.0
  139. -D ADMIN_PASSWORD='"password"'
  140. -D MAX_NEIGHBOURS=8
  141. ; -D MESH_PACKET_LOGGING=1
  142. ; -D MESH_DEBUG=1
  143. build_src_filter = ${ikoka_stick_nrf_baseboard.build_src_filter}
  144. +<helpers/ui/SSD1306Display.cpp>
  145. +<../examples/simple_repeater/*.cpp>
  146. [ikoka_stick_nrf_room_server]
  147. extends = ikoka_stick_nrf_baseboard
  148. build_flags =
  149. ${ikoka_stick_nrf_baseboard.build_flags}
  150. -D ADVERT_NAME='"Ikoka Stick Room"'
  151. -D ADVERT_LAT=0.0
  152. -D ADVERT_LON=0.0
  153. -D ADMIN_PASSWORD='"password"'
  154. ; -D MESH_PACKET_LOGGING=1
  155. ; -D MESH_DEBUG=1
  156. build_src_filter = ${ikoka_stick_nrf_baseboard.build_src_filter}
  157. +<../examples/simple_room_server/*.cpp>
  158. ;;; hardware + firmware variants
  159. ;;; 22dBm EBYTE E22-900M22 variants
  160. [env:ikoka_stick_nrf_22dbm_companion_radio_usb]
  161. extends =
  162. ikoka_stick_nrf_e22_22dbm
  163. ikoka_stick_nrf_companion_radio_usb
  164. build_flags =
  165. ${ikoka_stick_nrf_companion_radio_usb.build_flags}
  166. ${ikoka_stick_nrf_e22_22dbm.build_flags}
  167. build_src_filter =
  168. ${ikoka_stick_nrf_companion_radio_usb.build_src_filter}
  169. ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
  170. [env:ikoka_stick_nrf_22dbm_companion_radio_ble]
  171. extends =
  172. ikoka_stick_nrf_e22_22dbm
  173. ikoka_stick_nrf_companion_radio_ble
  174. build_flags =
  175. ${ikoka_stick_nrf_companion_radio_ble.build_flags}
  176. ${ikoka_stick_nrf_e22_22dbm.build_flags}
  177. build_src_filter =
  178. ${ikoka_stick_nrf_companion_radio_ble.build_src_filter}
  179. ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
  180. [env:ikoka_stick_nrf_22dbm_repeater]
  181. extends =
  182. ikoka_stick_nrf_e22_22dbm
  183. ikoka_stick_nrf_repeater
  184. build_flags =
  185. ${ikoka_stick_nrf_repeater.build_flags}
  186. ${ikoka_stick_nrf_e22_22dbm.build_flags}
  187. build_src_filter =
  188. ${ikoka_stick_nrf_repeater.build_src_filter}
  189. ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
  190. [env:ikoka_stick_nrf_22dbm_room_server]
  191. extends =
  192. ikoka_stick_nrf_e22_22dbm
  193. ikoka_stick_nrf_room_server
  194. build_flags =
  195. ${ikoka_stick_nrf_room_server.build_flags}
  196. ${ikoka_stick_nrf_e22_22dbm.build_flags}
  197. build_src_filter =
  198. ${ikoka_stick_nrf_room_server.build_src_filter}
  199. ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
  200. ;;; 30dBm EBYTE E22-900M30 variants
  201. [env:ikoka_stick_nrf_30dbm_companion_radio_usb]
  202. extends =
  203. ikoka_stick_nrf_e22_30dbm
  204. ikoka_stick_nrf_companion_radio_usb
  205. build_flags =
  206. ${ikoka_stick_nrf_companion_radio_usb.build_flags}
  207. ${ikoka_stick_nrf_e22_30dbm.build_flags}
  208. build_src_filter =
  209. ${ikoka_stick_nrf_companion_radio_usb.build_src_filter}
  210. ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
  211. [env:ikoka_stick_nrf_30dbm_companion_radio_ble]
  212. extends =
  213. ikoka_stick_nrf_e22_30dbm
  214. ikoka_stick_nrf_companion_radio_ble
  215. build_flags =
  216. ${ikoka_stick_nrf_companion_radio_ble.build_flags}
  217. ${ikoka_stick_nrf_e22_30dbm.build_flags}
  218. build_src_filter =
  219. ${ikoka_stick_nrf_companion_radio_ble.build_src_filter}
  220. ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
  221. [env:ikoka_stick_nrf_30dbm_repeater]
  222. extends =
  223. ikoka_stick_nrf_e22_30dbm
  224. ikoka_stick_nrf_repeater
  225. build_flags =
  226. ${ikoka_stick_nrf_repeater.build_flags}
  227. ${ikoka_stick_nrf_e22_30dbm.build_flags}
  228. build_src_filter =
  229. ${ikoka_stick_nrf_repeater.build_src_filter}
  230. ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
  231. [env:ikoka_stick_nrf_30dbm_room_server]
  232. extends =
  233. ikoka_stick_nrf_e22_30dbm
  234. ikoka_stick_nrf_room_server
  235. build_flags =
  236. ${ikoka_stick_nrf_room_server.build_flags}
  237. ${ikoka_stick_nrf_e22_30dbm.build_flags}
  238. build_src_filter =
  239. ${ikoka_stick_nrf_room_server.build_src_filter}
  240. ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
  241. ;;; 33dBm EBYTE E22-900M33 variants
  242. [env:ikoka_stick_nrf_33dbm_companion_radio_usb]
  243. extends =
  244. ikoka_stick_nrf_e22_33dbm
  245. ikoka_stick_nrf_companion_radio_usb
  246. build_flags =
  247. ${ikoka_stick_nrf_companion_radio_usb.build_flags}
  248. ${ikoka_stick_nrf_e22_33dbm.build_flags}
  249. build_src_filter =
  250. ${ikoka_stick_nrf_companion_radio_usb.build_src_filter}
  251. ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
  252. [env:ikoka_stick_nrf_33dbm_companion_radio_ble]
  253. extends =
  254. ikoka_stick_nrf_e22_33dbm
  255. ikoka_stick_nrf_companion_radio_ble
  256. build_flags =
  257. ${ikoka_stick_nrf_companion_radio_ble.build_flags}
  258. ${ikoka_stick_nrf_e22_33dbm.build_flags}
  259. build_src_filter =
  260. ${ikoka_stick_nrf_companion_radio_ble.build_src_filter}
  261. ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
  262. [env:ikoka_stick_nrf_33dbm_repeater]
  263. extends =
  264. ikoka_stick_nrf_e22_33dbm
  265. ikoka_stick_nrf_repeater
  266. build_flags =
  267. ${ikoka_stick_nrf_repeater.build_flags}
  268. ${ikoka_stick_nrf_e22_33dbm.build_flags}
  269. build_src_filter =
  270. ${ikoka_stick_nrf_repeater.build_src_filter}
  271. ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
  272. [env:ikoka_stick_nrf_33dbm_room_server]
  273. extends =
  274. ikoka_stick_nrf_e22_33dbm
  275. ikoka_stick_nrf_room_server
  276. build_flags =
  277. ${ikoka_stick_nrf_room_server.build_flags}
  278. ${ikoka_stick_nrf_e22_33dbm.build_flags}
  279. build_src_filter =
  280. ${ikoka_stick_nrf_room_server.build_src_filter}
  281. ${ikoka_stick_nrf_e22_33dbm.build_src_filter}