## Input Shaping #[input_shaper] #shaper_freq_x: 35 #shaper_freq_y: 149.8 #shaper_type_x: zv #shaper_type_y: zv [adxl345] spi_bus: spi1 #spi_software_sclk_pin: SPI1-SCK #spi_software_mosi_pin: SPI1-MOSI #spi_software_miso_pin: SPI1-MISO cs_pin: PD9 #SPI1-CS [resonance_tester] accel_chip: adxl345 probe_points: 60,60,20 # Dead Center ##################################################################### # Macros ##################################################################### [gcode_macro resonance_test] gcode: # Set variables for axis centers {% set midx = printer.configfile.config.stepper_x.position_max|float / 2 %} {% set midy = printer.configfile.config.stepper_y.position_max|float / 2 %} G28 TEST_VIBRATIONS X={ midx } Y={ midy } Z=20 AXIS=X FREQ_START=10 FREQ_END=100 FREQ_STEP=0.5 OUTPUT=/tmp/vib-x.csv TEST_VIBRATIONS X={ midx } Y={ midy } Z=20 AXIS=Y FREQ_START=10 FREQ_END=100 FREQ_STEP=0.5 OUTPUT=/tmp/vib-y.csv TEST_VIBRATIONS X={ midx } Y={ midy } Z=20 VIB_X=1 VIB_Y=1 FREQ_START=10 FREQ_END=100 FREQ_STEP=0.5 OUTPUT=/tmp/vib-b.csv TEST_VIBRATIONS X={ midx } Y={ midy } Z=20 VIB_X=-1 VIB_Y=1 FREQ_START=10 FREQ_END=100 FREQ_STEP=0.5 OUTPUT=/tmp/vib-a.csv [gcode_macro vibration_test] gcode: # Set variables for axis centers {% set midx = printer.configfile.config.stepper_x.position_max|float / 2 %} {% set midy = printer.configfile.config.stepper_y.position_max|float / 2 %} # Store the user's intial input_shaper frequency parameters {% set initShapeX = printer.configfile.config.input_shaper.shaper_freq_x %} {% set initShapeY = printer.configfile.config.input_shaper.shaper_freq_y %} G28 #X Vibration - With Input Shaper G1 X{ midx - 25 } Y{ midy } Z20 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=3200 OUTPUT=/tmp/accel-x-input-shaper.csv G1 X{ midx + 25 } Y{ midy } F6000 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=0 OUTPUT=/tmp/accel-x-input-shaper.csv #Y Vibration - With Input Shaper G1 X{ midx } Y{ midy - 25 } Z20 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=3200 OUTPUT=/tmp/accel-y-input-shaper.csv G1 X{ midx } Y{ midy + 25 } F6000 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=0 OUTPUT=/tmp/accel-y-input-shaper.csv #B Vibration - With Input Shaper G1 X{ midx - 25 } Y{ midy - 25 } Z20 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=3200 OUTPUT=/tmp/accel-b-input-shaper.csv G1 X{ midx + 25 } Y{ midy + 25 } F6000 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=0 OUTPUT=/tmp/accel-b-input-shaper.csv #A Vibration - With Input Shaper G1 X{ midx + 25 } Y{ midy - 25 } Z20 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=3200 OUTPUT=/tmp/accel-a-input-shaper.csv G1 X{ midx - 25 } Y{ midy + 25 } F6000 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=0 OUTPUT=/tmp/accel-a-input-shaper.csv SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 #X Vibration - Stock G1 X{ midx - 25 } Y{ midy } Z20 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=3200 OUTPUT=/tmp/accel-x-stock.csv G1 X{ midx + 25 } Y{ midy } F6000 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=0 OUTPUT=/tmp/accel-x-stock.csv #Y Vibration - Stock G1 X{ midx } Y{ midy - 25 } Z20 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=3200 OUTPUT=/tmp/accel-y-stock.csv G1 X{ midx } Y{ midy + 25 } F6000 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=0 OUTPUT=/tmp/accel-y-stock.csv #B Vibration - Stock G1 X{ midx - 25 } Y{ midy - 25 } Z20 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=3200 OUTPUT=/tmp/accel-b-stock.csv G1 X{ midx + 25 } Y{ midy + 25 } F6000 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=0 OUTPUT=/tmp/accel-b-stock.csv #A Vibration - Stock G1 X{ midx + 25 } Y{ midy - 25 } Z20 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=3200 OUTPUT=/tmp/accel-a-stock.csv G1 X{ midx - 25 } Y{ midy + 25 } F6000 M400 G4 P300 ACCELEROMETER_MEASURE CHIP=adxl345 RATE=0 OUTPUT=/tmp/accel-a-stock.csv # Restore user's input shaper frequency parameters SET_INPUT_SHAPER SHAPER_FREQ_X={ initShapeX } SHAPER_FREQ_Y={ initShapeY }