Wading through Klipper docs or trying to get answers from the Klipper community can take a long time, so here’s a quick guide to getting Klipper up and running on your CR-30.
Note that my setup (printer.cfg) remaps the fans for silent running when not printing (see Silent fans on CR 30 while idle (github.com))
Before you get started, you should understand that Klipper splits the classic “firmware” that runs on your control board into two parts. One is a very small
mcu firmware that actually runs on your control board, and the other is
klippy which is a python program running on a computer (usually a PI) connected to the the control board.
klippy connects to the “real” serial port and creates a “fake” serial port (/tmp/printer) that your spooler (like OctoPrint) connects to.
For this example, I will use a Raspberry PI. You will have to adapt the instructions if you use something else.
In the root of the home directory of the pi user, clone the Klipper repo:
git clone https://github.com/KevinOConnor/klipper
You will need the mcu config file in a later step and it’s best to fetch it now:
curl https://static.grid.space/tmp/cr30-klipper/printer.cfg > printer.cfg
Then change directories to the Klipper scripts directory and run a script to install dependencies necessary to build the
mcu firmware. I do not recommend using other people’s binaries since the protocol between
klippy changes from time to time and would invalidate later steps.
cd klipper ./scripts/install-octopi.sh
Once that is done, you will need a valid
.config file to build the
mcu binary. Fetch the following config file:
curl https://static.grid.space/tmp/cr30-klipper/config > .config
This will create the
.config file and you can now run:
When that completes, the mcu binary will be in
Copy that file to an SD card and rename to something like
firmware-klipper-yymmdd.bin – typically this is done from your desktop using a command like
scp pi@<pi-ip-address>:klipper/out/klipper.bin <path-to-local-SD-card>/firmware-unique-name.bin
Place the SD card into the CR-30’s SD slot and turn it off (wait 5 seconds) and back on.
The LCD screen will be blank until the python
klippy program on the PI starts taking to the
mcu. This is normal.
On the PI, run:
sudo service klipper restart
And the LCD should come alive. At this point,
klippy is running and OctoPrint can connect to
/tmp/printer. You will also have a log file
/tmp/klippy.log that you can tail to see what Klipper is up to.
If something is amiss, this log file will tell you why.