Introduction

You will need a printed adapter to mount the ADXL345 to the rear of the X carriage. You can find one here

https://www.klipper3d.org/Measuring_Reso...

  1. UhOsfIKxAeFAOBKp
    • 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)

  2. UROjmCkLo4ODJ116
    • There are a number of options you can use to mount the accelerometer. I used this mount

  3. QGAmFlZOrdtl5leF
    • You need to SSH into to your printer and install Numby.

    • ~/klippy-env/bin/pip install -v numpy

    • Be patient, this package can take 10-20 minutes to install. When finished run:

    • 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

  4. RNkBgjkB3MThPmAE
    • 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

  5. 3wZ4dqd1AAYyqnJR
    • 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

    • f you get an error like Invalid adxl345 id (got xx vs e5), where xx is some other ID, it is indicative of the connection problem with ADXL345, or the faulty sensor. Double-check the power, the wiring (that it matches the schematics, no wire is broken or loose, etc.), and soldering quality.

    • 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.

    TEST_RESONANCES AXIS=X

    When the test completes run it again for Y

    TEST_RESONANCE AXIS=Y

    need to add S on the end of RESONANCE

    Ben Page -

    Good catch thanks. It’s been corrected.

    David Husolo -

    Thank you, most helpful indeed. An alternative to TEST_RESONANCE, is to use SHAPER_CALIBRATE for a coreXY using one sensor (or SHAPER_CALIBRATE AXIS=X and SHAPER_CALIBRATE AXIS=Y for a bed slinger with 2 separate sensors - hotend and bed). This allows to retrieve the results of the calibration test directly in the console, and results can be easily saved to the printer.cfg using SAVE_CONFIG. This method eliminates the need to SSH into the rpi and issuing the commands mentioned in the next step, then having to look up and copy the values yourself into the printer.cfg

    Glen Micallef -

  6. Y6TV4HwLkTuqcljN
    Y6TV4HwLkTuqcljN
    5aWGenQgYYPadLCF
    • 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 can use WINSCP to copy them to your PC if you like but it's not necessary.

    • 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

  7. SlM2qfYEICHpMYQa
    SlM2qfYEICHpMYQa
    JWYGCah6SrKjioRh
    • 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.

David Husolo

Member since: 16/06/21

9102 Reputation

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:

nyt foodle -