This is an old revision of the document!
new life for the Prusa Mk3S with klipper
there is a very good video on youtube which explains it all. basically a raspberry pi zero w can be added to a prusa mk3s printer and then the klipper firmware can be flashed to control the printer using klipper and therefore enable input shaping which more or less gives you the Mk3.5 upgrade bur for the cost of a raspberry pi zero W and a SD card, roughly 30 CHF in total.
here are my notes along the way.
BEFORE WE BEGIN!
start the printer and check the z offset values for all your build plates!
Pin Header
here is an illustration from the prusa manual, which shows which pins need to be soldered in. CAUTION note that the black pin header is offset by one row of pins above the 5V pin!
i had a raspberry with the full header soldered to it, so i ended up clipping off all the unneeded pins. the remaining header with the now cut off pins however interferes with the 3d printed frame, so i found a modified frame which fits with the full pin header plastic socket is still on the raspberry
flashing the sd card
on ubuntu, the raspberry pi imager can be installed using
sudo apt install rpi-imager
i configured my wifi, enabled ssh, and added my ssh public key
flashing the printer firmware
connect the raspberry pi with an usb micro OTG cable and a usb A to B cable to the printer. make sure you use the data port for that, then use a micro-usb power supply to power on the raspberry. now ssh into the raspberry and then:
cd klipper make menuconfig
then:
- enable extra llow-level config
- change communication interface to
UART1 - press q to exit save
now find the serial port where the prusa printer is attached (via usb for now)
ls /dev/serial/by-id/*
copy the path and then stop klipper and run the make command to build and flash the firmware:
sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-Prusa_Research__prusa3d.com__Original_Prusa_i3_MK3_..........
once the flashing is done, turn off the printer, disconnect all usb cables and plug the raspberry straight into the back of the controller board as shown in the video.
upload and adjust config
on your pc, clone the charminULTRA Git Repo for the mk3s upgrade, then go to the config files folder and rename the printer.template.cfg to printer.cfg
now go to the web interface of klipper and go to the machine page, there clicke on the left most icon “upload config files” and select all these config files and upload them.
now open the printer.cfg file via the web interface and edit the following sections:
put your z offsets from before in this section:
[probe] z_offset = 0.800 #Regular bed sheet
change the communication port to serial0:
[mcu] #serial: /dev/ttyACM0 # If you are using RPI via USB connection to printer serial: /dev/serial0 # If you are using internal RPI serial port, not recommended. restart_method: command
enable pressure advance with a value of 0.05:
pressure_advance: 0.05
add these basic input shaper values to start with, this can be tuned later if we feel like optimizing it, but that's what the author of the video recommends for the mk3s:
[input_shaper] shaper_type_x: mzv shaper_freq_x: 50 shaper_type_y: mzv shaper_freq_y: 40
now save and restart. after that restart, the printer should be showing temperatures and other stuff via the web gui and also on the prusa's display
PID Calibration
on the dashbard page of klipper, there is a “Console” box. make sure that the printhead is not touching anything with the nozzle and then run this command:
PID_CALIBRATE HEATER=extruder TARGET=170
it will heat the extruder to 170 degrees celsius and cool it down a bit, then heat again etc. once this is done, the console output will show the pid values. run the
SAVE_CONFIG
command to save these values and reboot klipper.
now repeat the whole process for the heated printbed:
PID_CALIBRATE HEATER=heater_bed TARGET=60
and dont forget:
SAVE_CONFIG
