#!/usr/bin/env bash
#
# Build tests for BigTreeTech GTR 1.0
#

# exit on first failure
set -e

restore_configs
opt_set MOTHERBOARD BOARD_BTT_GTR_V1_0
opt_set SERIAL_PORT -1
opt_set EXTRUDERS 8
opt_set TEMP_SENSOR_1 1
opt_set TEMP_SENSOR_2 1
opt_set TEMP_SENSOR_3 1
opt_set TEMP_SENSOR_4 1
opt_set TEMP_SENSOR_5 1
opt_set TEMP_SENSOR_6 1
opt_set TEMP_SENSOR_7 1
# Not necessary to enable auto-fan for all extruders to hit problematic code paths
opt_set E0_AUTO_FAN_PIN PC10
opt_set E1_AUTO_FAN_PIN PC11
opt_set E2_AUTO_FAN_PIN PC12
opt_set X_DRIVER_TYPE TMC2208
opt_set Y_DRIVER_TYPE TMC2130
opt_set NEOPIXEL_PIN PF13
opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER BLTOUCH NEOPIXEL_LED Z_SAFE_HOMING
opt_enable FILAMENT_RUNOUT_SENSOR NOZZLE_PARK_FEATURE ADVANCED_PAUSE_FEATURE
opt_set FIL_RUNOUT_PIN 3
opt_set FIL_RUNOUT2_PIN 4
opt_set FIL_RUNOUT3_PIN 5
opt_set FIL_RUNOUT4_PIN 6
opt_set FIL_RUNOUT5_PIN 7
opt_set FIL_RUNOUT6_PIN 8
opt_set FIL_RUNOUT7_PIN 9
opt_set FIL_RUNOUT8_PIN 10
opt_set FIL_RUNOUT4_STATE HIGH
opt_enable FIL_RUNOUT4_PULLUP
opt_set FIL_RUNOUT8_STATE HIGH
opt_enable FIL_RUNOUT8_PULLUP
exec_test $1 $2 "BigTreeTech GTR 8 Extruders with Auto-Fan, Mixed TMC Drivers, and Runout Sensors with distinct states" "$3"

restore_configs
opt_set MOTHERBOARD BOARD_BTT_GTR_V1_0
opt_set SERIAL_PORT -1
opt_set EXTRUDERS 6
opt_set TEMP_SENSOR_1 1
opt_set TEMP_SENSOR_2 1
opt_set TEMP_SENSOR_3 1
opt_set TEMP_SENSOR_4 1
opt_set TEMP_SENSOR_5 1
opt_set NUM_Z_STEPPER_DRIVERS 3
opt_set DEFAULT_Kp_LIST "{ 22.2, 20.0, 21.0, 19.0, 18.0, 17.0 }"
opt_set DEFAULT_Ki_LIST "{ 1.08 }"
opt_set DEFAULT_Kd_LIST "{ 114.0, 112.0, 110.0, 108.0 }"
opt_enable TOOLCHANGE_FILAMENT_SWAP TOOLCHANGE_MIGRATION_FEATURE TOOLCHANGE_FS_INIT_BEFORE_SWAP TOOLCHANGE_FS_PRIME_FIRST_USED PID_PARAMS_PER_HOTEND
exec_test $1 $2 "BigTreeTech GTR 6 Extruders Triple Z" "$3"

# clean up
restore_configs