[rak3401]
extends = nrf52_base
board = rak3401
board_check = true
build_flags = ${nrf52_base.build_flags}
  ${sensor_base.build_flags}
  -I variants/rak3401
  -D RAK_3401
  -D NRF52_POWER_MANAGEMENT
  -D RADIO_CLASS=CustomSX1262
  -D WRAPPER_CLASS=CustomSX1262Wrapper
  -D LORA_TX_POWER=22
  -D SX126X_CURRENT_LIMIT=140
  -D SX126X_RX_BOOSTED_GAIN=1
  -D SX126X_REGISTER_PATCH=1       ; Patch register 0x8B5 for improved RX with SKY66122 FEM
build_src_filter = ${nrf52_base.build_src_filter}
  +<../variants/rak3401>
  +<helpers/sensors>
  +<helpers/ui/SSD1306Display.cpp>
  +<helpers/ui/MomentaryButton.cpp>
lib_deps =
  ${nrf52_base.lib_deps}
  ${sensor_base.lib_deps}
  adafruit/Adafruit SSD1306 @ ^2.5.13
  sparkfun/SparkFun u-blox GNSS Arduino Library@^2.2.27

[env:RAK_3401_repeater]
extends = rak3401
build_flags =
  ${rak3401.build_flags}
  -D DISPLAY_CLASS=SSD1306Display
  -D ADVERT_NAME='"RAK3401 1W Repeater"'
  -D ADVERT_LAT=0.0
  -D ADVERT_LON=0.0
  -D ADMIN_PASSWORD='"password"'
  -D MAX_NEIGHBOURS=50
  ;-D MESH_PACKET_LOGGING=1
  ;-D MESH_DEBUG=1
build_src_filter = ${rak3401.build_src_filter}
  +<helpers/ui/SSD1306Display.cpp>
  +<../examples/simple_repeater>

[env:RAK_3401_room_server]
extends = rak3401
build_flags =
  ${rak3401.build_flags}
  -D DISPLAY_CLASS=SSD1306Display
  -D ADVERT_NAME='"Test Room"'
  -D ADVERT_LAT=0.0
  -D ADVERT_LON=0.0
  -D ADMIN_PASSWORD='"password"'
  -D ROOM_PASSWORD='"hello"'
  ;-D MESH_PACKET_LOGGING=1
  ;-D MESH_DEBUG=1
build_src_filter = ${rak3401.build_src_filter}
  +<helpers/ui/SSD1306Display.cpp>
  +<../examples/simple_room_server>

[env:RAK_3401_companion_radio_usb]
extends = rak3401
board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld
board_upload.maximum_size = 712704
build_flags =
  ${rak3401.build_flags}
  -I examples/companion_radio/ui-new
  -D PIN_USER_BTN_ANA=31
  -D DISPLAY_CLASS=SSD1306Display
  -D MAX_CONTACTS=350
  -D MAX_GROUP_CHANNELS=40
; NOTE: DO NOT ENABLE -->  -D MESH_PACKET_LOGGING=1
; NOTE: DO NOT ENABLE -->  -D MESH_DEBUG=1
build_src_filter = ${rak3401.build_src_filter}
  +<../examples/companion_radio/*.cpp>
  +<../examples/companion_radio/ui-new/*.cpp>
lib_deps =
  ${rak3401.lib_deps}
  densaugeo/base64 @ ~1.4.0

[env:RAK_3401_companion_radio_ble]
extends = rak3401
board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld
board_upload.maximum_size = 712704
build_flags =
  ${rak3401.build_flags}
  -I examples/companion_radio/ui-new
  -D PIN_USER_BTN_ANA=31
  -D DISPLAY_CLASS=SSD1306Display
  -D MAX_CONTACTS=350
  -D MAX_GROUP_CHANNELS=40
  -D BLE_PIN_CODE=123456
  -D BLE_DEBUG_LOGGING=1
  -D OFFLINE_QUEUE_SIZE=256
  ;-D MESH_PACKET_LOGGING=1
  ;-D MESH_DEBUG=1
build_src_filter = ${rak3401.build_src_filter}
  +<helpers/nrf52/SerialBLEInterface.cpp>
  +<../examples/companion_radio/*.cpp>
  +<../examples/companion_radio/ui-new/*.cpp>
lib_deps =
  ${rak3401.lib_deps}
  densaugeo/base64 @ ~1.4.0

[env:RAK_3401_terminal_chat]
extends = rak3401
build_flags =
  ${rak3401.build_flags}
  -D MAX_CONTACTS=100
  -D MAX_GROUP_CHANNELS=1
  ;-D MESH_PACKET_LOGGING=1
  ;-D MESH_DEBUG=1
build_src_filter = ${rak3401.build_src_filter}
  +<../examples/simple_secure_chat/main.cpp>
lib_deps =
  ${rak3401.lib_deps}
  densaugeo/base64 @ ~1.4.0

[env:RAK_3401_sensor]
extends = rak3401
build_flags =
  ${rak3401.build_flags}
  -D DISPLAY_CLASS=SSD1306Display
  -D ADVERT_NAME='"RAK3401 Sensor"'
  -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 = ${rak3401.build_src_filter}
  +<helpers/ui/SSD1306Display.cpp>
  +<../examples/simple_sensor>

[env:RAK_3401_kiss_modem]
extends = rak3401
build_src_filter = ${rak3401.build_src_filter}
  +<../examples/kiss_modem/>
