I wanted to try out Klipper Firmware on my MK3S with Bondtech extruder upgrade, as well as bear frame. But I struggled to find any specific information on Google about how to proceed with this. So I'm writing this post as sort of a collection of steps and configs needed in one place, that I gathered from different places on the internet. My hope is that it's going to make looking up this information on google much easier.
The Klipper configuration files included in this post support everything from the stock MK3 to MK3S with bear frame, bear extruder, or bondtech extruder, all using the stock Einsy RAMBo board.
USB to Serial Firmware
As pointed out in the generic Einsy klipper config:
The Einsy boards sold by Prusa have defective firmware on the usb-to-serial chip that make the boards unusable with Klipper (boards sold by Ultimaker do not have this issue). See https://github.com/PrusaOwners/mk3-32u2-firmware for a fixed usb-to-serial firmware.
The PrusaOwners firmware repo goes through steps on how to flash the firmware, however there is a much easier way to do it, as found out and written by Chris Warkocki:
You need an USB ASP Programmer, you can get one for around $5/€ on Amazon.com or Amazon.de, you can also find it on AliExpress and similar websites if Amazon isn't available in your country. You will also need either a computer running Linux, or something like raspberry pi.
- Unplug your printer from power. Make sure everything is shut down.
avrdudeon the device you'll be connecting to the board, for example raspberry pi. It should be as simple as
sudo apt-get install avrdude. If that doesn't work you can find more install instructions here.
- Connect the USB ASP Programmer to ICSP pins on the Einsy RAMBo board and plug the USB part to raspberry pi/your computer. You can use photos in the PrusaOwners repo as reference where the pins are, or Chris Warkocki patreon post linked above.
- Run the following commands in this order:
sudo avrdude -p m32u2 -F -P usb -c usbasp-clone -U flash:r:firmware_backup.hex:i -U eeprom:r:eeprom.hex:i -U lfuse:r:lowfuse:h -U hfuse:r:highfuse:h -U efuse:r:exfuse:h -U lock:r:lockfuse:h
sudo avrdude -p m32u2 -F -P usb -c usbasp-clone -U hfuse:w:0xD1:m
sudo avrdude -p m32u2 -F -P usb -c usbasp-clone -U flash:w:DFU-hoodserial-combined-PrusaMK3-32u2.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m
5. Done. The firmware has now been flashed. You can now proceed with standard Klipper installation
I really had trouble finding an up to date Klipper config for this printer, as well as the extruder. I found this PR, that's unfortunately stale and closed - so it's not going to be merged in the main Klipper repo for now. But it works perfectly, and covers majority of hardware changes that one may do to Original Prusa MK3S/+.
I'm gonna include the config here again, to avoid it being lost - but, as mentioned above I did not come up with it: Klipper MK3S/+ Config including optional Bondtech Extruder, Bear Extruder, etc. (github.com) But I tested it and it works perfectly.
Is it worth it?
Personally I'm gonna go with "No". Not unless you're solving specific issues, or you want to try and print at much higher speeds. It's however a fun experiment, and definitely doesn't make things worse. If there's enough interest I may do a print comparison, but there really aren't any major differences. Printing at higher speeds, and advanced things like measuring resonances and compensating for them using ADXL345 accelerometer is definitely possible with Klipper but not with standard firmware. That being said, it doesn't make things worse neither - and is relatively easy to do.