platformio.ini 8.6 KB

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