[nrf52840_xiao] extends = nrf52_base platform_packages = toolchain-gccarmnoneeabi@~1.100301.0 framework-arduinoadafruitnrf52 board = seeed-xiao-afruitnrf52-nrf52840 board_build.ldscript = boards/nrf52840_s140_v7.ld build_flags = ${nrf52_base.build_flags} -D NRF52_PLATFORM -D XIAO_NRF52 -I lib/nrf52/s140_nrf52_7.3.0_API/include -I lib/nrf52/s140_nrf52_7.3.0_API/include/nrf52 lib_ignore = BluetoothOTA lvgl lib5b4 lib_deps = ${nrf52_base.lib_deps} rweather/Crypto @ ^0.4.0 adafruit/Adafruit INA3221 Library @ ^1.0.1 adafruit/Adafruit INA219 @ ^1.2.3 adafruit/Adafruit AHTX0 @ ^2.0.5 adafruit/Adafruit BME280 Library @ ^2.3.0 adafruit/Adafruit SSD1306 @ ^2.5.13 [ikoka_stick_nrf_baseboard] extends = nrf52840_xiao ;board_build.ldscript = boards/nrf52840_s140_v7.ld build_flags = ${nrf52840_xiao.build_flags} -D P_LORA_TX_LED=11 -I variants/ikoka_stick_nrf -I src/helpers/nrf52 -D DISPLAY_CLASS=SSD1306Display -D DISPLAY_ROTATION=2 -D RADIO_CLASS=CustomSX1262 -D WRAPPER_CLASS=CustomSX1262Wrapper -D P_LORA_DIO_1=D1 -D P_LORA_RESET=D2 -D P_LORA_BUSY=D3 -D P_LORA_NSS=D4 -D SX126X_RXEN=D5 -D SX126X_TXEN=RADIOLIB_NC -D SX126X_DIO2_AS_RF_SWITCH=1 -D SX126X_DIO3_TCXO_VOLTAGE=1.8 -D SX126X_CURRENT_LIMIT=140 -D SX126X_RX_BOOSTED_GAIN=1 -D PIN_USER_BTN=0 -D PIN_WIRE_SCL=7 -D PIN_WIRE_SDA=6 -D ENV_INCLUDE_AHTX0=1 -D ENV_INCLUDE_BME280=1 -D ENV_INCLUDE_INA3221=1 -D ENV_INCLUDE_INA219=1 debug_tool = jlink upload_protocol = nrfutil ;;; abstracted hardware variants [ikoka_stick_nrf_e22_22dbm] extends = ikoka_stick_nrf_baseboard ; No PA in this model, full 22dBm build_flags = ${ikoka_stick_nrf_baseboard.build_flags} -D LORA_TX_POWER=22 build_src_filter = ${nrf52840_xiao.build_src_filter} + + + + +<../variants/ikoka_stick_nrf> [ikoka_stick_nrf_e22_30dbm] extends = ikoka_stick_nrf_baseboard ; limit txpower to 20dBm on E22-900M30S. Anything higher will ; cause distortion in the PA output. 20dBm in -> 30dBm out build_flags = ${ikoka_stick_nrf_baseboard.build_flags} -D LORA_TX_POWER=20 build_src_filter = ${nrf52840_xiao.build_src_filter} + + + + +<../variants/ikoka_stick_nrf> [ikoka_stick_nrf_e22_33dbm] extends = ikoka_stick_nrf_baseboard ; limit txpower to 9dBm on E22-900M33S to avoid hardware damage ; to the rf amplifier frontend. 9dBm in -> 33dBm out build_flags = ${ikoka_stick_nrf_baseboard.build_flags} -D LORA_TX_POWER=9 build_src_filter = ${nrf52840_xiao.build_src_filter} + + + + +<../variants/ikoka_stick_nrf> ;;; abstracted firmware roles [ikoka_stick_nrf_companion_radio_ble] extends = ikoka_stick_nrf_baseboard board_build.ldscript = boards/nrf52840_s140_v7_extrafs.ld board_upload.maximum_size = 708608 build_flags = ${ikoka_stick_nrf_baseboard.build_flags} -D MAX_CONTACTS=350 -D MAX_GROUP_CHANNELS=40 -D BLE_PIN_CODE=123456 -D OFFLINE_QUEUE_SIZE=256 -I examples/companion_radio/ui-new ; -D BLE_DEBUG_LOGGING=1 ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 build_src_filter = ${ikoka_stick_nrf_baseboard.build_src_filter} + +<../examples/companion_radio/*.cpp> +<../examples/companion_radio/ui-new/*.cpp> lib_deps = ${ikoka_stick_nrf_baseboard.lib_deps} densaugeo/base64 @ ~1.4.0 [ikoka_stick_nrf_companion_radio_usb] extends = ikoka_stick_nrf_baseboard board_build.ldscript = boards/nrf52840_s140_v7_extrafs.ld board_upload.maximum_size = 708608 build_flags = ${ikoka_stick_nrf_baseboard.build_flags} -D MAX_CONTACTS=350 -D MAX_GROUP_CHANNELS=40 -I examples/companion_radio/ui-new ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 build_src_filter = ${ikoka_stick_nrf_baseboard.build_src_filter} + +<../examples/companion_radio/*.cpp> +<../examples/companion_radio/ui-new/*.cpp> lib_deps = ${ikoka_stick_nrf_baseboard.lib_deps} densaugeo/base64 @ ~1.4.0 [ikoka_stick_nrf_repeater] extends = ikoka_stick_nrf_baseboard build_flags = ${ikoka_stick_nrf_baseboard.build_flags} -D ADVERT_NAME='"Ikoka Stick Repeater"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=8 ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 build_src_filter = ${ikoka_stick_nrf_baseboard.build_src_filter} + +<../examples/simple_repeater/*.cpp> [ikoka_stick_nrf_room_server] extends = ikoka_stick_nrf_baseboard build_flags = ${ikoka_stick_nrf_baseboard.build_flags} -D ADVERT_NAME='"Ikoka Stick Room"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 -D ADMIN_PASSWORD='"password"' ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 build_src_filter = ${ikoka_stick_nrf_baseboard.build_src_filter} +<../examples/simple_room_server/*.cpp> ;;; hardware + firmware variants ;;; 22dBm EBYTE E22-900M22 variants [env:ikoka_stick_nrf_22dbm_companion_radio_usb] extends = ikoka_stick_nrf_e22_22dbm ikoka_stick_nrf_companion_radio_usb build_flags = ${ikoka_stick_nrf_companion_radio_usb.build_flags} ${ikoka_stick_nrf_e22_22dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_companion_radio_usb.build_src_filter} ${ikoka_stick_nrf_e22_22dbm.build_src_filter} [env:ikoka_stick_nrf_22dbm_companion_radio_ble] extends = ikoka_stick_nrf_e22_22dbm ikoka_stick_nrf_companion_radio_ble build_flags = ${ikoka_stick_nrf_companion_radio_ble.build_flags} ${ikoka_stick_nrf_e22_22dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_companion_radio_ble.build_src_filter} ${ikoka_stick_nrf_e22_22dbm.build_src_filter} [env:ikoka_stick_nrf_22dbm_repeater] extends = ikoka_stick_nrf_e22_22dbm ikoka_stick_nrf_repeater build_flags = ${ikoka_stick_nrf_repeater.build_flags} ${ikoka_stick_nrf_e22_22dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_repeater.build_src_filter} ${ikoka_stick_nrf_e22_22dbm.build_src_filter} [env:ikoka_stick_nrf_22dbm_room_server] extends = ikoka_stick_nrf_e22_22dbm ikoka_stick_nrf_room_server build_flags = ${ikoka_stick_nrf_room_server.build_flags} ${ikoka_stick_nrf_e22_22dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_room_server.build_src_filter} ${ikoka_stick_nrf_e22_22dbm.build_src_filter} ;;; 30dBm EBYTE E22-900M30 variants [env:ikoka_stick_nrf_30dbm_companion_radio_usb] extends = ikoka_stick_nrf_e22_30dbm ikoka_stick_nrf_companion_radio_usb build_flags = ${ikoka_stick_nrf_companion_radio_usb.build_flags} ${ikoka_stick_nrf_e22_30dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_companion_radio_usb.build_src_filter} ${ikoka_stick_nrf_e22_30dbm.build_src_filter} [env:ikoka_stick_nrf_30dbm_companion_radio_ble] extends = ikoka_stick_nrf_e22_30dbm ikoka_stick_nrf_companion_radio_ble build_flags = ${ikoka_stick_nrf_companion_radio_ble.build_flags} ${ikoka_stick_nrf_e22_30dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_companion_radio_ble.build_src_filter} ${ikoka_stick_nrf_e22_30dbm.build_src_filter} [env:ikoka_stick_nrf_30dbm_repeater] extends = ikoka_stick_nrf_e22_30dbm ikoka_stick_nrf_repeater build_flags = ${ikoka_stick_nrf_repeater.build_flags} ${ikoka_stick_nrf_e22_30dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_repeater.build_src_filter} ${ikoka_stick_nrf_e22_30dbm.build_src_filter} [env:ikoka_stick_nrf_30dbm_room_server] extends = ikoka_stick_nrf_e22_30dbm ikoka_stick_nrf_room_server build_flags = ${ikoka_stick_nrf_room_server.build_flags} ${ikoka_stick_nrf_e22_30dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_room_server.build_src_filter} ${ikoka_stick_nrf_e22_30dbm.build_src_filter} ;;; 33dBm EBYTE E22-900M33 variants [env:ikoka_stick_nrf_33dbm_companion_radio_usb] extends = ikoka_stick_nrf_e22_33dbm ikoka_stick_nrf_companion_radio_usb build_flags = ${ikoka_stick_nrf_companion_radio_usb.build_flags} ${ikoka_stick_nrf_e22_33dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_companion_radio_usb.build_src_filter} ${ikoka_stick_nrf_e22_33dbm.build_src_filter} [env:ikoka_stick_nrf_33dbm_companion_radio_ble] extends = ikoka_stick_nrf_e22_33dbm ikoka_stick_nrf_companion_radio_ble build_flags = ${ikoka_stick_nrf_companion_radio_ble.build_flags} ${ikoka_stick_nrf_e22_33dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_companion_radio_ble.build_src_filter} ${ikoka_stick_nrf_e22_33dbm.build_src_filter} [env:ikoka_stick_nrf_33dbm_repeater] extends = ikoka_stick_nrf_e22_33dbm ikoka_stick_nrf_repeater build_flags = ${ikoka_stick_nrf_repeater.build_flags} ${ikoka_stick_nrf_e22_33dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_repeater.build_src_filter} ${ikoka_stick_nrf_e22_33dbm.build_src_filter} [env:ikoka_stick_nrf_33dbm_room_server] extends = ikoka_stick_nrf_e22_33dbm ikoka_stick_nrf_room_server build_flags = ${ikoka_stick_nrf_room_server.build_flags} ${ikoka_stick_nrf_e22_33dbm.build_flags} build_src_filter = ${ikoka_stick_nrf_room_server.build_src_filter} ${ikoka_stick_nrf_e22_33dbm.build_src_filter}