this post was submitted on 02 Aug 2023
42 points (95.7% liked)

3DPrinting

15637 readers
225 users here now

3DPrinting is a place where makers of all skill levels and walks of life can learn about and discuss 3D printing and development of 3D printed parts and devices.

The r/functionalprint community is now located at: [email protected] or [email protected]

There are CAD communities available at: [email protected] or [email protected]

Rules

If you need an easy way to host pictures, https://catbox.moe may be an option. Be ethical about what you post and donate if you are able or use this a lot. It is just an individual hosting content, not a company. The image embedding syntax for Lemmy is ![](URL)

Moderation policy: Light, mostly invisible

founded 1 year ago
MODERATORS
42
Klipper vs Marlin (self.3dprinting)
submitted 1 year ago* (last edited 1 year ago) by nosnahc to c/3dprinting
 

I actually have Marlin + Octoprint but found out recently that Klipper exist. I read everywhere that Klipper is better but I don't really get why. I understand that Klipper use raspberry as powerfull calculator instead of the STM32 of the printer, but octoprint is used to send Gcode to Marlin too... So what's the really difference please?

Edit : I don't understand how Klipper or Marlin can give better results when gcode and instructions are generated by Cura

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 6 points 1 year ago (2 children)

So both Klipper and Marlin+Octoprint use a Pi and an arduino (in simplified versions, the SBC and the MCU can be any boards but I’ll use those brand names to make it easy).

Marlin uses the Pi to display the web interface, then sends the gcode to the arduino. Then the arduino does the math to convert the gcode to motor commands. Gcode.

Klipper uses the pi to display the web interface, but it also takes the gcode and converts it to motor commands in the pi and only sends those simplified motor commands to the arduino.

So with Klipper the arduino doesn’t need to convert gcode which is a pretty intense computation. Also, gcode is actually pretty heavy to send vu serial over usb in Marlin and often the printer can print faster than the gcode can be sent. Which results in hang ups in the print, the printer pauses, especially in a print with a lot of curves and printing fast. Klipper can use the full power of the pi to make intricate motor commands, fine tuning acceleration and all to avoid vibrations (input shaper, it even uses an accelerometer sensor to refuse vibrations making cleaner prints and quieter printing)

Other benefits of Klipper, settings don’t need to be flashed to the arduino, they are saved in a text file on the pi. Changing Config is a simple text edit, then reboot to apply the changes. You can edit the settings right in the web interface.

One of the down sides of Klipper was that you had more functions in Octoprint with plugins, that’s not true anymore. You have many plugins compatible with Klipper with Timelapse exclude area, remote access, Obico (the spaghetti detective), and so on.

The web interface is much lighter and responsive than the bulky Octoprint. Octoprint was an afterthought while Mainsail was purpose designed for Klipper.

I used to run Marlin and Octo and hated the experience. Since I tried Klipper I can’t go back.

[–] [email protected] 3 points 1 year ago (1 children)

One slight correction, nothing is stopping you from using Klipper with Octoprint. You just need to install the Octoklipper plug-in to Octoprint. Most people who run Klipper choose to use Mainsail or Fluidd, but it's not required.

[–] [email protected] 3 points 1 year ago

You can but it doesn’t mean you should. The way Octoprint manages interacting with the printer is it spoon feeds g-code lines one by one. So it can stop sending them to pause a print, change the values to change Z height for instance etc… however, Klipper is usually able to print faster than Octoprint an send gcode via serial. The crutch is to use VirtualSD mode in Klipper but then Octoprint has very limited interaction with the gcode other than start stop, no gcode modification possible. Enters Moonraker. Moonraker is an API that allows to interface with Klipper in a standardized way to send complex commands to the printer. Mainsail UI is using it, so is Fluidd, KlipperScreen, Telegram bot etc…. The benefit is that Moonraker commands Klipper to do the changes natively instead of adding a layer to the chain. So yeah you can use it, but there is no real incentive to do so now that Moonraker is here. 5 years ago Octoprint was the only way to control Klipper and it was just painful, but we had no alternative.

[–] nosnahc 3 points 1 year ago (1 children)

Thank you for the explanation!

[–] [email protected] 2 points 1 year ago (2 children)

You’re welcome. There is a lot more than that even. When you start digging through, Klipper allows you so much control. You can even have your printer run shell commands (deactivated by default because it so powerful, it can be dangerous if you don’t know what you’re doing)

You can control RGB LEDs and more. You can also connect many arduino isntesad of just one

[–] p1mrx 7 points 1 year ago (2 children)

You can even have your printer run shell commands

I briefly considered using Klipper to make a clock that prints 1 layer per minute, but gave up after realizing it'd be unreadable after the first hour:

[–] [email protected] 2 points 1 year ago

You could use multi material with color change on the hour. You don’t even need to flush the nozzle you could have the color gradually change throughout the layer, or print a handful of perimeters only between each hour.
You could have the first sector to be filled with a hole in the shape of the hour number. Then on the hour change print a couple of top layers covering the hole and print the next layer with the next number as a hole. It’s a really cool idea, as long as you don’t use a heated bed and manage your nozzle heating properly to keep your electric bill manageable. Also you definitely want low print speed and some TMC drivers hehe.

[–] [email protected] 1 points 1 year ago

Well if your clock business doesn't take off you could always consider the wagon wheel or bicycle business!

[–] nosnahc 2 points 1 year ago (2 children)

First of all, I need to fond out how to control my tasmota switch to turn on/off my printer and my led...

[–] [email protected] 2 points 1 year ago (1 children)

Are you running Home Assistant? Klipper/Mainsail has an integration for HA that will allow you to control your printer with it. You could use HA to control your Tasmota devices too.

[–] nosnahc 1 points 1 year ago (1 children)

No I'm not, but i'll found a way

[–] nosnahc 2 points 1 year ago

Looks like what I'm looking for Try it tonight

[–] Rootiest 1 points 1 year ago* (last edited 1 year ago) (1 children)

Tasmota is natively supported by moonraker

# moonraker.conf

[power Printer]
type: tasmota
address: 192.168.1.124
password: mypassword
[–] nosnahc 1 points 1 year ago

Yes! I get it working this weekend, thanks!