platformio.ini 8.5 KB

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