platformio.ini 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. [ikoka_stick_nrf]
  2. extends = nrf52_base
  3. board = seeed-xiao-afruitnrf52-nrf52840
  4. board_build.ldscript = boards/nrf52840_s140_v7.ld
  5. build_flags = ${nrf52_base.build_flags}
  6. ${sensor_base.build_flags}
  7. -D NRF52_PLATFORM -D XIAO_NRF52
  8. -I lib/nrf52/s140_nrf52_7.3.0_API/include
  9. -I lib/nrf52/s140_nrf52_7.3.0_API/include/nrf52
  10. -I variants/ikoka_stick_nrf
  11. -I src/helpers/nrf52
  12. -D P_LORA_TX_LED=11
  13. -D DISPLAY_CLASS=SSD1306Display
  14. -D DISPLAY_ROTATION=2
  15. -D USE_SX1262
  16. -D RADIO_CLASS=CustomSX1262
  17. -D WRAPPER_CLASS=CustomSX1262Wrapper
  18. -D P_LORA_DIO_1=D1
  19. -D P_LORA_RESET=D2
  20. -D P_LORA_BUSY=D3
  21. -D P_LORA_NSS=D4
  22. -D SX126X_RXEN=D5
  23. -D SX126X_TXEN=RADIOLIB_NC
  24. -D SX126X_DIO2_AS_RF_SWITCH=1
  25. -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  26. -D SX126X_CURRENT_LIMIT=140
  27. -D SX126X_RX_BOOSTED_GAIN=1
  28. -D PIN_USER_BTN=0
  29. -D PIN_WIRE_SCL=7
  30. -D PIN_WIRE_SDA=6
  31. -UENV_INCLUDE_GPS
  32. lib_deps = ${nrf52_base.lib_deps}
  33. ${sensor_base.lib_deps}
  34. [ikoka_stick_nrf_e22_22dbm]
  35. extends = ikoka_stick_nrf
  36. ; No PA in this model, full 22dBm
  37. build_flags =
  38. ${ikoka_stick_nrf.build_flags}
  39. -D MANUFACTURER_STRING='"Ikoka Stick-E22-22dBm (Xiao_nrf52)"'
  40. -D LORA_TX_POWER=22
  41. build_src_filter = ${ikoka_stick_nrf.build_src_filter}
  42. +<helpers/*.cpp>
  43. +<helpers/sensors>
  44. +<helpers/ui/MomentaryButton.cpp>
  45. +<helpers/ui/SSD1306Display.cpp>
  46. +<../variants/ikoka_stick_nrf>
  47. [ikoka_stick_nrf_e22_30dbm]
  48. extends = ikoka_stick_nrf
  49. ; limit txpower to 20dBm on E22-900M30S. Anything higher will
  50. ; cause distortion in the PA output. 20dBm in -> 30dBm out
  51. build_flags =
  52. ${ikoka_stick_nrf.build_flags}
  53. -D MANUFACTURER_STRING='"Ikoka Stick-E22-30dBm (Xiao_nrf52)"'
  54. -D LORA_TX_POWER=20
  55. build_src_filter = ${ikoka_stick_nrf.build_src_filter}
  56. +<helpers/*.cpp>
  57. +<helpers/sensors>
  58. +<helpers/ui/MomentaryButton.cpp>
  59. +<helpers/ui/SSD1306Display.cpp>
  60. +<../variants/ikoka_stick_nrf>
  61. [ikoka_stick_nrf_e22_33dbm]
  62. extends = ikoka_stick_nrf
  63. ; limit txpower to 9dBm on E22-900M33S to avoid hardware damage
  64. ; to the rf amplifier frontend. 9dBm in -> 33dBm out
  65. build_flags =
  66. ${ikoka_stick_nrf.build_flags}
  67. -D MANUFACTURER_STRING='"Ikoka Stick-E22-33dBm (Xiao_nrf52)"'
  68. -D LORA_TX_POWER=9
  69. build_src_filter = ${ikoka_stick_nrf.build_src_filter}
  70. +<helpers/*.cpp>
  71. +<helpers/sensors>
  72. +<helpers/ui/MomentaryButton.cpp>
  73. +<helpers/ui/SSD1306Display.cpp>
  74. +<../variants/ikoka_stick_nrf>
  75. ;;; abstracted firmware roles
  76. [ikoka_stick_nrf_companion_radio_ble]
  77. extends = ikoka_stick_nrf
  78. board_build.ldscript = boards/nrf52840_s140_v7_extrafs.ld
  79. board_upload.maximum_size = 708608
  80. build_flags =
  81. ${ikoka_stick_nrf.build_flags}
  82. -D MAX_CONTACTS=350
  83. -D MAX_GROUP_CHANNELS=40
  84. -D BLE_PIN_CODE=123456
  85. -D OFFLINE_QUEUE_SIZE=256
  86. -I examples/companion_radio/ui-new
  87. -D QSPIFLASH=1
  88. ; -D BLE_DEBUG_LOGGING=1
  89. ; -D MESH_PACKET_LOGGING=1
  90. ; -D MESH_DEBUG=1
  91. build_src_filter = ${ikoka_stick_nrf.build_src_filter}
  92. +<helpers/nrf52/SerialBLEInterface.cpp>
  93. +<../examples/companion_radio/*.cpp>
  94. +<../examples/companion_radio/ui-new/*.cpp>
  95. lib_deps =
  96. ${ikoka_stick_nrf.lib_deps}
  97. densaugeo/base64 @ ~1.4.0
  98. [ikoka_stick_nrf_companion_radio_usb]
  99. extends = ikoka_stick_nrf
  100. board_build.ldscript = boards/nrf52840_s140_v7_extrafs.ld
  101. board_upload.maximum_size = 708608
  102. build_flags =
  103. ${ikoka_stick_nrf.build_flags}
  104. -D MAX_CONTACTS=350
  105. -D MAX_GROUP_CHANNELS=40
  106. -I examples/companion_radio/ui-new
  107. -D QSPIFLASH=1
  108. ; -D MESH_PACKET_LOGGING=1
  109. ; -D MESH_DEBUG=1
  110. build_src_filter = ${ikoka_stick_nrf.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_stick_nrf.lib_deps}
  116. densaugeo/base64 @ ~1.4.0
  117. [ikoka_stick_nrf_repeater]
  118. extends = ikoka_stick_nrf
  119. build_flags =
  120. ${ikoka_stick_nrf.build_flags}
  121. -D ADVERT_NAME='"Ikoka Stick Repeater"'
  122. -D ADVERT_LAT=0.0
  123. -D ADVERT_LON=0.0
  124. -D ADMIN_PASSWORD='"password"'
  125. -D MAX_NEIGHBOURS=50
  126. ; -D MESH_PACKET_LOGGING=1
  127. ; -D MESH_DEBUG=1
  128. build_src_filter = ${ikoka_stick_nrf.build_src_filter}
  129. +<helpers/ui/SSD1306Display.cpp>
  130. +<../examples/simple_repeater/*.cpp>
  131. [ikoka_stick_nrf_room_server]
  132. extends = ikoka_stick_nrf
  133. build_flags =
  134. ${ikoka_stick_nrf.build_flags}
  135. -D ADVERT_NAME='"Ikoka Stick Room"'
  136. -D ADVERT_LAT=0.0
  137. -D ADVERT_LON=0.0
  138. -D ADMIN_PASSWORD='"password"'
  139. ; -D MESH_PACKET_LOGGING=1
  140. ; -D MESH_DEBUG=1
  141. build_src_filter = ${ikoka_stick_nrf.build_src_filter}
  142. +<../examples/simple_room_server/*.cpp>
  143. ;;; hardware + firmware variants
  144. ;;; 22dBm EBYTE E22-900M22 variants
  145. [env:ikoka_stick_nrf_22dbm_companion_radio_usb]
  146. extends =
  147. ikoka_stick_nrf_e22_22dbm
  148. ikoka_stick_nrf_companion_radio_usb
  149. build_flags =
  150. ${ikoka_stick_nrf_companion_radio_usb.build_flags}
  151. ${ikoka_stick_nrf_e22_22dbm.build_flags}
  152. build_src_filter =
  153. ${ikoka_stick_nrf_companion_radio_usb.build_src_filter}
  154. ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
  155. [env:ikoka_stick_nrf_22dbm_companion_radio_ble]
  156. extends =
  157. ikoka_stick_nrf_e22_22dbm
  158. ikoka_stick_nrf_companion_radio_ble
  159. build_flags =
  160. ${ikoka_stick_nrf_companion_radio_ble.build_flags}
  161. ${ikoka_stick_nrf_e22_22dbm.build_flags}
  162. build_src_filter =
  163. ${ikoka_stick_nrf_companion_radio_ble.build_src_filter}
  164. ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
  165. [env:ikoka_stick_nrf_22dbm_repeater]
  166. extends =
  167. ikoka_stick_nrf_e22_22dbm
  168. ikoka_stick_nrf_repeater
  169. build_flags =
  170. ${ikoka_stick_nrf_repeater.build_flags}
  171. ${ikoka_stick_nrf_e22_22dbm.build_flags}
  172. build_src_filter =
  173. ${ikoka_stick_nrf_repeater.build_src_filter}
  174. ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
  175. [env:ikoka_stick_nrf_22dbm_room_server]
  176. extends =
  177. ikoka_stick_nrf_e22_22dbm
  178. ikoka_stick_nrf_room_server
  179. build_flags =
  180. ${ikoka_stick_nrf_room_server.build_flags}
  181. ${ikoka_stick_nrf_e22_22dbm.build_flags}
  182. build_src_filter =
  183. ${ikoka_stick_nrf_room_server.build_src_filter}
  184. ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
  185. ;;; 30dBm EBYTE E22-900M30 variants
  186. [env:ikoka_stick_nrf_30dbm_companion_radio_usb]
  187. extends =
  188. ikoka_stick_nrf_e22_30dbm
  189. ikoka_stick_nrf_companion_radio_usb
  190. build_flags =
  191. ${ikoka_stick_nrf_companion_radio_usb.build_flags}
  192. ${ikoka_stick_nrf_e22_30dbm.build_flags}
  193. build_src_filter =
  194. ${ikoka_stick_nrf_companion_radio_usb.build_src_filter}
  195. ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
  196. [env:ikoka_stick_nrf_30dbm_companion_radio_ble]
  197. extends =
  198. ikoka_stick_nrf_e22_30dbm
  199. ikoka_stick_nrf_companion_radio_ble
  200. build_flags =
  201. ${ikoka_stick_nrf_companion_radio_ble.build_flags}
  202. ${ikoka_stick_nrf_e22_30dbm.build_flags}
  203. build_src_filter =
  204. ${ikoka_stick_nrf_companion_radio_ble.build_src_filter}
  205. ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
  206. [env:ikoka_stick_nrf_30dbm_repeater]
  207. extends =
  208. ikoka_stick_nrf_e22_30dbm
  209. ikoka_stick_nrf_repeater
  210. build_flags =
  211. ${ikoka_stick_nrf_repeater.build_flags}
  212. ${ikoka_stick_nrf_e22_30dbm.build_flags}
  213. build_src_filter =
  214. ${ikoka_stick_nrf_repeater.build_src_filter}
  215. ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
  216. [env:ikoka_stick_nrf_30dbm_room_server]
  217. extends =
  218. ikoka_stick_nrf_e22_30dbm
  219. ikoka_stick_nrf_room_server
  220. build_flags =
  221. ${ikoka_stick_nrf_room_server.build_flags}
  222. ${ikoka_stick_nrf_e22_30dbm.build_flags}
  223. build_src_filter =
  224. ${ikoka_stick_nrf_room_server.build_src_filter}
  225. ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
  226. ;;; 33dBm EBYTE E22-900M33 variants
  227. [env:ikoka_stick_nrf_33dbm_companion_radio_usb]
  228. extends =
  229. ikoka_stick_nrf_e22_33dbm
  230. ikoka_stick_nrf_companion_radio_usb
  231. build_flags =
  232. ${ikoka_stick_nrf_companion_radio_usb.build_flags}
  233. ${ikoka_stick_nrf_e22_33dbm.build_flags}
  234. build_src_filter =
  235. ${ikoka_stick_nrf_companion_radio_usb.build_src_filter}
  236. ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
  237. [env:ikoka_stick_nrf_33dbm_companion_radio_ble]
  238. extends =
  239. ikoka_stick_nrf_e22_33dbm
  240. ikoka_stick_nrf_companion_radio_ble
  241. build_flags =
  242. ${ikoka_stick_nrf_companion_radio_ble.build_flags}
  243. ${ikoka_stick_nrf_e22_33dbm.build_flags}
  244. build_src_filter =
  245. ${ikoka_stick_nrf_companion_radio_ble.build_src_filter}
  246. ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
  247. [env:ikoka_stick_nrf_33dbm_repeater]
  248. extends =
  249. ikoka_stick_nrf_e22_33dbm
  250. ikoka_stick_nrf_repeater
  251. build_flags =
  252. ${ikoka_stick_nrf_repeater.build_flags}
  253. ${ikoka_stick_nrf_e22_33dbm.build_flags}
  254. build_src_filter =
  255. ${ikoka_stick_nrf_repeater.build_src_filter}
  256. ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
  257. [env:ikoka_stick_nrf_33dbm_room_server]
  258. extends =
  259. ikoka_stick_nrf_e22_33dbm
  260. ikoka_stick_nrf_room_server
  261. build_flags =
  262. ${ikoka_stick_nrf_room_server.build_flags}
  263. ${ikoka_stick_nrf_e22_33dbm.build_flags}
  264. build_src_filter =
  265. ${ikoka_stick_nrf_room_server.build_src_filter}
  266. ${ikoka_stick_nrf_e22_33dbm.build_src_filter}