Introduction
You will need a printed adapter to mount the ADXL345 to the rear of the X carriage. You can find one here
Parts
-
-
Connect the Accelerometer to the RPI
-
Accelerometer 3V3 to RPI pin 17 3.3v
-
Accelerometer GND to RPI pin 20 Ground
-
Accelerometer CS to RPI pin 24 GPIO08 (SPI0_CE0_N)
-
Accelerometer SDO 21 to RPI pin GPIO09 (SPI0_MISO)
-
Accelerometer SDA to RPI pin 19 GPIO10 (SPI0_MOSI)
-
Accelerometer SCL 23 to RPI pin GPIO11 (SPI0_SCLK)
-
-
-
You need to SSH into to your printer and install Numby.
-
~/klippy-env/bin/pip install -v numpy
-
sudo apt update
-
sudo apt install python3-numpy python3-matplotlib -y
-
Verify Linux SPI driver is enabled
-
sudo raspi-config
-
#3 Interface Options > P4 SPI > Yes > OK > Finish
-
-
-
Uncomment the input shaper & resonance tester section in the config.
-
probe_points: It's recommended to use 1 point in the center of the bed slightly above. I used the same coordinates used when homing Z
-
Restart klipper with
-
RESTART
-
-
-
Check to make sure the RPI can communicate with the ADXL345 by running the following command in console
-
ACCELEROMETER_QUERY
-
It should return something like:
-
adxl345 values (x, y, z): -152.983740, 10249.910580, 152.983740
-
-
-
Home the printer.
-
During resonance testing the vibrations can become extremely violent. Make sure you're in proximity of the printer in case you need to cancel the test with M112
-
Now you can run the first resonance test for X
-
TEST_RESONANCES AXIS=X
-
When the test completes run it again for Y
-
TEST_RESONANCES AXIS=Y
-
When the test is complete it will generate CSV files stored on the pi.
-
-
-
SSH back in to the printer and run the following 2 commands
-
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png
-
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png
-
This script will generate the charts /tmp/shaper_calibrate_x.png and /tmp/shaper_calibrate_y.png with frequency responses
-
You will also get the suggested frequencies for each input shaper, as well as which input shaper is recommended for your setup.
-
You can see my values for X
-
You can see my values for Y
-
-
-
With a CoreXY you can also use Klipper to compare belt tension between X and Y. This doesn't tell you if the belts are too tight or too loose. It tells you have the belts are tensioned equally.
-
Run the following commands in the console
-
TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data
-
TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data
-
SSH into the pi and run
-
~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png
-
Based off the generated graph, X had much higher frequencies than Y. I had to tighten the left belt tensioner to to bring the frequencies closer to each other.
-
As you can see from the 2nd test the frequencies for X and Y are closer together, but could still use a little more adjustment. I think a lot of the frequency variation is due to my cable chain. At lower frequencies it rattles considerably more only when calibrating X.
-
2 comments
Great Post! You might want to add a paragraph on the RPi Microcontroller for multi mcu with the pi
gary -
You must have known delicious food, right? And now you will play a game called: