Klipper anyone?

Just wondering if anyone has interest in trying Klipper. By providing much finer control of stepper motors it is supposed to allow for a lot faster print speeds. From what I’ve been watching and reading it basically takes all of the gcode calculations away from the printer’s control board, moving them to a Raspberry Pi. What goes to the printer are only actual direct commands to the chips on the control board.

The biggest advantage was that it allowed speeds the old 8 bit board simply couldn´t handle. The 8 bit processor needs a lot CPU time to convert the specified gcode directions into proper directions and stepper commands. As you mentioned right, clipper reduced the printer to a slave. Set temperature, get temperature, set fan, move axis.

However, as you may noticed there was the term “8 bit” used, so instead of using some 16Mhz Arduino based 8 bit processor we now have 100++Mhz 32 Bit processors, which not only provide speed, but also allow calculating stuff with more accuracy in far less time. Having more CPU power also means being able to react closer to real time, where the original 8 bit processor caused stuttering. ARM processors also allow to utilize more memory and you can create a proper multitasking environment. Yes, you could do that on an 8Bit system, too, but the overhead (task switching needs additional code, CPU time to store registers and additional stack per task) and the additional resources limit the already limited 8 bit system even more in speed and space.

So this advantage of Klipper is more or less gone. The only thing is left, is that the 8 bit system has no chance to be interrupted by anything, so the stepper timing is perfect at any time. Also the host system can calculate arcs in higher precision.

Well, in my opinion this isn´t worth the upgrade anymore. Especially if your printer already has a 32bit system, which can deal with the timing very well and comes with other cool features like a better display, additional controls for power supply control, wifi and what not.

A PC connected via USB to a 3D Printer always called for a problem. A Raspberry Pi fixed the issue and makes even sense when using 32 bit board, as e.g. the whole web interface can create unpredictable delays only a preemptive multitasking could handle properly. You can run Klipper and OctoPrint on the same Pi, but is it worth the trouble?

Yes, in the end you can print faster, but how many ours did it take to set up? How many prints will fail until it runs properly? When does an update will break your install and you need to redo the stuff? Of course all this is just theoretical, but something like this usually happens. Yes, you can print faster, but is it still fast and worth if you take all the issues into account that prevented you from printing?

As you may know I am not a big fan of these Z-Sensor stuff. You spend hours to install them and after some time they fail, cause random errors, because their beaker as fallen while printing and you start repairing and ordering parts, where your printer is not operational. On the other hand an adjustable mechanical switch has 500000 switch cycles and never fails. I used my printers for more than a year without levelling and even then was only required to do so because I needed to repair something else. Same with filament run out sensors. In 99% of a time you never need them, but from time to time the trigger false positives.

Even a slow printer can win against a fast one in print speed. If your 12 hour Klipper print fails 6 hours in, a slower printer requiring 15 hours may succeed faster and even used less plastic and less electricity. Faster usually also means more chances of failure.

Will Klipper give you the same quality at higher speeds? Sure. Will it increase the overall reliability of your printer? I don´t think so.

If you like tinkering on your printer, then go for it. There are many people in the Klipper community and it for sure improved and will improve. I guess no one will stop you from trying. I personally think of a printer as a tool and don´t care about speed. A tool needs to function when I need it. I don´t want to fix my power drill every time I need it. Same goes for a 3D printer.

For many people not 3d printing is the hobby. The 3D printer is! Like tuning a car, they are finished at some point and buy the next one.

So are you more on the tinkering and tuning side or more on the tool and reliability side? These are just my 50 cents on Klipper.

Interesting thoughts about Klipper. I was under the impression that Klipper still makes a difference. You actually sort of imply that, but think it’s not worth it because there is so little difference between a Pi processor and the newer 32 bit controller processors.

As regards Z sensors, I am going to have to disagree. Up until a week ago I might well have agreed, because I hadn’t noticed much difference using my BL Touch. That changed when I, finally, used the OctoPrint Bed Visualizer and Mesh Levelling features. I used the Bed Visualizer to see how level the bed was, then adjusted the corner wheels to make the bed as level as possible. I saved the mesh values, then ran the Update Mesh Now. The values were significantly different. I ran it again. The values did change but not as much as the 1st time. Subsequent mesh updates refined the values, but only slightly. Then, I removed the flexible steel bed plate, replaced it, then ran the update again. The values changed more; not as much as the 1st time, but still more than before I replaced the plate. Since running the mesh update I’ve noticed that I’m having fewer issues with adhesion. My prints are more reliable. I’ve been able to increase my 1st layer print speed and still print reliably.
The changes in mesh values after removing and replacing the spring steel plate tells me it’s probably a good idea to run a Mesh Update each time I move the steel plate.

To me, using the BL Touch is a way to accomplish what using rafts used to do. Now, I wasn’t 3D printing in the 90s or 2000s, but my understanding is people would print on rafts specifically to overcome issues with uneven beds, something that was difficult to accomplish at the time.

Bottom line? The BL Touch has only once given me any trouble, and that was because I messed up and caused the probe to hit a model and get bent. I straightened the probe and haven’t had any issues since. Now that it’s working as I think it’s supposed to, I don’t want to be without it.

Regarding tinkering, I think you know I also want my printers to be tools. As I’ve said a number of times, I’m all about making practical prints, things that are useful. If I had the money, I would buy a much higher end printer that requires little to no tinkering. The tinkering I do is to increase the efficiency and reliability of my printers.

Well, with a glass bed there is an even surface anyway. No need to have additional weight on the print head and gantry to carry around, when the bed cannot be bend.

I rather adjust the bed properly and be done and for the record. I like to print rafts these days, too. Especially for object like my ring lamps, where you want the bottom and top layers to look equal. A textured, blank or even a little squished version is unwanted here. A raft fixes that in a nice way. Since you can adjust the raft properties, the waste is not that big and there is also more or less no post processing required, as there is no brim edges or elephant foot.

I think this is why the guy who designed the HevORT printer uses mirrors as his bed. Mirrors, at least decent ones, are flat.

That and they look cool on video. Many people think the mirror is helping, because you can see the nozzle from underneath. Unfortunately this is only true, when you have an issue like a leak or if you want to see if there is filament stuck on the other side. During normal operation it just makes it harder to see the nozzle distance as the horizon basically doubles the nozzle space. (aka difference between real nozzle and the reflected nozzle).

The risk of breaking a mirror is quite high due to the high temperature changes. e.g. spraying isoproponol onto a hot bed can crack it. Thats why I use borosilicate glass. It the the same material used for you oven in the kitchen or glass cooking bowls. It can handle rapid temperature changes very well.

For me, the only real advantage of the mirror is its flatness. If you could get borosilicate glass as flat as a mirror, you’d be all set.

Well, my initial experience with Klipper is more than positive. I don’t think the installation and configuration is for complete beginners, but I’m no expert and I’m finding it doable. @Geit, you will be happy to know Klipper can run on even a Pi Zero (although not if you also want a camera). In fact Nero says his Pi Zero based printers never show load above 20%.

Modifying the configuration is so much simpler than Marlin – just edit 1 file: printer.cfg, which is kept on the Pi (which makes backup super easy).

@woodwaker_dave says all 5 of his printers are now running Klipper.

I am getting really good results so far: no issues with 1st layer adhesion, the filament ooze before printing starts has virtually disappeared, and I just calibrated Pressure Advance (Linear Advance in Cura) so my corners are coming out nice and sharp.

I also like the interface more than OctoPrint’s. Klipper does not yet have the plethora of plugins that OctoPrint has, but it’s much newer and that is changing.

I have an ADXL345 accelerometer coming that should allow me to calibrate for printer harmonics (Input Shaping) and, hopefully, virtually eliminate ringing. All in all, I’m loving it so far.

Oh, I almost forgot: I’m doing all this at 100mm/sec!!! I’ve never been able to print anything that fast and get good results (and, don’t forget, I still haven’t done the Input Shaping calibration yet).

Congratulations! I agree that Klipper is more difficult than getting Marlin ready, but it is a simple process once you have gone through it and keep notes. It would be great if board manufactures would build a Klipper image for you, since most of the work is getting the pins correct, then setting your printer specs. As you noted, changes are so easy, make them in a text file, save and restart. Let me know how the ADXL works, I printed the test stl before and after calibration and it was quite improved.

Well, just do not enable Wifi. The Pi Zero locks up randomly for a few seconds, when using Wifi. Thats the reason it is not supported by OctoPrint. The Pi Zero 2 is a better choice without the bottle necks and with more cpu power.

I used my PI 3 and 4s that I had when I was running Marlin / Octoprint. I recently got some cheap Pi cameras from Amazon - 4 for $15 and hooked them up so I can see what they are doing from my office which is on the second floor, the printers are in the basement, Not the best pictures, but good enough. These are with the overhead lights off.

I was not planning to use any Pi Zeros. In fact, I plan to remove cameras from all my RaspPi’s that are running printers and move them to a standalone Pi. That way, I can avoid any and all possible conflicts or hangups caused by cameras attached to production Pi’s.

Some photos of how Pressure Advance in Klipper can improve prints.

Look at the corners on this print, how rounded they are, almost like vertical elephant’s foot. Speed was 100mm/sec, layer height 0.3mm, corner speed 5mm/sec, acceleration 500mm/sec.

Another view of the corners.

No, this is not a botched print. It’s a special print that Klipper produces to calibrate Pressure Advance. It starts out at the bottom with a Pressure Advance value of 0, then increases it by .005 with each layer, all the way to the top. The idea is to measure the height above the base where the corners look the best. That distance is multiplied by .005 and the result is entered in the printer.cfg file. After a quick Klipper restart, the new value takes effect.

Now, I know I should’ve really printed the same model, but I couldn’t help myself: I decided to print the Voron project test cube. It’s pretty obvious how much sharper the corners are.

Another view of the Voron test cube.


I think the results speak for themselves. The cube was printed at 100mm/sec, layer height 0.12mm , corner speed 5mm/sec , acceleration 500mm/sec.

The next step is to carry out Input Shaper calibration, which will necessitate redoing the Pressure Advance calibration. After that, it will be time to see how much I can increase the print speed and acceleration and still get good prints. Stay tuned.

Discovering what Klipper can do is an interesting project. Another is building macros to do anything you want. The options are endless

1 thing I want to do is tweak the layout of Fluidd (which I like more than OctoPrint). I see in Nero 3DP’s videos that he has a couple of buttons at the top of the screen. One of them seems to bring printer.cfg in the editor, which would be convenient. I can think of a couple of others that would be handy.

The latest update changed the screen layout, my guess is that it is customizable, so far I just deal with it. I agree that for me it is better than Octoprint, since about the only addon I used was bed visualizer which is part of Fluidd. I may take a look at Mainsail - I heard some rumors that Fluidd may not be supported as well long term.

I haven’t looked at Mainsail. Since I just started with Klipper I made the decision to use what Nero 3DP likes best, at least for now.

He also has some Mainsail videos. MainsailOS installation Guide-Goodbye Octoprint! (works with fluidd too) - YouTube
From what I have seen they are very similar. I have Fluidd on all of mine, but try to stay informed as to what is happening.

There is no issue with the picams. The dedicated camera bus works very well and without any problems. Any non pi1 has multiple cores, so there shouldn´t be any problems with that. The PiZero1 has an hardware issue, where network scan blocks all interrupts, which is causing a system lockup. That´s why I warned about it. Other Pis with Wifi (3 and up as well as the PiZero2) have no issues in this department.

I’ve already had a Pi 3B+ lock up. I cannot explicitly prove it was the PiCam, but the Pi never had any lock ups before I connected the PiCam. Besides, it’s 1 less thing to worry about. And, I have a Pi4, so I can run several cameras on it. If it locks up, oh well, reboot it, no effect on any print jobs. Of course, it also means I can use whatever camera(s) I like.