Установка акселерометра ADXL345
Вам потребуется напечатанный адаптер для крепления ADXL345 к задней части X-каретки. Его можно найти здесь
https://www.klipper3d.org/Measuring_Reso...
Шаг 1

Подключите акселерометр к Raspberry Pi
Акселерометр 3V3 — к контакту 17 Raspberry Pi 3.3 В
Акселерометр GND — к контакту 20 Raspberry Pi Земля
Акселерометр CS — к контакту 24 Raspberry Pi GPIO08 (SPI0_CE0_N)
Акселерометр SDO 21 — к Raspberry Pi GPIO09 (SPI0_MISO)
Акселерометр SDA — к контакту 19 Raspberry Pi GPIO10 (SPI0_MOSI)
Акселерометр SCL 23 — к Raspberry Pi GPIO11 (SPI0_SCLK)
Шаг 2

Существует несколько вариантов крепления акселерометра. Я использовал этот кронштейн
Шаг 3

Необходимо подключиться по SSH к принтеру и установить NumPy.
~/klippy-env/bin/pip install -v numpy
Будьте терпеливы, установка этого пакета может занять 10–20 минут. После завершения выполните:
sudo apt update
sudo apt install python3-numpy python3-matplotlib -y
Проверьте, что драйвер SPI для Linux включён
sudo raspi-config
#3 Interface Options > P4 SPI > Yes > OK > Finish
Шаг 4

Раскомментируйте раздел input shaper и resonance tester в конфигурации.
probe_points: Рекомендуется использовать 1 точку в центре стола немного выше. Я использовал те же координаты, что и при хоминге Z
Перезапустите Klipper командой
RESTART
Шаг 5

Проверьте связь Raspberry Pi с ADXL345, выполнив в консоли следующую команду
ACCELEROMETER_QUERY
Она должна вернуть примерно следующее:
adxl345 values (x, y, z): -152.983740, 10249.910580, 152.983740
Если вы получаете ошибку типа Invalid adxl345 id (got xx vs e5), где xx — другой идентификатор, это указывает на проблему с подключением ADXL345 или на неисправный датчик. Проверьте питание, проводку (соответствие схеме, отсутствие переломленных или неплотных проводов и т. п.) и качество пайки.
Шаг 6
Выполните хоминг принтера.
Во время тестирования резонанса вибрации могут стать очень интенсивными. Находитесь рядом с принтером на случай, если потребуется отменить тест командой M112
Теперь можно запустить первый тест резонанса по оси X
TEST_RESONANCES AXIS=X
После завершения запустите тест для оси Y
TEST_RESONANCES AXIS=Y
После завершения теста будут сгенерированы CSV-файлы, сохранённые на Raspberry Pi.
Шаг 7

Подключитесь по SSH к принтеру и выполните следующие 2 команды
~/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
Этот скрипт сгенерирует графики /tmp/shaper_calibrate_x.png и /tmp/shaper_calibrate_y.png с частотными характеристиками
Вы можете использовать WINSCP для копирования их на ПК, если хотите, но это не обязательно.
Вы также получите рекомендуемые частоты для каждого input shaper, а также указание, какой input shaper рекомендуется для вашей конфигурации.
Вы можете увидеть мои значения для X
Вы можете увидеть мои значения для Y
Шаг 8

Для CoreXY можно также использовать Klipper для сравнения натяжения ремней X и Y. Это не указывает, слишком ли туго или слишком слабо натянуты ремни. Это показывает, равно ли натяжение ремней друг другу.
Выполните в консоли следующие команды
TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data
TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data
Подключитесь по SSH к Raspberry Pi и выполните
~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png
По сгенерированному графику видно, что у X были значительно более высокие частоты, чем у Y. Мне пришлось подтянуть натяжитель левого ремня, чтобы сблизить частоты.
Как видно из второго теста, частоты X и Y стали ближе, но всё ещё требуют небольшой донастройки. Думаю, большая часть вариации частот связана с моим кабель-каналом. При более низких частотах он заметно сильнее дребезжит только при калибровке X.
Перевод руководства с ifixit.com