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

3DPrinting

15801 readers
42 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: 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 2 years 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
[–] fhein 3 points 1 year ago (1 children)

gcode only contains high level instructions, e.g. "move 10mm on the X axis", which the firmware has to convert this to electrical pulses that can be sent to the stepper motors. If this is done naively the hardware wouldn't be able to follow the instructions due to inertia, filament viscosity, etc. Both firmwares have several methods to deal with this, but afaik Marlin does not have anything that does the same as Klipper's input shaper. Marlin has "linear advance" while Klipper has "pressure advance" which both try to solve the same problem but have different algorithms and you calibrate them differently. Using Klipper with calibrated input shaper will probably allow you to print faster than Marlin at an equivalent quality level.

Another difference is that all Klipper configuration goes into a text file, and you just restart Klipper to reload it. To change some settings i Marlin you have to re-compile the entire firmware and flash it.

Marlin's G29 command has different syntax depending on which ABL algorithm the firmware was compiled with, which IMO makes it more difficult to help other people who didn't compile their own firmware (i.e. who don't know which ABL algorithm their Marlin has).

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

Thank you for the explanation!

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

Found out just now that Marlin finally got input shaping: https://marlinfw.org/docs/gcode/M593.html

There's however a risk that you have to compile your own firmware if you want to enable it. Definitely not impossible if you know your way around computers, but editing Marlin configs can be quite daunting. Not that installing and configuring Klipper would be trivial for a computer illiterate person, but over all I've found it much easier to work with. I used Marlin for about a year, including compiling my own version of it, before switching.

For me the biggest disadvantage with Klipper is that I haven't got around to printing an enclosure for the RPi so it's just sitting on the desk next to the printer, and it's not compatible with the E3v2 display so I have to use Mainsail on my phone if I want to control the printer from the same room. I could of course buy a proper touch screen and run KlipperScreen, but they're a bit pricey.

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

There is an add-on that lets the E3v2 screen work with klipper. I have it working and while the feature set is a bit limited its enough to see the print status and start a new print (among other things). You just need to run 7 wires from the screen to the GPIO pins on the pi. I used a front panel cable from an old PC case to accomplish this. Check it out!

https://github.com/GalvanicGlaze/DWIN_T5UIC1_LCD/wiki

[–] fhein 1 points 1 year ago

Ah, nice! I started implementing the same thing a long time ago but got bored making all the UI screens after I had coded the basics :)

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

I've been looking into using an old Android phone as a display/control screen. The only thing holding me back is that my spare device (Note 4) doesn't have pass-through charging and won't run off a charging cable without the battery installed. This can be bypassed by attaching a couple wires to the pins where the battery connects but I've been too busy with other stuff to do it.

Might be an option for you if you have one laying around. Many newer phones can run without a battery just fine.

[–] nosnahc 1 points 1 year ago

I found a 40€ touchscreen