platformio.ini 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. [ikoka_nano_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_nano_nrf
  11. -I src/helpers/nrf52
  12. -D P_LORA_TX_LED=11
  13. -D DISPLAY_CLASS=NullDisplayDriver
  14. -D USE_SX1262
  15. -D RADIO_CLASS=CustomSX1262
  16. -D WRAPPER_CLASS=CustomSX1262Wrapper
  17. -D P_LORA_DIO_1=D1
  18. -D P_LORA_BUSY=D2
  19. -D P_LORA_RESET=D3
  20. -D P_LORA_NSS=D0
  21. -D SX126X_RXEN=D7
  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_WIRE_SCL=5
  28. -D PIN_WIRE_SDA=4
  29. -UENV_INCLUDE_GPS
  30. debug_tool = jlink
  31. upload_protocol = nrfutil
  32. lib_deps = ${nrf52_base.lib_deps}
  33. ${sensor_base.lib_deps}
  34. [ikoka_nano_nrf_e22_22dbm]
  35. extends = ikoka_nano_nrf
  36. ; No PA in this model, full 22dBm
  37. build_flags =
  38. ${ikoka_nano_nrf.build_flags}
  39. -D MANUFACTURER_STRING='"Ikoka Nano-E22-22dBm (Xiao_nrf52)"'
  40. -D LORA_TX_POWER=22
  41. build_src_filter = ${ikoka_nano_nrf.build_src_filter}
  42. +<helpers/*.cpp>
  43. +<helpers/sensors>
  44. +<helpers/ui/NullDisplayDriver.cpp>
  45. +<../variants/ikoka_nano_nrf>
  46. [ikoka_nano_nrf_e22_30dbm]
  47. extends = ikoka_nano_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_nano_nrf.build_flags}
  52. -D MANUFACTURER_STRING='"Ikoka Nano-E22-30dBm (Xiao_nrf52)"'
  53. -D LORA_TX_POWER=20
  54. build_src_filter = ${ikoka_nano_nrf.build_src_filter}
  55. +<helpers/*.cpp>
  56. +<helpers/sensors>
  57. +<helpers/ui/NullDisplayDriver.cpp>
  58. +<../variants/ikoka_nano_nrf>
  59. [ikoka_nano_nrf_e22_33dbm]
  60. extends = ikoka_nano_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_nano_nrf.build_flags}
  65. -D MANUFACTURER_STRING='"Ikoka Nano-E22-33dBm (Xiao_nrf52)"'
  66. -D LORA_TX_POWER=9
  67. build_src_filter = ${ikoka_nano_nrf.build_src_filter}
  68. +<helpers/*.cpp>
  69. +<helpers/sensors>
  70. +<helpers/ui/NullDisplayDriver.cpp>
  71. +<../variants/ikoka_nano_nrf>
  72. [ikoka_nano_nrf_companion_radio_ble]
  73. extends = ikoka_nano_nrf
  74. board_build.ldscript = boards/nrf52840_s140_v7_extrafs.ld
  75. board_upload.maximum_size = 708608
  76. build_flags =
  77. ${ikoka_nano_nrf.build_flags}
  78. -D MAX_CONTACTS=350
  79. -D MAX_GROUP_CHANNELS=40
  80. -D BLE_PIN_CODE=123456
  81. -D OFFLINE_QUEUE_SIZE=256
  82. -I examples/companion_radio/ui-new
  83. -D QSPIFLASH=1
  84. ; -D BLE_DEBUG_LOGGING=1
  85. ; -D MESH_PACKET_LOGGING=1
  86. ; -D MESH_DEBUG=1
  87. build_src_filter = ${ikoka_nano_nrf.build_src_filter}
  88. +<helpers/nrf52/SerialBLEInterface.cpp>
  89. +<../examples/companion_radio/*.cpp>
  90. +<../examples/companion_radio/ui-new/*.cpp>
  91. lib_deps =
  92. ${ikoka_nano_nrf.lib_deps}
  93. densaugeo/base64 @ ~1.4.0
  94. [ikoka_nano_nrf_companion_radio_usb]
  95. extends = ikoka_nano_nrf
  96. board_build.ldscript = boards/nrf52840_s140_v7_extrafs.ld
  97. board_upload.maximum_size = 708608
  98. build_flags =
  99. ${ikoka_nano_nrf.build_flags}
  100. -D MAX_CONTACTS=350
  101. -D MAX_GROUP_CHANNELS=40
  102. -I examples/companion_radio/ui-new
  103. -D QSPIFLASH=1
  104. ; -D MESH_PACKET_LOGGING=1
  105. ; -D MESH_DEBUG=1
  106. build_src_filter = ${ikoka_nano_nrf.build_src_filter}
  107. +<helpers/nrf52/SerialBLEInterface.cpp>
  108. +<../examples/companion_radio/*.cpp>
  109. +<../examples/companion_radio/ui-new/*.cpp>
  110. lib_deps =
  111. ${ikoka_nano_nrf.lib_deps}
  112. densaugeo/base64 @ ~1.4.0
  113. [ikoka_nano_nrf_repeater]
  114. extends = ikoka_nano_nrf
  115. build_flags =
  116. ${ikoka_nano_nrf.build_flags}
  117. -D ADVERT_NAME='"Ikoka Nano Repeater"'
  118. -D ADVERT_LAT=0.0
  119. -D ADVERT_LON=0.0
  120. -D ADMIN_PASSWORD='"password"'
  121. -D MAX_NEIGHBOURS=50
  122. ; -D MESH_PACKET_LOGGING=1
  123. ; -D MESH_DEBUG=1
  124. build_src_filter = ${ikoka_nano_nrf.build_src_filter}
  125. +<../examples/simple_repeater/*.cpp>
  126. [ikoka_nano_nrf_room_server]
  127. extends = ikoka_nano_nrf
  128. build_flags =
  129. ${ikoka_nano_nrf.build_flags}
  130. -D ADVERT_NAME='"Ikoka Nano Room"'
  131. -D ADVERT_LAT=0.0
  132. -D ADVERT_LON=0.0
  133. -D ADMIN_PASSWORD='"password"'
  134. ; -D MESH_PACKET_LOGGING=1
  135. ; -D MESH_DEBUG=1
  136. build_src_filter = ${ikoka_nano_nrf.build_src_filter}
  137. +<../examples/simple_room_server/*.cpp>
  138. ;;; 22dBm EBYTE E22-900M22 variants
  139. [env:ikoka_nano_nrf_22dbm_companion_radio_usb]
  140. extends =
  141. ikoka_nano_nrf_e22_22dbm
  142. ikoka_nano_nrf_companion_radio_usb
  143. build_flags =
  144. ${ikoka_nano_nrf_companion_radio_usb.build_flags}
  145. ${ikoka_nano_nrf_e22_22dbm.build_flags}
  146. build_src_filter =
  147. ${ikoka_nano_nrf_companion_radio_usb.build_src_filter}
  148. ${ikoka_nano_nrf_e22_22dbm.build_src_filter}
  149. [env:ikoka_nano_nrf_22dbm_companion_radio_ble]
  150. extends =
  151. ikoka_nano_nrf_e22_22dbm
  152. ikoka_nano_nrf_companion_radio_ble
  153. build_flags =
  154. ${ikoka_nano_nrf_companion_radio_ble.build_flags}
  155. ${ikoka_nano_nrf_e22_22dbm.build_flags}
  156. build_src_filter =
  157. ${ikoka_nano_nrf_companion_radio_ble.build_src_filter}
  158. ${ikoka_nano_nrf_e22_22dbm.build_src_filter}
  159. [env:ikoka_nano_nrf_22dbm_repeater]
  160. extends =
  161. ikoka_nano_nrf_e22_22dbm
  162. ikoka_nano_nrf_repeater
  163. build_flags =
  164. ${ikoka_nano_nrf_repeater.build_flags}
  165. ${ikoka_nano_nrf_e22_22dbm.build_flags}
  166. build_src_filter =
  167. ${ikoka_nano_nrf_repeater.build_src_filter}
  168. ${ikoka_nano_nrf_e22_22dbm.build_src_filter}
  169. [env:ikoka_nano_nrf_22dbm_room_server]
  170. extends =
  171. ikoka_nano_nrf_e22_22dbm
  172. ikoka_nano_nrf_room_server
  173. build_flags =
  174. ${ikoka_nano_nrf_room_server.build_flags}
  175. ${ikoka_nano_nrf_e22_22dbm.build_flags}
  176. build_src_filter =
  177. ${ikoka_nano_nrf_room_server.build_src_filter}
  178. ${ikoka_nano_nrf_e22_22dbm.build_src_filter}
  179. ;;; 30dBm EBYTE E22-900M30 variants
  180. [env:ikoka_nano_nrf_30dbm_companion_radio_usb]
  181. extends =
  182. ikoka_nano_nrf_e22_30dbm
  183. ikoka_nano_nrf_companion_radio_usb
  184. build_flags =
  185. ${ikoka_nano_nrf_companion_radio_usb.build_flags}
  186. ${ikoka_nano_nrf_e22_30dbm.build_flags}
  187. build_src_filter =
  188. ${ikoka_nano_nrf_companion_radio_usb.build_src_filter}
  189. ${ikoka_nano_nrf_e22_30dbm.build_src_filter}
  190. [env:ikoka_nano_nrf_30dbm_companion_radio_ble]
  191. extends =
  192. ikoka_nano_nrf_e22_30dbm
  193. ikoka_nano_nrf_companion_radio_ble
  194. build_flags =
  195. ${ikoka_nano_nrf_companion_radio_ble.build_flags}
  196. ${ikoka_nano_nrf_e22_30dbm.build_flags}
  197. build_src_filter =
  198. ${ikoka_nano_nrf_companion_radio_ble.build_src_filter}
  199. ${ikoka_nano_nrf_e22_30dbm.build_src_filter}
  200. [env:ikoka_nano_nrf_30dbm_repeater]
  201. extends =
  202. ikoka_nano_nrf_e22_30dbm
  203. ikoka_nano_nrf_repeater
  204. build_flags =
  205. ${ikoka_nano_nrf_repeater.build_flags}
  206. ${ikoka_nano_nrf_e22_30dbm.build_flags}
  207. build_src_filter =
  208. ${ikoka_nano_nrf_repeater.build_src_filter}
  209. ${ikoka_nano_nrf_e22_30dbm.build_src_filter}
  210. [env:ikoka_nano_nrf_30dbm_room_server]
  211. extends =
  212. ikoka_nano_nrf_e22_30dbm
  213. ikoka_nano_nrf_room_server
  214. build_flags =
  215. ${ikoka_nano_nrf_room_server.build_flags}
  216. ${ikoka_nano_nrf_e22_30dbm.build_flags}
  217. build_src_filter =
  218. ${ikoka_nano_nrf_room_server.build_src_filter}
  219. ${ikoka_nano_nrf_e22_30dbm.build_src_filter}
  220. ;;; 33dBm EBYTE E22-900M33 variants
  221. [env:ikoka_nano_nrf_33dbm_companion_radio_usb]
  222. extends =
  223. ikoka_nano_nrf_e22_33dbm
  224. ikoka_nano_nrf_companion_radio_usb
  225. build_flags =
  226. ${ikoka_nano_nrf_companion_radio_usb.build_flags}
  227. ${ikoka_nano_nrf_e22_33dbm.build_flags}
  228. build_src_filter =
  229. ${ikoka_nano_nrf_companion_radio_usb.build_src_filter}
  230. ${ikoka_nano_nrf_e22_33dbm.build_src_filter}
  231. [env:ikoka_nano_nrf_33dbm_companion_radio_ble]
  232. extends =
  233. ikoka_nano_nrf_e22_33dbm
  234. ikoka_nano_nrf_companion_radio_ble
  235. build_flags =
  236. ${ikoka_nano_nrf_companion_radio_ble.build_flags}
  237. ${ikoka_nano_nrf_e22_33dbm.build_flags}
  238. build_src_filter =
  239. ${ikoka_nano_nrf_companion_radio_ble.build_src_filter}
  240. ${ikoka_nano_nrf_e22_33dbm.build_src_filter}
  241. [env:ikoka_nano_nrf_33dbm_repeater]
  242. extends =
  243. ikoka_nano_nrf_e22_33dbm
  244. ikoka_nano_nrf_repeater
  245. build_flags =
  246. ${ikoka_nano_nrf_repeater.build_flags}
  247. ${ikoka_nano_nrf_e22_33dbm.build_flags}
  248. build_src_filter =
  249. ${ikoka_nano_nrf_repeater.build_src_filter}
  250. ${ikoka_nano_nrf_e22_33dbm.build_src_filter}
  251. [env:ikoka_nano_nrf_33dbm_room_server]
  252. extends =
  253. ikoka_nano_nrf_e22_33dbm
  254. ikoka_nano_nrf_room_server
  255. build_flags =
  256. ${ikoka_nano_nrf_room_server.build_flags}
  257. ${ikoka_nano_nrf_e22_33dbm.build_flags}
  258. build_src_filter =
  259. ${ikoka_nano_nrf_room_server.build_src_filter}
  260. ${ikoka_nano_nrf_e22_33dbm.build_src_filter}
  261. [env:ikoka_nano_nrf_22dbm_kiss_modem]
  262. extends = ikoka_nano_nrf_e22_22dbm
  263. build_src_filter = ${ikoka_nano_nrf_e22_22dbm.build_src_filter}
  264. +<../examples/kiss_modem/>
  265. [env:ikoka_nano_nrf_30dbm_kiss_modem]
  266. extends = ikoka_nano_nrf_e22_30dbm
  267. build_src_filter = ${ikoka_nano_nrf_e22_30dbm.build_src_filter}
  268. +<../examples/kiss_modem/>
  269. [env:ikoka_nano_nrf_33dbm_kiss_modem]
  270. extends = ikoka_nano_nrf_e22_33dbm
  271. build_src_filter = ${ikoka_nano_nrf_e22_33dbm.build_src_filter}
  272. +<../examples/kiss_modem/>