/klippermini

Klipper with Prusa Mini support

Primary LanguageCGNU General Public License v3.0GPL-3.0

Klipper for the Prusa Mini

Unofficial Klipper fork for the Prusa Mini and Mini+

This is a fully working unofficial fork of Klipper for the Prusa Mini and Mini+, adding full support for the ST7789V LCD, including the jogwheel.

There are many advantages to using Klipper:

  • Improved Print Quality: Klipper offers improved print quality.
  • Higher Speeds: The gains in print quality allow for even higher printing speeds. I regularly run at 90mm/s with 3K accels on my Mini, and with structural improvements to the frame, higher speeds would easily be possible.
  • Skew Correction: The Prusa Mini is inherently prone to skew, yet Prusa disabled Marlin's skew correction in their firmware. Klipper has built-in full 3-plane skew correction, which can easily be calibrated using this simple STL and spreadsheet.
  • Greater Configurability: Prusa's firmware doesn't allow permanent modification of E-steps or PID values. These, and many other parameters, can be changed in Klipper simply by editing a config file and restarting the Klipper service on your Pi.
  • Better OctoPrint Support: Klipper is designed from the outset to be used with a Raspberry Pi, and plays much better than Prusa's firmware with OctoPrint. Klipper also has dedicated frontends including Fluidd and Mainsail.

For a demo of the LCD, watch this video.

Status Control


Installing Klipper

For an easy to follow tutorial, see KeenzKustoms' video.

Jailbreak your Mini

You will need to cut out Prusa's appendix to install custom firmware. Follow the instructions here. This is irreversible and voids the warranty, although in the US you are protected by the Magnuson-Moss Warranty Act.

Of course you could always buy a second Buddy board and let your Llama run wild on that instead.

Alternatively, if you are good at very fine pitch soldering, you could lift the BOOT0 pin off the board entirely and make your own jumpers to connect it directly to 3.3V or GND as you need (the appendix merely shorts BOOT0 directly to GND).

Once you have done that, you can install Klipper.

Build and Flash Klipper

Follow the standard Klipper instructions here. Instead of:

git clone https://github.com/KevinOConnor/klipper

Use:

git clone https://github.com/keenzkustoms/klippermini

Then follow the instructions in config/printer-prusa-mini-plus-2020.cfg, some of which are repeated here.

To use this config, the firmware should be compiled for the STM32F407. Run "make menuconfig" and set the following parameters:

  • check Enable extra low-level configuration options
  • set Microcontroller Architecture to STMicroelectronics STM32
  • set Bootloader offset to 128KiB + 512 byte offset
  • set Clock Reference to 12 MHz crystal
  • set Communication interface to USB (on PA11/PA12)

Connect the printer to your Raspberry Pi using the printer's micro-USB port. If you prefer to remove Prusa's stock bootloader entirely, select the "No bootloader" option.

When flashing for the first time, you will need to break the "appendix" on the Buddy board, then put the device into DFU mode by moving the jumper on the 3-pin header (older boards) or shorting the 2-pin header (newer boards) and resetting, and finally use "make flash" to install Klipper. Once Klipper is installed, you no longer need the jumper - just use "make flash" which will automatically put the device into DFU mode.

Note that if you were previously running Prusa firmware, you must fully power cycle the board after flashing. Otherwise, Klipper will be unable to communicate with the TMC2209s due to the abrupt change in the baud rate, and will show this error: "Unable to read tmc uart register IFCNT".

Reinstalling Prusa's Firmware

Download Prusa's stock firmware here and follow Prusa's instructions to install it.

If you overwrote the bootloader, you can always reflash the board in DFU mode. Compile the original Prusa firmware to output a DFU file:

$ python3 utils/build.py --generate-dfu --bootloader yes

If you built it from another machine, copy it to your Pi:

$ scp build/mini_release_boot/firmware.dfu <user>@<pi-host>:~/

Put your Buddy board in DFU mode by placing a jumper across the relevant pins and resetting. If you have a 3-pin header next to the appendix (older versions of the board), put the jumper between BOOT0 and 3.3V. If you have a 2-pin header, just add a jumper.

Then flash from your Pi:

$ lsusb
Bus 001 Device 010: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
$ sudo apt install dfu-util
$ dfu-util -a 0 -D firmware.dfu

Don't forget to remove the jumper before resetting.


Original Klipper README

Welcome to the Klipper project!

Klipper

https://www.klipper3d.org/

Klipper is a 3d-Printer firmware. It combines the power of a general purpose computer with one or more micro-controllers. See the features document for more information on why you should use Klipper.

To begin using Klipper start by installing it.

Klipper is Free Software. See the license or read the documentation.