#!/usr/bin/env bash
#
# Build tests for LPC1769 (NXP ARM Cortex-M3)
#

# exit on first failure
set -e

#
# Build with the default configurations
#
use_example_configs Azteeg/X5GT
exec_test $1 $2 "Azteeg X5GT Example Configuration" "$3"

restore_configs
opt_set MOTHERBOARD BOARD_SMOOTHIEBOARD \
        EXTRUDERS 2 TEMP_SENSOR_0 -5 TEMP_SENSOR_1 -4 TEMP_SENSOR_BED 5 TEMP_0_CS_PIN P1_29 \
        GRID_MAX_POINTS_X 16 \
        NOZZLE_CLEAN_START_POINT "{ {  10, 10, 3 }, {  10, 10, 3 } }" \
        NOZZLE_CLEAN_END_POINT "{ {  10, 20, 3 }, {  10, 20, 3 } }"
opt_enable TFTGLCD_PANEL_SPI SDSUPPORT ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \
           MAX31865_SENSOR_OHMS_0 MAX31865_CALIBRATION_OHMS_0 \
           MAG_MOUNTED_PROBE AUTO_BED_LEVELING_BILINEAR G29_RETRY_AND_RECOVER Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
           BABYSTEPPING BABYSTEP_XY BABYSTEP_ZPROBE_OFFSET BED_TRAMMING_USE_PROBE BED_TRAMMING_VERIFY_RAISED \
           PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT \
           Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \
           LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
exec_test $1 $2 "Smoothieboard with TFTGLCD_PANEL_SPI and many features" "$3"

#restore_configs
#opt_set MOTHERBOARD BOARD_AZTEEG_X5_MINI_WIFI
#opt_enable COREYX USE_XMAX_PLUG DAC_MOTOR_CURRENT_DEFAULT \
#           REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING \
#           AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 EEPROM_SETTINGS \
#           FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR FAN_SOFT_PWM \
#           SHOW_TEMP_ADC_VALUES HOME_Y_BEFORE_X EMERGENCY_PARSER FAN_KICKSTART_TIME \
#           SD_ABORT_ON_ENDSTOP_HIT ADVANCED_OK GCODE_MACROS \
#           VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS \
#           EXTRA_FAN_SPEED FWRETRACT MENU_ADDAUTOSTART SDCARD_SORT_ALPHA
#opt_set FAN_MIN_PWM 50 FAN_KICKSTART_TIME 100 XY_FREQUENCY_LIMIT  15
#exec_test $1 $2 "Azteeg X5 MINI WIFI Many less common options" "$3"

restore_configs
use_example_configs delta/generic
opt_set MOTHERBOARD BOARD_COHESION3D_REMIX \
        TEMP_SENSOR_0 1 \
        X_DRIVER_TYPE TMC2130 Y_DRIVER_TYPE TMC2130 Z_DRIVER_TYPE TMC2130 I_DRIVER_TYPE TB6560 \
        DEFAULT_AXIS_STEPS_PER_UNIT '{ 80, 80, 400, 500, 80 }' \
        DEFAULT_MAX_FEEDRATE '{ 300, 300, 5, 25, 300 }' \
        DEFAULT_MAX_ACCELERATION '{ 3000, 3000, 100, 10000, 3000 }' \
        MANUAL_FEEDRATE '{ 50*60, 50*60, 4*60, 2*60, 50*60 }' \
        AXIS_RELATIVE_MODES '{ false, false, false, false, false }' \
        HOMING_FEEDRATE_MM_M '{ (50*60), (50*60), (4*60), (50*60) }' \
        HOMING_BUMP_MM '{ 0, 0, 0, 0 }' HOMING_BUMP_DIVISOR '{ 1, 1, 1, 1 }' \
        NOZZLE_TO_PROBE_OFFSET '{ 0, 0, 0, 0 }' \
        I_MIN_PIN P1_25
opt_enable AUTO_BED_LEVELING_BILINEAR EEPROM_SETTINGS EEPROM_CHITCHAT MECHANICAL_GANTRY_CALIBRATION \
           TMC_USE_SW_SPI MONITOR_DRIVER_STATUS STEALTHCHOP_XY STEALTHCHOP_Z HYBRID_THRESHOLD \
           SENSORLESS_PROBING Z_SAFE_HOMING X_STALL_SENSITIVITY Y_STALL_SENSITIVITY Z_STALL_SENSITIVITY TMC_DEBUG \
           AXIS4_ROTATES I_MIN_POS I_MAX_POS I_HOME_DIR I_ENABLE_ON USE_IMIN_PLUG INVERT_I_DIR \
           EXPERIMENTAL_I2CBUS
opt_disable PSU_CONTROL Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
exec_test $1 $2 "Cohesion3D Remix DELTA + ABL Bilinear + EEPROM + SENSORLESS_PROBING + I Axis" "$3"

# clean up
restore_configs
