Firmware Choice: Marlin vs Repetier vs Other
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);
- 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?
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.
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?
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.
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
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?
@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.
This can be a solution, but haven't you checked boards based on processors like STM32? In most cases they have enough capacity to handle all calculations even for more complex devices, like deltas. In any case, for production printer you may want to stretch your speed goal far beyond 150mm/s.
Just FYI 150mm/s @ 20% cpu, Klipper can run well over 400mm/s without maxing cpu. Appreciate the faster boards, though it just seems (to me) a much cleaner design (& faster) to pre-calculate on a host (RPi is order of magnitutude+ faster than STM32), & keep only real-time operations on the real-time hardware.
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.