Skip Navigation

Klipper vs Marlin

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

39 comments
  • 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.

    • 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.

      • 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.

    • Thank you for the explanation!

      • 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

  • Klipper is great... Once you get it working. Way better than Marlin, but good luck getting it to work.

    I swapped my motherboard for a BTT Manta + CB1 + EZ2209 drivers. Took about 7 months to get it to a state where my prints are regularly okay. Every 3D printing community I've come across is less than helpful, and all Klipper documentation is written like you're already at a pro level, as does pretty much every other guide out there. People will swear it's so easy, but you know what helped after 7 months of tinkering? Myself just throwing everything I have at my config in hopes of something working.

    What kind of printer do you have?

    • Klipper in a frequently used application like Voron? You'll have help for days. Klipper in an novel or bespoke application? It's going to be quite a a bit harder.

      • I have an Ender 6, which is a super common printer. Not on the same level as the 3.

        Voron isn't an application, though. It's a type of printer.

        Novel or bespoke printer? Not sure what you're talking about, but it's supposed to be universal firmware. There are plenty of guides out there and folks running Klipper on all sorts of printers, including mine. They just aren't well-written, or aren't written for beginners, or assume you're a pro that doesn't need anything explained.

        This is exactly what I'm talking about with the 3D printer community. I'll say one thing, and then someone will say something completely unrelated in response, like you just did.

        I ask, "Hey, can anyone with (insert my specs here) show me their Klipper config or Slicer profiles for reference?" and I get 100 responses asking me why I'm using the hardware I'm using, recommending me other hardware that they like, telling me to use a different slicer that they like better, telling me if I don't tell them my issue or show them pics of my prints they can't help me (I never asked for help with prints, just to look at someone's config with similar hardware), downvoting me for not already being a 3D printing pro, and just generally being unpleasant and literally answering anything but my question.

        I work in tech. I'm used to Googling answers, hitting up forums, digging through old posts, etc. It's about 50% of how I get my job done. There is something fundamentally wrong with the majority of the 3D printing community.

        Not bashing this community specifically, as it's too new to judge and so far people seem helpful and nice, but this is a problem I run into everywhere I turn to for assistance, like GitHub, Reddit, Printables, and various other manufacturer forums. The 3D printing community is pretty dogshit.

        Let's make this a much better community than literally everywhere else (which shouldn't be difficult at all). When you post your setup, post your full specs with your firmware config and slicer settings. Is there a way we can tag ourselves or add a profile/signature? Maybe we can even put links to our specs.

        So much of the 3D printing community seems to want to kill it by scaring off all newcomers. We can make this place the definitive stop for 3D printing knowledge, questions, and configs, but it's going to take the work of some mods and the entire community to get there.

        Share knowledge like the rest of the tech enthusiast world. Your Klipper config isn't some super secret proprietary code for your eyes only. You don't have to guard it like it's your virginity. This hobby is going to die outside of super corporate builds with zero after market parts or builds like the Bambu X1 if the 3D printing community as a whole doesn't learn how to share and not be a dick.

  • They are both good!

    I believe they both have pressure advance and resonance compensation. With klipper you get option for much better UI (Mainsail OS in my case) and you can change your config in a web browser.

    • Well I said much better UI, but its subjective.

      Also, I think you can use octoprint with klipper fw, but never tried that. Mainsail+klipper is my vote

39 comments