Install Python Libs
sudo apt install python3-numpy python3-matplotlib libatlas-base-dev
Install Numpy
~/klippy-env/bin/pip install -v numpy
Install the rc script
If you want to use the host as a secondary MCU the klipper_mcu process must run before the klippy process.
After installing Klipper, install the script. run:
cd ~/klipper/
sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service
To compile the Klipper micro-controller code, start by configuring it for the "Linux process":
cd ~/klipper/
make menuconfig
In the menu, set "Microcontroller Architecture" to "Linux process," then save and exit.
To build and install the new micro-controller code, run:
sudo service klipper stop
make flash
sudo service klipper start
If klippy.log reports a "Permission denied" error when attempting to connect to /tmp/klipper_host_mcu then you need to add your user to the tty group. The following command will add the "pi" user to the tty group:
sudo usermod -a -G tty pi
Configure ADXL345 With RPi
Make sure the Linux SPI driver is enabled by running sudo raspi-config
and enabling SPI under the "Interfacing options" menu.
Veryfi SPI Interface
Method 1: Using raspi-config
- Open a terminal.
- Type
sudo raspi-config
and press Enter. This will open the Raspberry Pi configuration tool. - Use the arrow keys to navigate to "3 Interface Options" and press Enter.
- Navigate to "P4 SPI" and press Enter.
- If SPI is enabled, you will see "SPI is enabled" on the screen.
Method 2: Checking /boot/config.txt
- Open a terminal.
- Type
sudo nano /boot/config.txt
and press Enter. This will open the config.txt file in the nano text editor. - Look for a line that says dtparam=spi=on. If this line exists and isn't commented out (i.e., it doesn't have a '#' at the start of the line), SPI is enabled.
- Press Ctrl+X to exit the editor.
Method 3: Checking the /dev directory
If SPI is enabled, the system will create device files for SPI.
- Open a terminal.
- Type
ls /dev/spi*
and press Enter. - If SPI is enabled, you will see something like /dev/spidev0.0 /dev/spidev0.1.
Please remember that the Raspberry Pi needs to be restarted for changes to take effect. If you've just enabled SPI, be sure to reboot your Pi.
Update printer.cfg:
[mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100, 100, 20 # an example
Checking the setup
Now you can test a connection.
- For "non bed-slingers" (e.g. one accelerometer), in Octoprint, enter
ACCELEROMETER_QUERY
- For "bed-slingers" (e.g. more than one accelerometer), enter
ACCELEROMETER_QUERY CHIP=
where is the name of the chip as-entered, e.g.CHIP=bed
(see: bed-slinger) for all installed accelerometer chips.
You should see the current measurements from the accelerometer, including the free-fall acceleration, e.g.
Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800
Printer Config
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 10000 #Max 4000
max_accel_to_decel: 10000
max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 5.0
Measuring the resonances
Now you can run some real-life tests. Run the following command:
TEST_RESONANCES AXIS=X