Klipper and the CR-10 Max
The CR-10 max i have is great, now I have it working properly and started to get it dialled in. However, there are a few things that could always do with a bit of improvement. First off, the speed. I wanted it to go a bit fast. Not super speed, but something to finished prints in reasonable time.
As I write this, I have just updated to klipper, following on from printing out quite a few battle bots for the kids track at Steelcon, via the infosec battlebots. While the prints weren't particularly slow at 6 hours for the main body, most of that was due to the large nozzle size, rather than the actual speed. More speed, generally means a fast processor to process the commands. Klipper achieves this by using the raspberry pi as a controller, leaving the 8bit board to just do as it's told, rather than process the commands.
The next thing I wanted from my firmware was something that could be updated. While using the stock hotend on the printer is all well and good, there are other alternatives out there. A bigger, more powerful hotend means a faster filament flow. Faster filament flow means the printer can run faster.
The main downside to running klipper was the potential loss of the LCD screen. The screen is actually quite badly placed on the CR-10 max, as when a print is finished, the bed has a habit of covering it. Yes I can fix it in GCode, but mostly I tend to just use Octoprint.
The Research
The first thing I did was find out some resources about klipper. Teaching tech has a few videos on this on his channel. Another resource I found was this fork of the klipper firmware, which lets me get back my LCD screen. At time of writing, I've not actually flashed the screen, and that will be a secondary post, but the last version of klipper was installed with support for it.
I already had Octoprint on my raspberry pi set up, so the first thing I did was install the klipper software, using this script. The script from xdadrm can be found in the issues section of the repo on github.
#!/bin/bash
if [ ! -d klipper/.git ]; then
git clone https://github.com/Klipper3d/klipper.git klipper
else
echo "Klipper exists .."
fi
pushd klipper
if ( git branch | grep desuuuu-ender6 -q ); then
git switch desuuuu-ender6
else
git branch desuuuu-ender6
git checkout desuuuu-ender6
fi
GIT_EDITOR=/bin/true git pull https://github.com/Klipper3d/klipper.git
GIT_EDITOR=/bin/true git pull -q -X ours --no-rebase https://github.com/Desuuuu/klipper.git
popd
For anyone not familiar with git, this script downloads the main klipper repository (if necessary), changes to a branch call desuuu-ender6 (I renamed my branch to desuuu-cr10max), and then sets that branch for use. Once done, the script then pulls any changes from the main klipper repo and then any differences from the Desuuu fork.
Once you have your codebase, proceed with the install as per the teaching tech video. The only difference for me was that I have enabled the T5UID1 support for later. The details of what needs to be done there, can be found here (if you don't want to wait for my next post). I also installed the octoklipper plugin for octoprint.
Once completed, I did set up my configuration for my printer from a few different sources. The main one that is working for me is here on my github.
Once I had everything installed and my printer.cfg file was configured, I set about testing everything. I emplore you to do the same. Please don't skip this as it is important to make sure that everything is working correctly, especially the emergency stop.
Once I had completed all the tests and set the Z-offset - With a realisation of how badly it was set when I got the printer - I was able to do a few test prints. Already, these prints were a lot better than the old firmware, although that may be in part down to the z-offset.
The only issue that I have currently found is due to me switching off the printer, but not klipper and octoprint when the printer is not in use. I will find a solution to this, as it is a pain to get klipper seeing the printer again when the printer is not on.