@@ -19,11 +19,10 @@ lib_deps =
1919 adafruit/Adafruit INA3221 Library @ ^1.0.1
2020 adafruit/Adafruit INA219 @ ^1.2.3
2121 adafruit/Adafruit AHTX0 @ ^2.0.5
22- adafruit/Adafruit BME280 Library @ ^2.3.0
22+ adafruit/Adafruit BME280 Library @ ^2.3.0
2323 adafruit/Adafruit SSD1306 @ ^2.5.13
2424
25-
26- [ikoka_stick_nrf]
25+ [ikoka_stick_nrf_baseboard]
2726extends = nrf52840_xiao
2827; board_build.ldscript = boards/nrf52840_s140_v7.ld
2928build_flags = ${nrf52840_xiao.build_flags}
@@ -34,7 +33,6 @@ build_flags = ${nrf52840_xiao.build_flags}
3433 -D DISPLAY_ROTATION =2
3534 -D RADIO_CLASS =CustomSX1262
3635 -D WRAPPER_CLASS =CustomSX1262Wrapper
37- -D LORA_TX_POWER =9
3836 -D P_LORA_DIO_1 =D1
3937 -D P_LORA_RESET =D2
4038 -D P_LORA_BUSY =D3
@@ -52,19 +50,59 @@ build_flags = ${nrf52840_xiao.build_flags}
5250 -D ENV_INCLUDE_BME280 =1
5351 -D ENV_INCLUDE_INA3221 =1
5452 -D ENV_INCLUDE_INA219 =1
53+ debug_tool = jlink
54+ upload_protocol = nrfutil
55+
56+
57+ ; ;; abstracted hardware variants
58+
59+ [ikoka_stick_nrf_e22_22dbm]
60+ extends = ikoka_stick_nrf_baseboard
61+ ; No PA in this model, full 22dBm
62+ build_flags =
63+ ${ikoka_stick_nrf_baseboard.build_flags}
64+ -D LORA_TX_POWER =22
5565build_src_filter = ${nrf52840_xiao.build_src_filter}
5666 +<helpers/*.cpp>
5767 +<helpers/sensors>
5868 +<helpers/ui/MomentaryButton.cpp>
5969 +<helpers/ui/SSD1306Display.cpp>
6070 +<../variants/ikoka_stick_nrf>
61- debug_tool = jlink
62- upload_protocol = nrfutil
6371
64- [env:ikoka_stick_nrf_companion_radio_ble]
65- extends = ikoka_stick_nrf
72+ [ikoka_stick_nrf_e22_30dbm]
73+ extends = ikoka_stick_nrf_baseboard
74+ ; limit txpower to 20dBm on E22-900M30S. Anything higher will
75+ ; cause distortion in the PA output. 20dBm in -> 30dBm out
6676build_flags =
67- ${ikoka_stick_nrf.build_flags}
77+ ${ikoka_stick_nrf_baseboard.build_flags}
78+ -D LORA_TX_POWER =20
79+ build_src_filter = ${nrf52840_xiao.build_src_filter}
80+ +<helpers/*.cpp>
81+ +<helpers/sensors>
82+ +<helpers/ui/MomentaryButton.cpp>
83+ +<helpers/ui/SSD1306Display.cpp>
84+ +<../variants/ikoka_stick_nrf>
85+
86+ [ikoka_stick_nrf_e22_33dbm]
87+ extends = ikoka_stick_nrf_baseboard
88+ ; limit txpower to 9dBm on E22-900M33S to avoid hardware damage
89+ ; to the rf amplifier frontend. 9dBm in -> 33dBm out
90+ build_flags =
91+ ${ikoka_stick_nrf_baseboard.build_flags}
92+ -D LORA_TX_POWER =9
93+ build_src_filter = ${nrf52840_xiao.build_src_filter}
94+ +<helpers/*.cpp>
95+ +<helpers/sensors>
96+ +<helpers/ui/MomentaryButton.cpp>
97+ +<helpers/ui/SSD1306Display.cpp>
98+ +<../variants/ikoka_stick_nrf>
99+
100+ ; ;; abstracted firmware roles
101+
102+ [ikoka_stick_nrf_companion_radio_ble]
103+ extends = ikoka_stick_nrf_baseboard
104+ build_flags =
105+ ${ikoka_stick_nrf_baseboard.build_flags}
68106 -D MAX_CONTACTS =100
69107 -D MAX_GROUP_CHANNELS =8
70108 -D BLE_PIN_CODE =123456
@@ -73,55 +111,197 @@ build_flags =
73111; -D BLE_DEBUG_LOGGING=1
74112; -D MESH_PACKET_LOGGING=1
75113; -D MESH_DEBUG=1
76- build_src_filter = ${ikoka_stick_nrf .build_src_filter}
114+ build_src_filter = ${ikoka_stick_nrf_baseboard .build_src_filter}
77115 +<helpers/nrf52/SerialBLEInterface.cpp>
78116 +<../examples/companion_radio/*.cpp>
79117 +<../examples/companion_radio/ui-new/*.cpp>
80118lib_deps =
81- ${ikoka_stick_nrf .lib_deps}
119+ ${ikoka_stick_nrf_baseboard .lib_deps}
82120 densaugeo/base64 @ ~1.4.0
83121
84- [env: ikoka_stick_nrf_companion_radio_usb]
85- extends = ikoka_stick_nrf
122+ [ikoka_stick_nrf_companion_radio_usb]
123+ extends = ikoka_stick_nrf_baseboard
86124build_flags =
87- ${ikoka_stick_nrf .build_flags}
125+ ${ikoka_stick_nrf_baseboard .build_flags}
88126 -D MAX_CONTACTS =100
89127 -D MAX_GROUP_CHANNELS =8
90128 -I examples/companion_radio/ui-new
91129; -D MESH_PACKET_LOGGING=1
92130; -D MESH_DEBUG=1
93- build_src_filter = ${ikoka_stick_nrf .build_src_filter}
131+ build_src_filter = ${ikoka_stick_nrf_baseboard .build_src_filter}
94132 +<helpers/nrf52/SerialBLEInterface.cpp>
95133 +<../examples/companion_radio/*.cpp>
96134 +<../examples/companion_radio/ui-new/*.cpp>
97135lib_deps =
98- ${ikoka_stick_nrf .lib_deps}
136+ ${ikoka_stick_nrf_baseboard .lib_deps}
99137 densaugeo/base64 @ ~1.4.0
100138
101- [env: ikoka_stick_nrf_repeater]
102- extends = ikoka_stick_nrf
139+ [ikoka_stick_nrf_repeater]
140+ extends = ikoka_stick_nrf_baseboard
103141build_flags =
104- ${ikoka_stick_nrf .build_flags}
142+ ${ikoka_stick_nrf_baseboard .build_flags}
105143 -D ADVERT_NAME =' "Ikoka Stick Repeater"'
106144 -D ADVERT_LAT =0.0
107145 -D ADVERT_LON =0.0
108146 -D ADMIN_PASSWORD =' "password"'
109147 -D MAX_NEIGHBOURS =8
110148; -D MESH_PACKET_LOGGING=1
111149; -D MESH_DEBUG=1
112- build_src_filter = ${ikoka_stick_nrf .build_src_filter}
150+ build_src_filter = ${ikoka_stick_nrf_baseboard .build_src_filter}
113151 +<helpers/ui/SSD1306Display.cpp>
114152 +<../examples/simple_repeater/*.cpp>
115153
116- [env: ikoka_stick_nrf_room_server]
117- extends = ikoka_stick_nrf
154+ [ikoka_stick_nrf_room_server]
155+ extends = ikoka_stick_nrf_baseboard
118156build_flags =
119- ${ikoka_stick_nrf .build_flags}
157+ ${ikoka_stick_nrf_baseboard .build_flags}
120158 -D ADVERT_NAME =' "Ikoka Stick Room"'
121159 -D ADVERT_LAT =0.0
122160 -D ADVERT_LON =0.0
123161 -D ADMIN_PASSWORD =' "password"'
124162; -D MESH_PACKET_LOGGING=1
125163; -D MESH_DEBUG=1
126- build_src_filter = ${ikoka_stick_nrf .build_src_filter}
164+ build_src_filter = ${ikoka_stick_nrf_baseboard .build_src_filter}
127165 +<../examples/simple_room_server/*.cpp>
166+
167+ ; ;; hardware + firmware variants
168+
169+ ; ;; 22dBm EBYTE E22-900M22 variants
170+
171+ [env:ikoka_stick_nrf_22dbm_companion_radio_usb]
172+ extends =
173+ ikoka_stick_nrf_e22_22dbm
174+ ikoka_stick_nrf_companion_radio_usb
175+ build_flags =
176+ ${ikoka_stick_nrf_companion_radio_usb.build_flags}
177+ ${ikoka_stick_nrf_e22_22dbm.build_flags}
178+ build_src_filter =
179+ ${ikoka_stick_nrf_companion_radio_usb.build_src_filter}
180+ ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
181+
182+ [env:ikoka_stick_nrf_22dbm_companion_radio_ble]
183+ extends =
184+ ikoka_stick_nrf_e22_22dbm
185+ ikoka_stick_nrf_companion_radio_ble
186+ build_flags =
187+ ${ikoka_stick_nrf_companion_radio_ble.build_flags}
188+ ${ikoka_stick_nrf_e22_22dbm.build_flags}
189+ build_src_filter =
190+ ${ikoka_stick_nrf_companion_radio_ble.build_src_filter}
191+ ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
192+
193+ [env:ikoka_stick_nrf_22dbm_repeater]
194+ extends =
195+ ikoka_stick_nrf_e22_22dbm
196+ ikoka_stick_nrf_repeater
197+ build_flags =
198+ ${ikoka_stick_nrf_repeater.build_flags}
199+ ${ikoka_stick_nrf_e22_22dbm.build_flags}
200+ build_src_filter =
201+ ${ikoka_stick_nrf_repeater.build_src_filter}
202+ ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
203+
204+ [env:ikoka_stick_nrf_22dbm_room_server]
205+ extends =
206+ ikoka_stick_nrf_e22_22dbm
207+ ikoka_stick_nrf_room_server
208+ build_flags =
209+ ${ikoka_stick_nrf_room_server.build_flags}
210+ ${ikoka_stick_nrf_e22_22dbm.build_flags}
211+ build_src_filter =
212+ ${ikoka_stick_nrf_room_server.build_src_filter}
213+ ${ikoka_stick_nrf_e22_22dbm.build_src_filter}
214+
215+
216+ ; ;; 30dBm EBYTE E22-900M30 variants
217+
218+ [env:ikoka_stick_nrf_30dbm_companion_radio_usb]
219+ extends =
220+ ikoka_stick_nrf_e22_30dbm
221+ ikoka_stick_nrf_companion_radio_usb
222+ build_flags =
223+ ${ikoka_stick_nrf_companion_radio_usb.build_flags}
224+ ${ikoka_stick_nrf_e22_30dbm.build_flags}
225+ build_src_filter =
226+ ${ikoka_stick_nrf_companion_radio_usb.build_src_filter}
227+ ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
228+
229+ [env:ikoka_stick_nrf_30dbm_companion_radio_ble]
230+ extends =
231+ ikoka_stick_nrf_e22_30dbm
232+ ikoka_stick_nrf_companion_radio_ble
233+ build_flags =
234+ ${ikoka_stick_nrf_companion_radio_ble.build_flags}
235+ ${ikoka_stick_nrf_e22_30dbm.build_flags}
236+ build_src_filter =
237+ ${ikoka_stick_nrf_companion_radio_ble.build_src_filter}
238+ ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
239+
240+ [env:ikoka_stick_nrf_30dbm_repeater]
241+ extends =
242+ ikoka_stick_nrf_e22_30dbm
243+ ikoka_stick_nrf_repeater
244+ build_flags =
245+ ${ikoka_stick_nrf_repeater.build_flags}
246+ ${ikoka_stick_nrf_e22_30dbm.build_flags}
247+ build_src_filter =
248+ ${ikoka_stick_nrf_repeater.build_src_filter}
249+ ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
250+
251+ [env:ikoka_stick_nrf_30dbm_room_server]
252+ extends =
253+ ikoka_stick_nrf_e22_30dbm
254+ ikoka_stick_nrf_room_server
255+ build_flags =
256+ ${ikoka_stick_nrf_room_server.build_flags}
257+ ${ikoka_stick_nrf_e22_30dbm.build_flags}
258+ build_src_filter =
259+ ${ikoka_stick_nrf_room_server.build_src_filter}
260+ ${ikoka_stick_nrf_e22_30dbm.build_src_filter}
261+
262+
263+ ; ;; 33dBm EBYTE E22-900M33 variants
264+
265+ [env:ikoka_stick_nrf_33dbm_companion_radio_usb]
266+ extends =
267+ ikoka_stick_nrf_e22_33dbm
268+ ikoka_stick_nrf_companion_radio_usb
269+ build_flags =
270+ ${ikoka_stick_nrf_companion_radio_usb.build_flags}
271+ ${ikoka_stick_nrf_e22_33dbm.build_flags}
272+ build_src_filter =
273+ ${ikoka_stick_nrf_companion_radio_usb.build_src_filter}
274+ ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
275+
276+ [env:ikoka_stick_nrf_33dbm_companion_radio_ble]
277+ extends =
278+ ikoka_stick_nrf_e22_33dbm
279+ ikoka_stick_nrf_companion_radio_ble
280+ build_flags =
281+ ${ikoka_stick_nrf_companion_radio_ble.build_flags}
282+ ${ikoka_stick_nrf_e22_33dbm.build_flags}
283+ build_src_filter =
284+ ${ikoka_stick_nrf_companion_radio_ble.build_src_filter}
285+ ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
286+
287+ [env:ikoka_stick_nrf_33dbm_repeater]
288+ extends =
289+ ikoka_stick_nrf_e22_33dbm
290+ ikoka_stick_nrf_repeater
291+ build_flags =
292+ ${ikoka_stick_nrf_repeater.build_flags}
293+ ${ikoka_stick_nrf_e22_33dbm.build_flags}
294+ build_src_filter =
295+ ${ikoka_stick_nrf_repeater.build_src_filter}
296+ ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
297+
298+ [env:ikoka_stick_nrf_33dbm_room_server]
299+ extends =
300+ ikoka_stick_nrf_e22_33dbm
301+ ikoka_stick_nrf_room_server
302+ build_flags =
303+ ${ikoka_stick_nrf_room_server.build_flags}
304+ ${ikoka_stick_nrf_e22_33dbm.build_flags}
305+ build_src_filter =
306+ ${ikoka_stick_nrf_room_server.build_src_filter}
307+ ${ikoka_stick_nrf_e22_33dbm.build_src_filter}
0 commit comments