#!/usr/bin/env bash
#
# Build tests for AVR ATmega FYSETC F6 1.3
#

# exit on first failure
set -e

#
# Build with the default configurations
#
restore_configs
opt_set MOTHERBOARD BOARD_FYSETC_F6_13
opt_enable DGUS_LCD_UI_FYSETC
exec_test $1 $2 "FYSETC F6 1.3 with DGUS" "$3"

#
# Delta Config (generic) + UBL + ALLEN_KEY + EEPROM_SETTINGS + OLED_PANEL_TINYBOY2
#
use_example_configs delta/generic
opt_set MOTHERBOARD BOARD_FYSETC_F6_13 \
        LCD_LANGUAGE ko_KR \
        X_DRIVER_TYPE L6470 Y_DRIVER_TYPE L6470 Z_DRIVER_TYPE L6470 \
        L6470_CHAIN_SCK_PIN 53 L6470_CHAIN_MISO_PIN 49 L6470_CHAIN_MOSI_PIN 40 L6470_CHAIN_SS_PIN 42 \
        'ENABLE_RESET_L64XX_CHIPS(V)' NOOP
opt_enable RESTORE_LEVELING_AFTER_G28 EEPROM_SETTINGS EEPROM_CHITCHAT \
           Z_PROBE_ALLEN_KEY AUTO_BED_LEVELING_UBL UBL_MESH_WIZARD \
           OLED_PANEL_TINYBOY2 MESH_EDIT_GFX_OVERLAY DELTA_CALIBRATION_MENU
exec_test $1 $2 "DELTA, RAMPS, L6470, UBL, Allen Key, EEPROM, OLED_PANEL_TINYBOY2..." "$3"

#
# Test mixed TMC config
#
restore_configs
opt_set MOTHERBOARD BOARD_FYSETC_F6_13 \
        LCD_LANGUAGE vi LCD_LANGUAGE_2 fr \
        X_DRIVER_TYPE TMC2160 Y_DRIVER_TYPE TMC5160 Z_DRIVER_TYPE TMC2208_STANDALONE E0_DRIVER_TYPE TMC2130 \
        X_MIN_ENDSTOP_INVERTING true Y_MIN_ENDSTOP_INVERTING true
opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER \
           MARLIN_BRICKOUT MARLIN_INVADERS MARLIN_SNAKE \
           MONITOR_DRIVER_STATUS STEALTHCHOP_XY STEALTHCHOP_Z STEALTHCHOP_E HYBRID_THRESHOLD \
           USE_ZMIN_PLUG SENSORLESS_HOMING TMC_DEBUG M114_DETAIL
exec_test $1 $2 "RAMPS | Mixed TMC | Sensorless | RRDFGSC | Games" "$3"

#
# Delta Config (FLSUN AC because it's complex)
#
use_example_configs delta/FLSUN/auto_calibrate
opt_set MOTHERBOARD BOARD_FYSETC_F6_13
exec_test $1 $2 "RAMPS 1.3 | DELTA | FLSUN AC Config" "$3"

#
# SCARA with Mixed TMC
#
use_example_configs SCARA/Morgan
opt_set MOTHERBOARD BOARD_FYSETC_F6_13 \
        LCD_LANGUAGE es \
        X_MAX_ENDSTOP_INVERTING false \
        X_DRIVER_TYPE TMC2209 Y_DRIVER_TYPE TMC2130 Z_DRIVER_TYPE TMC2130_STANDALONE E0_DRIVER_TYPE TMC2660 \
        X_HARDWARE_SERIAL Serial2
opt_enable USE_ZMIN_PLUG FIX_MOUNTED_PROBE AUTO_BED_LEVELING_BILINEAR PAUSE_BEFORE_DEPLOY_STOW \
           FYSETC_242_OLED_12864 EEPROM_SETTINGS EEPROM_CHITCHAT M114_DETAIL Z_SAFE_HOMING \
           STEALTHCHOP_XY STEALTHCHOP_Z STEALTHCHOP_E HYBRID_THRESHOLD SENSORLESS_HOMING SQUARE_WAVE_STEPPING
exec_test $1 $2 "FYSETC_F6 | SCARA | Mixed TMC | EEPROM" "$3"

# clean up
restore_configs
