[Xiao_C6]
extends = esp32c6_base
board = esp32-c6-devkitm-1
board_build.partitions = min_spiffs.csv ; get around 4mb flash limit
build_flags =
  ${esp32c6_base.build_flags}
  -I variants/xiao_c6
  -D ARDUINO_USB_CDC_ON_BOOT=1
  -D ARDUINO_USB_MODE=1
  -D P_LORA_TX_LED=15
  -D P_LORA_SCLK=19
  -D P_LORA_MISO=20
  -D P_LORA_MOSI=18
  -D P_LORA_NSS=22
  -D P_LORA_DIO_1=1
  -D P_LORA_BUSY=21
  -D P_LORA_RESET=2
  -D PIN_BOARD_SDA=16
  -D PIN_BOARD_SCL=17
  -D SX126X_RXEN=23
  -D SX126X_DIO2_AS_RF_SWITCH=true
  -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  -D SX126X_CURRENT_LIMIT=140
  -D SX126X_RX_BOOSTED_GAIN=1
  -D USE_SX1262
  -D RADIO_CLASS=CustomSX1262
  -D WRAPPER_CLASS=CustomSX1262Wrapper
  -D LORA_TX_POWER=22
  -D DISABLE_WIFI_OTA=1
build_src_filter = ${esp32c6_base.build_src_filter}
  +<../variants/xiao_c6>
  +<XiaoC6Board.cpp>

[env:Xiao_C6_repeater_]
extends = Xiao_C6
build_src_filter = ${Xiao_C6.build_src_filter}
  +<../examples/simple_repeater/*.cpp>
build_flags =
  ${Xiao_C6.build_flags}
  -D ADVERT_NAME='"Xiao C6 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
lib_deps =
  ${Xiao_C6.lib_deps}
;  ${esp32_ota.lib_deps}

[env:Xiao_C6_companion_radio_ble_]
extends = Xiao_C6
build_flags = ${Xiao_C6.build_flags}
  -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 ENABLE_PRIVATE_KEY_IMPORT=1
  -D ENABLE_PRIVATE_KEY_EXPORT=1
;  -D MESH_PACKET_LOGGING=1
;  -D MESH_DEBUG=1
build_src_filter = ${Xiao_C6.build_src_filter}
  +<helpers/esp32/*.cpp>
  -<helpers/esp32/ESPNOWRadio.cpp>
  +<../examples/companion_radio/*.cpp>
lib_deps =
  ${Xiao_C6.lib_deps}
  densaugeo/base64 @ ~1.4.0

; Meshimi variant
[Meshimi]
extends = Xiao_C6
board_build.partitions = max_app_4MB.csv
build_flags =
  ${Xiao_C6.build_flags}
  -D P_LORA_TX_LED=15
  -D P_LORA_SCLK=19
  -D P_LORA_MISO=20
  -D P_LORA_MOSI=18
  -D P_LORA_NSS=21
  -D P_LORA_DIO_1=7
  -D P_LORA_BUSY=6
  -D P_LORA_RESET=2
  -D PIN_BOARD_SDA=22
  -D PIN_BOARD_SCL=23
  -D SX126X_RXEN=4
  -D SX126X_DIO2_AS_RF_SWITCH=true
  -D SX126X_DIO3_TCXO_VOLTAGE=1.8
  -D SX126X_CURRENT_LIMIT=140
  -D SX126X_RX_BOOSTED_GAIN=1
  -D USE_XIAO_ESP32C6_EXTERNAL_ANTENNA=1

[env:Meshimi_repeater_]
extends = Meshimi
build_src_filter = ${Meshimi.build_src_filter}
  +<../examples/simple_repeater/*.cpp>
build_flags =
  ${Meshimi.build_flags}
  -D ADVERT_NAME='"Meshimi Repeater"'
  -D ADVERT_LAT=0.0
  -D ADVERT_LON=0.0
  -D ADMIN_PASSWORD='"password"'
  -D MAX_NEIGHBOURS=50
lib_deps =
  ${Meshimi.lib_deps}

[env:Meshimi_companion_radio_ble_]
extends = Meshimi
build_flags = ${Meshimi.build_flags}
  -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 ENABLE_PRIVATE_KEY_IMPORT=1
  -D ENABLE_PRIVATE_KEY_EXPORT=1
build_src_filter = ${Meshimi.build_src_filter}
  +<helpers/esp32/*.cpp>
  -<helpers/esp32/ESPNOWRadio.cpp>
  +<../examples/companion_radio/*.cpp>
lib_deps =
  ${Meshimi.lib_deps}
  densaugeo/base64 @ ~1.4.0

; WHY2025 badge variant
; requires soldering 2 pins between the esp32-C6 and the lora chip as shown here: https://wiki.why2025.org/Project:Meshtastic_on_the_WHY2025_badge
; also requires wiping the esp32-P4
[WHY2025_badge]
extends = Xiao_C6
board_build.partitions = default_8MB.csv
board_upload.flash_size = 8MB
board_upload.maximum_size = 8388608
build_flags =
  ${Xiao_C6.build_flags}
  -D P_LORA_SCLK=6
  -D P_LORA_MISO=2
  -D P_LORA_MOSI=7
  -D P_LORA_NSS=4
  -D P_LORA_DIO_1=5
  -D P_LORA_BUSY=11
  -D P_LORA_RESET=1
  -D SX126X_TXEN=3
  -UPIN_BOARD_SDA
  -UPIN_BOARD_SCL
  -UP_LORA_TX_LED
  -USX126X_RXEN
  -USX126X_DIO2_AS_RF_SWITCH
  -USX126X_DIO3_TCXO_VOLTAGE

[env:WHY2025_badge_repeater_]
extends = WHY2025_badge
build_src_filter = ${WHY2025_badge.build_src_filter}
  +<../examples/simple_repeater/*.cpp>
build_flags =
  ${WHY2025_badge.build_flags}
  -D ADVERT_NAME='"WHY2025 Badge 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
lib_deps =
  ${WHY2025_badge.lib_deps}
;  ${esp32_ota.lib_deps}

[env:WHY2025_badge_companion_radio_ble_]
extends = WHY2025_badge
build_flags = ${WHY2025_badge.build_flags}
  -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 ENABLE_PRIVATE_KEY_IMPORT=1
  -D ENABLE_PRIVATE_KEY_EXPORT=1
;  -D MESH_PACKET_LOGGING=1
;  -D MESH_DEBUG=1
build_src_filter = ${WHY2025_badge.build_src_filter}
  +<helpers/esp32/*.cpp>
  -<helpers/esp32/ESPNOWRadio.cpp>
  +<../examples/companion_radio/*.cpp>
lib_deps =
  ${WHY2025_badge.lib_deps}
  densaugeo/base64 @ ~1.4.0
