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 mcu
and 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:
make
When that completes, the mcu binary will be in out/klipper.bin
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.