We are custom building a Cartesian 3D printer to be used in a production 3D printing environment, with the following requirements:

  • Intended Z resolution 0.13mm;
  • Dual extruders (primary + support material);
  • Four spools (two per material with y connector, perhaps add auto switch-over functionality later);
  • Camera;
  • Onboard 11" touchscreen for control & interaction, run by a Raspberry Pi 3;
  • Custom board based on ATMega2560 to control the printer;
  • Printer should gracefully handle conditions like "out of material", etc.

Question: How to select firmware?

Are there notable differences between the primary firmware options (Marlin/Repetier) for this setup? From the google code groups, I understand the Repetier has a much cleaner code base, and apparently gives smoother physical performance. Yet, from what I can gather, 95% of the community uses Marlin - is that correct?

Given that this printer will have the Pi3 to control "higher functions", is it worth considering a compact firmware like Teacup?

Edit 12/April/2017:

For others looking: After much review, Klipper was selected as the most forward firmware - all kinematic calculations are done on the host computer, instead of on the microprocessor, resulting is significantly faster/smoother stepper movement.

  • $\begingroup$ You say the printer is intended to be high end, so what do you mean by good speed/resolution? Do you have any particular figures/ranges in mind? $\endgroup$
    – Greenonline
    Nov 21, 2016 at 20:14
  • $\begingroup$ So you have a custom controller board...you know you will need to heavily modify the firmware to get it working right? Anyway, I voted to close because you didn't specify what you were looking for in the firmware. All of them easily hit your standard goals at this point. $\endgroup$
    – tjb1
    Nov 22, 2016 at 12:23
  • 2
    $\begingroup$ Besides that high-end printer and Atmega sound mutually exclusive to me, many if not all open-source firmware should work after proper configuration. The only exception is some rarely used printer mechanics, like SCARA $\endgroup$
    – Mikhail Z
    Nov 22, 2016 at 12:51
  • $\begingroup$ Thanks, I have modified Marlin and it is working on the custom board now. Just trying to understand if there is a significant difference between firmware options - aka is there a reason that a significant majority of people use Marlin over Repetier? $\endgroup$
    – Mtl Dev
    Nov 22, 2016 at 15:57
  • 1
    $\begingroup$ @MikhailZ FYI it eventuates that, if you use firmware that performs all the kinematic calculations on the host, then ATmega is more that sufficient: ~20% cpu usage @ 150mm/s. Physics quickly becomes the limiting factor, rather than the processor. $\endgroup$
    – Mtl Dev
    Apr 12, 2017 at 13:39

2 Answers 2


Your choice of firmware depends on a lot of factors, but to name a few important ones: features, your driver board (RAMPS vs Sanguinololu vs Gen..etc), and G-code support.

Smooth/quiet operation is dependent on the motors and the driver chip's micro-stepping capabilities. The way the firmware interfaces with the driver chip plays a very minor factor in that.

Check this page for a list of firmware, their capabilities and compatible electronics (driver board):


Would be useful to check G-code support of various firmwares also:


Also, as a note, a lot of the community uses Marlin, but for a lot of the commercial printers, the code has been modified slightly to fit their needs.

There is no perfect answer to this. Check the links and compare against your needs. Marlin is the safest bet since it has the most support, though you may need to modify or reconfigure it slightly for your custom board.


Given that this printer will have the Pi3 to control "higher functions", is it worth considering a compact firmware like Teacup?

A few days ago I came across klipper.

It seems to do exactly that functionality split you mention

  • $\begingroup$ Thanks for sharing, hadn't seen that, that is the kind of thing I am looking for. $\endgroup$
    – Mtl Dev
    Feb 9, 2017 at 21:44
  • 1
    $\begingroup$ Update: After significant review of Klipper, have found it to be excellent, first choice. The design (all calculations done on the host) is a significant step forward. $\endgroup$
    – Mtl Dev
    Apr 12, 2017 at 13:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .