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

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

<p>Question: How to select firmware? </p>

<p>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?</p>

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

<p>Edit 12/April/2017:</p>

<p>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.</p>

[{'answer_id': 3080, 'author': 'Hong', 'author_id': 4987, 'author_profile': 'https://3dprinting.stackexchange.com/users/4987', 'pm_score': 4, 'selected': True, 'text': '<p>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.</p>\n\n<p>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.</p>\n\n<p>Check this page for a list of firmware, their capabilities and compatible electronics (driver board):</p>\n\n<p><a href="http://www.reprap.org/wiki/List_of_Firmware" rel="nofollow noreferrer">http://www.reprap.org/wiki/List_of_Firmware</a></p>\n\n<p>Would be useful to check G-code support of various firmwares also:</p>\n\n<p><a href="http://reprap.org/wiki/G-code" rel="nofollow noreferrer">http://reprap.org/wiki/G-code</a></p>\n\n<p>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. </p>\n\n<p>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.</p>\n'}, {'answer_id': 3556, 'author': 'mogul', 'author_id': 5970, 'author_profile': 'https://3dprinting.stackexchange.com/users/5970', 'pm_score': 3, 'selected': False, 'text': '<blockquote>\n  <p>Given that this printer will have the Pi3 to control "higher functions", is it worth considering a compact firmware like Teacup?</p>\n</blockquote>\n\n<p>A few days ago I came across <a href="https://github.com/KevinOConnor/klipper" rel="noreferrer">klipper</a>.</p>\n\n<p>It seems to do exactly that functionality split you mention</p>\n'}]
['https://3dprinting.stackexchange.com/questions/3073', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/4965/']