Marlin 3d printer board

Marlin/boards.h at master · Naesstrom/Marlin · GitHub

* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware []
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <>.
#ifndef BOARDS_H
#define BOARDS_H
#define BOARD_UNKNOWN -1
// RAMPS 1. 3 / 1.4 - ATmega1280, ATmega2560
#define BOARD_RAMPS_OLD 3 // MEGA/RAMPS up to 1.2
#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 (Power outputs: Hotend, Fan, Bed)
#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Bed)
#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 (Power outputs: Hotend, Fan0, Fan1)
#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Fan)
#define BOARD_RAMPS_13_SF 38 // RAMPS 1. 3 (Power outputs: Spindle, Controller Fan)
#define BOARD_RAMPS_14_EFB 43 // RAMPS 1.4 (Power outputs: Hotend, Fan, Bed)
#define BOARD_RAMPS_14_EEB 44 // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Bed)
#define BOARD_RAMPS_14_EFF 45 // RAMPS 1.4 (Power outputs: Hotend, Fan0, Fan1)
#define BOARD_RAMPS_14_EEF 46 // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Fan)
#define BOARD_RAMPS_14_SF 48 // RAMPS 1.4 (Power outputs: Spindle, Controller Fan)
#define BOARD_RAMPS_PLUS_EFB 143 // RAMPS Plus 3DYMY (Power outputs: Hotend, Fan, Bed)
#define BOARD_RAMPS_PLUS_EEB 144 // RAMPS Plus 3DYMY (Power outputs: Hotend0, Hotend1, Bed)
#define BOARD_RAMPS_PLUS_EFF 145 // RAMPS Plus 3DYMY (Power outputs: Hotend, Fan0, Fan1)
#define BOARD_RAMPS_PLUS_EEF 146 // RAMPS Plus 3DYMY (Power outputs: Hotend0, Hotend1, Fan)
#define BOARD_RAMPS_PLUS_SF 148 // RAMPS Plus 3DYMY (Power outputs: Spindle, Controller Fan)
// RAMPS Derivatives - ATmega1280, ATmega2560
#define BOARD_3DRAG 77 // 3Drag Controller
#define BOARD_K8200 78 // Velleman K8200 Controller (derived from 3Drag Controller)
#define BOARD_K8400 79 // Velleman K8400 Controller (derived from 3Drag Controller)
#define BOARD_BAM_DICE 401 // 2PrintBeta BAM&DICE with STK drivers
#define BOARD_BAM_DICE_DUE 402 // 2PrintBeta BAM&DICE Due with STK drivers
#define BOARD_MKS_BASE 40 // MKS BASE v1. 0
#define BOARD_MKS_BASE_15 405 // MKS v1.5 with Allegro A4982 stepper drivers
#define BOARD_MKS_BASE_HEROIC 41 // MKS BASE 1.0 with Heroic HR4982 stepper drivers
#define BOARD_MKS_GEN_13 47 // MKS GEN v1.3 or 1.4
#define BOARD_MKS_GEN_L 53 // MKS GEN L
#define BOARD_ZRIB_V20 504 // zrib V2.0 control board (Chinese knock off RAMPS replica)
#define BOARD_FELIX2 37 // Felix 2.0+ Electronics Board (RAMPS like)
#define BOARD_RIGIDBOARD 42 // Invent-A-Part RigidBoard
#define BOARD_RIGIDBOARD_V2 52 // Invent-A-Part RigidBoard V2
#define BOARD_SAINSMART_2IN1 49 // Sainsmart 2-in-1 board
#define BOARD_ULTIMAKER 7 // Ultimaker
#define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare)
#define BOARD_AZTEEG_X3 67 // Azteeg X3
#define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro
#define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20)
#define BOARD_RUMBA 80 // Rumba
#define BOARD_BQ_ZUM_MEGA_3D 503 // bq ZUM Mega 3D
#define BOARD_MAKEBOARD_MINI 431 // MakeBoard Mini v2.1.2 is a control board sold by MicroMake
#define BOARD_TRIGORILLA_13 343 // TriGorilla Anycubic version 1.3 based on RAMPS EFB
#define BOARD_TRIGORILLA_14 443 // TriGorilla Anycubic version 1. 4 based on RAMPS EFB
#define BOARD_RAMPS_ENDER_4 243 // Creality: Ender-4, CR-8
// Other ATmega1280, ATmega2560
#define BOARD_CNCONTROLS_11 111 // Cartesio CN Controls V11
#define BOARD_CNCONTROLS_12 112 // Cartesio CN Controls V12
#define BOARD_CHEAPTRONIC 2 // Cheaptronic v1.0
#define BOARD_CHEAPTRONIC_V2 21 // Cheaptronic v2. 0
#define BOARD_MIGHTYBOARD_REVE 200 // Makerbot Mightyboard Revision E
#define BOARD_MEGATRONICS 70 // Megatronics
#define BOARD_MEGATRONICS_2 701 // Megatronics v2.0
#define BOARD_MEGATRONICS_3 703 // Megatronics v3.0
#define BOARD_MEGATRONICS_31 704 // Megatronics v3.1
#define BOARD_RAMBO 301 // Rambo
#define BOARD_MINIRAMBO 302 // Mini-Rambo
#define BOARD_MINIRAMBO_10A 303 // Mini-Rambo 1.0a
#define BOARD_EINSY_RAMBO 304 // Einsy Rambo
#define BOARD_EINSY_RETRO 305 // Einsy Retro
#define BOARD_ELEFU_3 21 // Elefu Ra Board (v3)
#define BOARD_LEAPFROG 999 // Leapfrog
#define BOARD_MEGACONTROLLER 310 // Mega controller
#define BOARD_SCOOVO_X9H 321 // abee Scoovo X9H
#define BOARD_GT2560_REV_A 74 // Geeetech GT2560 Rev. A
#define BOARD_GT2560_REV_A_PLUS 75 // Geeetech GT2560 Rev. A+ (with auto level probe)
// ATmega1281, ATmega2561
#define BOARD_MINITRONICS 702 // Minitronics v1.0/1.1
#define BOARD_SILVER_GATE 25 // Silvergate v1.0
// Sanguinololu and Derivatives - ATmega644P, ATmega1284P
#define BOARD_SANGUINOLOLU_11 6 // Sanguinololu < 1. 2
#define BOARD_SANGUINOLOLU_12 62 // Sanguinololu 1.2 and above
#define BOARD_MELZI 63 // Melzi
#define BOARD_MELZI_MAKR3D 66 // Melzi with ATmega1284 (MaKr3d version)
#define BOARD_MELZI_CREALITY 89 // Melzi Creality3D board (for CR-10 etc)
#define BOARD_MELZI_MALYAN 92 // Melzi Malyan M150 board
#define BOARD_MELZI_TRONXY 505 // Tronxy X5S
#define BOARD_STB_11 64 // STB V1.1
#define BOARD_AZTEEG_X1 65 // Azteeg X1
#define BOARD_ANET_10 69 // Anet 1. 0 (Melzi clone)
// Other ATmega644P, ATmega644, ATmega1284P
#define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics
#define BOARD_GEN3_PLUS 9 // Gen3+
#define BOARD_GEN6 5 // Gen6
#define BOARD_GEN6_DELUXE 51 // Gen6 deluxe
#define BOARD_GEN7_CUSTOM 10 // Gen7 custom (Alfons3 Version) "https://github. com/Alfons3/Generation_7_Electronics"
#define BOARD_GEN7_12 11 // Gen7 v1.1, v1.2
#define BOARD_GEN7_13 12 // Gen7 v1.3
#define BOARD_GEN7_14 13 // Gen7 v1.4
#define BOARD_OMCA_A 90 // Alpha OMCA board
#define BOARD_OMCA 91 // Final OMCA board
#define BOARD_SETHI 20 // Sethi 3D_1
// Teensyduino - AT90USB1286, AT90USB1286P
#define BOARD_TEENSYLU 8 // Teensylu
#define BOARD_PRINTRBOARD 81 // Printrboard (AT90USB1286)
#define BOARD_PRINTRBOARD_REVF 811 // Printrboard Revision F (AT90USB1286)
#define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646)
#define BOARD_BRAINWAVE_PRO 85 // Brainwave Pro (AT90USB1286)
#define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286)
#define BOARD_TEENSY2 84 // Teensy++2. 0 (AT90USB1286) - CLI compile: HARDWARE_MOTHERBOARD=84 make
#define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board
#define MB(board) (defined(BOARD_##board) && MOTHERBOARD==BOARD_##board)
#endif // __BOARDS_H

The 6 Best 3D Printer Controller Boards in 2022 – Clever Creations

Our site is reader-supported. When you buy via the affiliate links on this site, we will receive a commission at no cost to you. All opinions remain our own. Learn more

From using Arduinos with CNC shields to now having a full-fledged WiFi-equipped circuit, 3D printer controller boards have come a long way. They’re the brains of any 3D printing setup and are responsible for controlling, coordinating, and executing all of a printer’s functions.

If you’ve bought a fully assembled 3D printer that you are happy with, it’s doubtful that you ever had to think about the controller board. But if you’re someone who wants to upgrade his 3D printer or build a DIY printer from scratch, you probably understand how important it is to select the best 3D printer controller board for your needs.

To help you with getting the best control board for your 3D printer, we’ve compiled a list of the six best motherboard options that you can buy right now.

3D Printer ControllerSummaryInputProcessorPriceBest Offer
Duet 2 WiFiBest overall11-25V32-bit$170


Duet 3 6HCBest high-end11-32V32-bit$255


BTT SKR Mini E3 V2.0Best on a budget12/24V32-bit$65


Creality 3D 4. 2.7Best for Ender 324V32-bit$50


BIGTREETECH OctopusMost stepper drivers4.75-36V32-bit$52


BIGTREETECH TFT35 V3.0Best LCD add-on5V32-bit$45


Best 3D Printer Motherboards in 2022

Duet 2 WiFi

Best overall

Check price at


The Duet 2 Wi-Fi features a 32-bit ARM-based processor specifically designed for industrial automation projects. As-is, the Duet 2 Wi-Fi can support up to five unique stepper motors. This, however, can be extended to support up to five extra stepper motors and extruders with the Duex 5 expansion board.

All stepper drivers used on the Duet 2 Wi-Fi are TMC2660s, which have a high current rating of 2.4A and are able to run the stepper motors quietly in up to 1/256 micro-stepping. The board runs on the well-documented and feature-rich RepRap firmware.

The great thing about the Duet 2 Wi-Fi is its compatibility with different Duet expansion boards and accessories. You can connect a PanelDue board to get a full-color graphic touch screen, temperature sensing daughterboards, the Duex 5 for additional steppers, servos, fans, and heaters. It even has the option to use a smart effector for delta 3D printers for bed leveling.

The many features and ability to use it with practically any 3D printer make the Duet 2 Wifi the overall best 3D printer controller board that you can get right now. It definitely costs more than your typical board, but you get what you pay for.

Standout Features
  • Wi-Fi connectivity
  • External stepper driver support
  • Quiet 1/256 microstepping
    • Technical Details
      Input voltage 11V - 25V
      Stepper drivers 5x TMC 2660
      Microstepping Up to 256
      Microprocessor ARM Cortex M4F, 32-bit
      Connections 2. 4GHz WiFi, USB serial port
      SD card slot Yes

      What We Like
      • Powerful
      • Many I/O ports
      • Built-in Wi-Fi
      Could Be Better
      • High price

      Find Duet 2 WiFi at


      Duet 3 6HC

      Best high-end

      Check price at


      The Duet 3 6HC is the latest release from Duet 3D. The 6HC in the name stands for 6 High Current stepper motors. The board uses a faster 300 MHz 32-bit ARM processor, allowing for high-speed calculations. The Duet 3 features six Trinamic 5160 stepper motor drivers rated at a 6.3 A peak current.

      Other than this, you get 10 PWM outputs for the heated beds, extruders, and fans. It has 9 I/O ports for end-stops, Z probes, filament sensors, and other peripherals. These allow you to decorate your 3D printer with many sensors, fans, and accessories and still have room left for more.

      The CAN-FD buses will let you connect other Duet boards, smart tools, and custom add-ons, thus ensuring upgradability. There’s a dedicated high-speed SPI bus to a single board computer (SBC) to let you connect SBCs like Raspberry Pi’s.

      The Duet 3 6HC is expensive and aimed at professionals that require a versatile high-end 3D printer controller. However, the RepRap community’s ample amount of documentation and support means that if you want one, you can easily configure it to work with any off-the-shelf 3D printer as well.

      Aside from being more than powerful enough to drive nearly any 3D printer, the Duet 3 is an equally attractive option for a home CNC machine or laser engraver.

      Standout Features
      • High-speed ARM processor
      • High current stepper drivers
      • Numerous i/o options
        • Technical Details
          Input voltage 11V to 32V
          Stepper drivers 6x TMC2160 or TMC5160
          Microstepping Up to 256
          Microprocessor ARM Cortex M7, 32-bit
          Connections Ethernet and USB Serial port
          SD card slot Yes

          What We Like
          • Wide stepper motor compatibility
          • Suitable for high-end 3D printers
          • Lots of expansion options
          Could Be Better
          • High price
          • Requires technical expertise

          Find Duet 3 6HC at


          BIGTREETECH SKR Mini E3 V2.


          Best on a budget

          Check price at


          The SKR Mini E3 V2.0 is the successor to the original E3, designed explicitly for the Ender 3 3D printers. With the SKR Mini E3 V2.0, Bigtreetech offers support for more Creality machines like the CR-10, CR-10S5, and Ender 3 3D printers.

          The V2.0 is a 32-bit 3D printer controller board that features ultra-silent, TMC 2209 stepper motor drivers and can handle 2A RMS current. It also comes with two Z-axis ports, so that you can drive dual Z-axis stepper motors.

          Aside from the excellent stepper drivers, the SKR Mini E3 V2.0 also comes with support for BLTouch and filament detection sensors. This gives you the option to install additional Ender 3 upgrades and Ender 5 upgrades that reduce the chance of failed 3D prints.

          The Mini E3 V2.0 supports the open-source Marlin firmware. It offers a variety of additional features like the power resume function, automatic shutdown, and onboard sensorless homing functions.

          If you’re on a budget and want to upgrade your Creality 3D printer, the SKR Mini E3 V2.0 is likely the best 3D printer controller for you.

          Standout Features
          • Parallel Z-axis interface
          • BLTouch and filament detection ports
          • Improved thermal performance
            • Technical Details
              Input voltage 12/24V
              Stepper drivers 4x TMC2209
              Microstepping 256
              Microprocessor ARM Cortex-M3, 32-bit
              Connections Mini-USB-B type
              SD card slot Yes

              What We Like
              • Low price
              • Easy to use
              • Silent stepper drivers
              Could Be Better
              • Limited upgradability

              Find BIGTREETECH SKR Mini E3 V2. 0 at


              Creality 3D 4.2.7

              Best for Ender 3

              Check price at


              The Ender 3 is still one of the best budget Creality 3D printers. But it has aged in terms of its features and capabilities. The latest version of the 3D printer controller board from Creality – 4.2.7 aims to bring the Ender 3 to the current 3D printing trends.

              The Creality 3D 4.2.7 controller board features a 32-bit ARM processor with increased flash storage that lets you run more firmware features faster, and with this supporting the latest Marlin 2.0 firmware. Creality calls this controller board the “silent mainboard” due to the TMC 2225 stepper motor drivers that keep your 3D printer’s motors silent.

              This 4.2.7 now comes with a pre-installed bootloader, which means that you can update the firmware by merely inserting the SD card with the firmware BIN file. It also has ports for the BLTouch auto leveling sensor and filament sensors that remove the need for any previously needed extenders.

              The Marlin 2.0 comes pre-installed with the board, and with a little bit of configuration, you can directly use it with your Ender 3. It is an excellent upgrade for the Ender 3 3D printers, considering that you get an officially supported board with the latest features.

              Standout Features
              • 32-bit processor
              • Pre-installed bootloader
              • Silent TMC 2225 stepper drivers
                • Technical Details
                  Input voltage 24V
                  Stepper drivers 4x TMC2225
                  Microstepping Up to 256
                  Microprocessor ARM Cortex-M3, 32-Bit
                  Connections Micro-USB port
                  SD card slot Yes

                  What We Like
                  • Easy to install and use
                  • Official company support
                  • Affordable
                  Could Be Better
                  • No UART control
                  • Poor quality control

                  Find Creality 3D 4. 2.7 at


                  BIGTREETECH Octopus

                  Most stepper drivers

                  Check price at


                  The BIGTREETECH Octopus controller board natively supports eight stepper motors. You can choose your stepper motor drivers and the mode in which you want to run them, and this makes the board a beast in terms of sheer stepper motor support.

                  This 3D printer controller board supports up to four hot-end heaters. Then there are six PWM controllable fan interfaces, six end-stop switches, and two inputs for filament detection sensors. You even get a CAN bus interface if you decide to upgrade further and a USB-A port that can interface with a Raspberry Pi using emulated serial over USB.

                  Another expansive feature of the Octopus board is the support for a dual Z-axis drive. This can come in handy if you’re building a large cartesian or even a Core XY-type 3D printer. There are many other features too, and the sheer number of connectivity options make it one of the best 3d printer controllers if you’re planning to build something like a Voron 3D printer that needs many stepper motors.

                  Standout Features
                  • Supports up to 8 stepper motors
                  • Interfaces with Raspberry Pi
                  • Marlin and Klipper firmware support
                    • Technical Details
                      Input voltage 4.75V - 36V
                      Stepper drivers 8 pluggable stepper driver support
                      Microstepping Up to 256
                      Microprocessor ARM Cortex-M4, 32-bit
                      Connections USB type C port
                      SD card slot Yes

                      What We Like
                      • Suitable for large 3D printers
                      • Lots of expansions ports
                      • USB-C interface for easy compatibility
                      Could Be Better
                      • Complex wiring
                      • Limited community support

                      Find BIGTREETECH Octopus at


                      BIGTREETECH TFT35 V3.


                      Best LCD add-on

                      Check price at


                      The BIGTREETECH TFT35 V3.0 is an LCD touch screen upgrade designed for the Ender 3 and CR-10 3D printers. The V3.0 stands out because of its dual nature. You can use it as a regular LCD screen with the knob or use the touch screen to navigate the menu quickly.

                      It gives you the best of both worlds without the hassles of either. Additionally, you get a port for an external Wi-Fi module, a full-sized SD card slot, and a USB 2.0 port, giving you plenty of options in terms of connectivity.

                      However, the touch screen is not plug-n-play, and you need to tweak some firmware settings to get it working with your 3D printer. Teaching Tech on YouTube has a comprehensive guide covering everything you need to get the TFT35 working.

                      The BIGTREETECH TFT35 V3.0 is not meant as a completely new overhaul for your 3D printer but rather is aimed to improve the functionality of interfacing with it. The touch screen combined with the knob is suitable for many users. And considering the price, it is a worthwhile upgrade to make.

                      Standout Features
                      • Dual-mode use
                      • Pre-installed bootloader
                      • Wi-Fi module and filament detection ports
                        • Technical Details
                          Input voltage 5V
                          Microprocessor ARM Cortex-M3 series 32-bit
                          Connections USB A port and external Wi-Fi module support
                          SD card slot Yes

                          What We Like
                          • Easy to use
                          • Compatible with many 3D printers
                          • Lots of configuration options
                          Could Be Better
                          • Firmware can be buggy
                          • Technical expertise required

                          Find BIGTREETECH TFT35 V3.0 at


                          Buyer’s Guide

                          Above we have listed some of the best 3D printer controller boards available. But what if you want to look for more boards? What exactly do you look for in a 3D printer motherboard, and how do you select one for yourself? Here are a few pointers that you need to keep in mind.

                          Firmware Compatibility

                          Firmware is the software on the 3D printer controller board that is responsible for all calculations and commands to the printer hardware. There are many different types available, for example, Repetier, Prusa, Klipper, and Smoothieware.

                          Each one is designed for a slightly different purpose, and you need to keep in mind your goals with the machine. For example, if you want a high-speed 3D printer, Klipper is the best choice for you. Marlin and RepRap are the go-to options if you want well-documented and widely used firmware.

                          You need to consider the choice of your firmware beforehand to select the best suitable controller board for yourself. Make sure there’s enough documentation and support available with your combo so that if you run into any issues, you can quickly sort it out.


                          3D printers either have an 8-bit controller board or a 32-bit board. An 8-bit board is cheap to manufacture and provides all the basic functionalities you would expect from a 3D printer. However, it comes with low onboard memory, and the lower number of bits means that it can process fewer calculations at a time, thus significantly affecting its speed.

                          32-bit motherboards operate at a higher clock speed, have a slightly greater onboard memory, and execute calculations at a much higher rate. They’re compatible with more I/O ports and communication interfaces, and all of these translate to a more feature-rich 3D printer motherboard.

                          If you want a basic 3D printer with limited functionalities, 8-bit boards are an option. They’ll save a bit of money, and you won’t have to pay for things you won’t use. However, if you want your 3D printer to be future-proof, have advanced functions, and print faster, a controller board with a 32-bit processor is vastly superior.

                          In our list with the best 3D printer controller boards above, we have only added 32-bit controllers. We believe that an 8-bit board is not worth buying and a 32-bit board is always the better option.

                          Communication methods

                          The most basic method of communication on a 3D printer motherboard is a USB port. A USB serial port allows you to control your 3D printer via a USB connection with a computer.

                          Wi-Fi and Ethernet ports are other methods of communicating with your 3D printer. An ethernet port would allow you to control your 3D printer over a local wired network.

                          Wi-Fi connectivity would allow you to control your printer wirelessly. One benefit of Wi-Fi is that you don’t even have to be present in the same room as your 3D printer, and you can control it remotely from anywhere.

                          Low-end controller boards don’t come with Wi-Fi and Ethernet ports; some might have pins for attaching external Wi-Fi modules, though. A USB serial port is enough if you want a basic 3D printer. If you want wireless 3D printing or operate many 3D printers simultaneously, you should consider getting a Wi-Fi-equipped controller board.


                          Aside from a USB port, there are many other connectors (or headers) on the controller board. These are used for a wide variety of purposes. Endstop connectors, hot end heaters, stepper motor connectors, bed leveling, and filament runout detection sensors are some of the few.

                          A well-specced-out controller board like the Duet 2 Wi-Fi or the Duet 3 6HC will have almost all of these connectors and then some more. Connectors allow you to interface various devices with your 3D printer, providing additional functionality.

                          The more connectors your controller board has, the more expensive it will be and take a lot of space. You need to know what features you want in your 3D printer and select the board with the particular connectors to get the maximum benefit.

                          Stepper Drivers

                          Stepper motor drivers affect the size of the stepper motors you can drive in your 3D printer and the sound levels you hear in the process. On most 3D printer controller boards, stepper drivers can’t easily be swapped out. Therefore, selecting the right kind of controller board with the right stepper driver is essential.

                          Basic stepper drivers like the A4988 are cheap, easily accessible, and provide a relatively good experience for basic 3D printers. They do drive stepper motors loud, are unreliable, and can only provide the steppers with limited current.

                          TMC drivers, on the other hand, are known for their silent operation and current-carrying capacities. The TMC 2xxx series are rated at 2A peak current, while the TMC 5160 typically offers 3A to 4.4A on 3D printer controller boards.

                          You need to consider the microstepping capabilities of the stepper motor drivers as well. Microstepping divides a full step into smaller steps. The smaller the step, the higher the resolution and the smoother the vibration. As a minimum, you want 1/16 step microstepping, but the best 3D printer controller options offer up to 1/256 step

                          Touch screen support

                          A touch screen enhances the functionality and ease of use of a 3D printer by making navigating the menu and dialing in the various features easier.

                          Not all controller boards have touch screen support built-in. While choosing a controller board, look at the connectivity options and the compatible touch screens. You need to make sure that the board’s firmware supports it, and there is at least a little bit of documentation on how to interface the controller with the touch screen.


                          What is a 3D printer controller board?

                          A 3D printer controller board is a piece of hardware that controls all electronic components in a 3D printer. It is responsible for motion, temperature control, and reading all commands from GCode files.

                          Why upgrade your printer’s stock controller board?

                          As time passes, the current features in your 3D printer start to seem obsolete. A controller board upgrade will give you access to many advanced features, allow for added functionalities and enhance your overall 3D printing experience.

                          Is a 3D printer controller board the same as a 3D printer motherboard?

                          Yes, in the context of 3D printing, the terms ‘controller board’ and ‘motherboard’ are used interchangeably. They mean exactly the same thing.


                          The best 3D printer controller boards are the ones you’re able to afford and will work with your 3D printer. With so many options on the market, it can be tough to choose just one. The important thing is figuring out which one of these top-rated controllers would be right for you.

                          In our opinion, the Duet 2 Wi-Fi is the overall best 3D printer controller board that you can get right now. Despite its high price, the Duet 2 Wi-Fi ticks all the boxes in terms of features, connectivity, upgrades, and ports. It is designed to be a universal solution for all types of 3D printers and can serve as an effective replacement for practically any board.

                          Let us know what you think about it, and if you have anything else to add, feel free to comment below.

                          Scroll to Top

                          Board for a 3D printer: choosing a control motherboard

                          When buying or assembling a 3D printer with your own hands, special attention should be paid to the device's motherboard. Since this component is responsible for printing products in general. Consider what functions the motherboard performs, what types of this component exist, and what parameters you need to pay attention to when choosing it.

                          3D printer motherboard

                          The controller motherboard is the main control element for the extruder, motor, sensor and heated filament bed in any 3D printer.

                          Motherboard is executing user-specified commands. After the internal set of microchip elements converts electrical impulses into mechanical movements of stepper motors. As a result, a three-dimensional computer model will be printed layer by layer on the working surface of a 3D printer.

                          Choosing a control board

                          Among the most popular motherboards for 3D printers, there are five models:

                          1. Arduino Mega 2560 + Ramps 1.4.
                          2. Melzi.
                          3. Lerdge X.
                          4. Duet.
                          5. Rumba.

                          Let's take a closer look at the features, pros and cons of each board.

                          Arduino Mega 2560 + Ramps 1.4

                          Board with Ramps 1.4 component operates from 5 V. It is equipped with five slots for installing stepper motors. At the same time, three slots allow the motors to control the axes of the printer, and the other two to drive the extruders. In addition, the board contains many additional pins for controlling various elements, such as a table auto-level sensor, axle limit switches, servos, etc.

                          To control all the printer's built-in electronics, the board contains contact pads into which the Ramps shield component is inserted.

                          The three main advantages of the board are:

                          • low price;
                          • a wide range of interchangeable components that can be replaced in the event of a breakdown;
                          • additional pins for controlling various printer components.

                          The board has only one significant drawback - its bulky design.


                          The Melzi motherboard is equipped with four stepper motor controllers, three of which are located on the XYZ axis and one on the extruder. This model is sold already with customized firmware. Therefore, the user only needs to correctly connect the wires to the output connectors.

                          You can print 3D objects using a memory card via a micro-USB connector or by connecting the card directly to a computer.

                          The Melzi board is ideal for the beginner building a printer for the first time. Since it does not require additional calibrations and can be used immediately after purchase. However, the motherboard also has significant drawbacks:

                          • no display can be connected to the board;
                          • You can reflash the motherboard only through the ISP port, but this will take a lot of time and a layer of special knowledge;
                          • If the motor controller fails, it cannot be replaced.

                          Lerdge X

                          Lerdge X is a motherboard with a 32-bit STM32F407 chip that allows you to quickly read lines of code. The device is additionally equipped with four drivers and a color display with touch control. The board supports only one extruder and it is not possible to install a second one if necessary.

                          Before using the board, you need to calibrate it, set the dimensions of the working area, adjust the temperature sensors of the extruder and table, and set the speed parameters of each motor.

                          You can print files using a flash drive, memory card or via a computer.

                          Pros of using the Lerdge X board:

                          • motherboard fits any type of printer;
                          • board chip supports various kinds of popular slicers;
                          • built-in display with touch screen.

                          The disadvantage of using the board is that only one extruder can be used.


                          The Duet board is equipped with its own open source firmware, which is available for free to any user on The 32-bit Atmel SAM3X8E chip is responsible for the stable operation of the motherboard.

                          Built-in device drivers allow four extruders to print simultaneously. For more convenient control, the user can install a touch screen with a diagonal of 4.3, 5 and 7 inches.

                          Pluses of the board:

                          • free firmware;
                          • four extruders available at the same time;
                          • two board configurations to choose from (Ethernet or Wi-Fi).

                          Duet motherboard cons:

                          • Before installing the board, it requires full configuration and firmware.


                          The Rumba 8-bit motherboard allows the 3D printer to use three extruders at the same time. However, installing them separately will not work, but you can only install a Diamond Hotend multi-extruder with support for three filaments.

                          This type of board is based on the Arduino processor. It comes with Marlin firmware installed. If the user needs to reflash the board, then for this you can use the standard mini-USB connector.

                          Among the advantages of Rumba are:

                          • the presence of connectors for connecting a display and a slot for a memory card;
                          • removable motor drivers that can be easily replaced if broken;
                          • simple flashing if necessary.

                          The main disadvantage of the motherboard is that for printing with multiple filaments, you will need to purchase an additional multi-extruder.

                          What to look for when choosing a 3D printer board?

                          When choosing a motherboard for installation in a 3D printer, the user is advised to pay attention to six device parameters:

                          1. The number of supported extruders. Ideally, there should be four or more. In this case, full color printing will be available.
                          2. Integrated or plug-in drivers. It is desirable that the drivers in the board are removable. Since in the event of a breakdown, they can be easily removed and repaired or replaced in the event of a complete malfunction.
                          3. Number of engines. It is recommended that the board has at least four motors, ideally six.
                          4. Wi-Fi available. The built-in module will allow you not to constantly connect the printer to the computer each time you print.
                          5. Firmware support. It is desirable that the board supports various types of firmware. Both paid and free.
                            Help. Each specific type of board can support one or more types of firmware. Their number depends on the board manufacturer. For example, Arduino boards support Marlin, Marlin Kimbra, Marlin RichCattell, Repetier-Firmware, Teacup, Aprinter, Sprinter firmware. Arduino Due motherboards can work with Marlin4Due, Marlin Kimbra v4.2.x, Repetier-Firmware, RepRap Firmware. And 32-bit ARM processors are compatible with Smoothie Project and Redeem firmware.
                          6. The presence of protection against incorrect inclusion of elements.

                          In this article, we have listed only the most popular motherboards for 3D printers. However, on the electronics market there are boards for any user requests, the choice of which can be guided by the recommendations presented above.

                          • March 29, 2021
                          • 4079

                          Get expert advice

                          Answers to marlin questions

                          Questions about the firmware for the 3D printer Marlin.

                          Marlin is an open source firmware for the RepRap family of replicating rapid prototypes commonly known as “3D printers” and CNC, both Cartesian and other geometries. It was derived from Sprinter and grbl and became a separate open source project on August 12, 2011 with a release on Github. More information here.

                          Use this tag for configuration, feature, or Marlin-specific questions.

                          • Ender 5 SKR Mini E3-After heating, the hot end of the assembly cuts into the side of the printer So I got the SKR mini E3 for my Ender 5 after hearing all the positive feedback. When it arrives I plug everything in to make sure it's safe and check the axle. .. they all worked...
                          • Artillery Hornet Z offset adjustment (Marlin After leveling the table corners and manually leveling the table grid (both options in the menu LCD) I adjust the z-pitch at print time to get the perfect first layer. Ideally I would…
                          • Firmware CR Touch NO Z axis home Ender 5 Pro 4.2.7 I bought a new board 4.2.7 (256k) for my Ender 5 Pro and added CR Touch. I connected everything and flashed the board with the firmware "Ender-5 Pro-Marlin2.0.1 - V1.1.1 - ALT - TMC2235.bin" firmware from the creality website ...
                          • Is the new Ender 3 E-step behind by 367? I usually see the Ender 3 set to 93 for E-steps, which is still too low and needs to be adjusted to around 99 steps/mm, but a brand new Ender 3 (base model) with firmware was…
                          • Z offset in Marlin has not been working recently Is my printer ignoring the "Z offset" setting in Cura and "Bed Z" stored in the printer's LCD settings? It used to work before, but after updating my printer's firmware, it doesn't work. Even...
                          • How to reduce the sensitivity to the temperature of the thermal layer? Sometimes I use a homemade 3D printer with Marlin firmware and I find it difficult to set the temperature on the heat bed. when I set it to 70°C for PLA, after a few minutes it goes down to…
                          • MKS Gen L v1.0 smokes when I heat up the platen When I boot Flsun Cube F5 with MKS Gen L v1.0 controller board, it boots up fine; it beeps and all LEDs light up. When I heat up the hotend it works fine...
                          • Why doesn't ZAxis move when I use autohome when using BTT as a probe and image SKR e3V3? I have a printer with BLTouch v3.1 and BTT SKR mini E3 V3 and I can't get the BLTouch to work as a probe when reset. I tried both images provided...
                          • Prevent position reset to 0.0.0 when serial goes down My Arduino Mega hardware with RAMPS 1.6 with Marlin 1.0.2 and external power to prevent my board from losing memory when I reconnect USB and serial…
                          • Program Creality v2. 2 board to use HEATER1 transistor for HEATER0 My CR10-S5 with Creality v2.2 motherboard recently suffered a hotend heater transistor (MOSFET) short circuit. Looking at the board, I tried to get smart and instead…
                          • Is it possible to cancel a G26 that has already been started? I spend hours trying to get a table grid that will give me a reliable first layer. I have reliable CHEP concentric square pattern printing, but real objects still don't work, and…
                          • Heating error: E1 after upgrading to motherboard 4.2.7 - Ender 3 Pro I upgraded my Ender 3 Pro from stock 8- bit motherboard to a new 32-bit motherboard 4.2.7. There were no problems with the swap, flashing a new firmware or calibration ...
                          • G28 does not hom to table center I have a heavily modified CR-10s Pro and am compiling my firmware. I have my own x-ray cart with a modified probe to the right of the nozzle. The size of the table is 300x300. Oddly enough, when. ..
                          • Sensor can't read temperature I have a recently purchased MKS TinyBee board. The temperature sensor reads either "Error" or "0". I've tried every possible sensor in the Marlin table configuration but still nothing...
                          • Ender 5 Plus manual screen temperature adjustment I want my Ender 5 plus to print at 300°C. So I edited the firmware and increased the HEAT_0_MAXTEMP temperature to 315°C. In my slicer I can slice and…
                          • Ender 3 Marlin - Wrong Temperature I upgraded to Marlin 2.0.7 when I set up the BLTouch and now the temperature doesn't seem to match the display. Prior to the update, I was printing with PLA filament at 205°C and the bed at…
                          • Marlin 2.1 reboots before printing model when power recovery is enabled on Ender 3 Pro with Creality 4.2.7 board. Just flashed Marlin 2.1. Enabled POWER_LOSS_RECOVERY Issue: Printer successfully auto-levels and clean/prepare line on left. ..
                          • Marlin Firmware: Move without auto-align mounting plate I'm working on a filament unload script. My current issue is that the script always does an automatic table leveling. I have two scripts to test this...
                          • Probing Layer Feed Speed ​​ I watched my friend's Prusa run the table probing routine and realized how pathetically slow mine was and took forever. I want to speed up the process. What are the parameters in...
                          • Marlin 2.0.x bug fix: how to define a specific driver to be used to control a specific stepper motor? I'm using a TriGorilla 2560 and Marlin bugfix 2.0.x and two stepper motors that I use as two Z axes For some reason, both the Z port and the E1 port are controlled by the same...
                          • Retraction is great but recovery sometimes just doesn't happen I'm having trouble rebutting. My printer prints very well normally, but has an intermittent retraction problem: the retraction itself always happens, but sometimes the subsequent recovery…
                          • Ender 3 V2 blank screen and LCD continuous beep with clicks I just can't decide. I usually don't ask questions until my problem becomes unsolvable. Unfortunately, like this Printer : Creality…
                          • Tronxy X5SA does not work properly after installing Marlin firmware Yesterday I installed Marlin firmware, bug fix version 2.0.x on my Tronxy X5SA (v6). I did it as described on GitHub using Visual Studio Code, Platform IO, Marlin auto build...
                          • Setting up Marlin 2.x with Ender 3 4.2.2 and BLTouch I recently bought an Ender 3 with a Creality board 4.2.2. I then bought a BLTouch to upgrade with table leveling. Turns out the BLTouch now comes with a standard 5-pin connector...
                          • What could have caused these small waves on the print? The test part model is perfectly smooth and is exported/sliced ​​in very high resolution, but there are small waves on both axes. These waves are not visible in the simulation. Converting to arcs using...
                          • BLTouch does not cover the entire desktop area My problem is that the BLTouch does not explore the entire table, in which the probe starts from the left edge and stops in the middle of the table. I am using Marlin 2 software and this is the code in…
                          • How to change the time format on the LCD screen in Marlin 2.1? How do I replace a line in the time display with a dot? Using Marlin 2.1
                          • Ender 3 Pro heat leakage problem even after replacing thermistor and heater cartridge I have an Ender 3 Pro with BTT SKR E3 V2.0 mini running Marlin firmware. I'm trying to print PETG, which requires decently high temperatures. I first replaced the spare board after...
                          • BLTouch wiring and pin assignment I am in the process of installing BLTouch on a Velleman Vertex K8400. There is no dedicated servo on the board, so I will assign one. No problem. The board only has a Z-min pin, so as far as I'm concerned...
                          • Stepper motor only moves one way after reset I'm going through this post saving a problem with my printer. It uses an Arduino 2560 Mega, RAMPS 1.4 and Marlin 1.1.9, which configured it like this: on the RAMPS, the Y-axis is connected to pins. ..
                          • Controller fan connection on RAMPS 1.4 for Marlin I have a centrifugal fan with a 2-pin connector and I have always connected it to the GND/5V pins (labeled J5 at the bottom left on my controller board pinout image). I came across…
                          • 3 Extruders on SKR V1.1, how to set up 2 in 1 out (Y piece) and 1 single extruder in latest Marlin? On Anet A8 with SKR V1.1 32bit board, I intend to use 3 extruders on my Anet A8, 1+2 through Y-part on one nozzle, 3rd extruder with 2nd nozzle. One more step is needed for…
                          • Bulge at distinctive length along the x-axis (on all layers) I am having huge print quality problems with my Anycubic Vyper. As you can see in the first, third, and fourth images, there is some sort of bulge or offset going on. Problem is…
                          • Nozzle jumps off table when using Marlin Mesh Desk Leveling I am using Marlin firmware with RAMPS board on an Anet A8 printer. The desktop size for the printer is 220 x 220 mm and this is specified in the configuration file. h . When using alignment…
                          • Print ends 3 or 4 layers after updating stock FW to Marlin Finally updated my old Marlin firmware to Marlin (current latest version). I am using Cura 5.0 as my slicer. Printer - Folgertech Prusa i3, acrylic. It worked fine...
                          • 3DTouch sensor fails after probe deployed and launched I'm using a 3DTouch sensor (by Geeetech) on a standalone CoreXY printer (HyperCube Evolution). The sensor worked perfectly until it was used for a month. The symptoms are…
                          • Ender 3 S1 Pro, can't restart printing after pausing at height My printer (Ender 3 S1 Pro) only has a touch screen. When I use the pause at height command, printing pauses properly. However, only "buttons" are shown on the screen...
                          • HBOT 3D 1.1 Pause Enabled I have an HBOT 3D 1.1 printer at work and I need to be able to pause printing. I tried all the usual G-code commands ( M0 , M1 , M25 , M226 , M600 ) but they don't work.
                          • Ender 3 v2 X-axis home problem I have a problem. I upgraded my Ender 3 v2 to direct drive and added CR Touch. Updated bug fixing software -JyersUI v2.0.1. Now if I turn on my printer,…
                          • UBL Marlin settings to cover the whole table This question is related to: How to set Z-probe bounds in firmware when using automatic table leveling? I'm trying to figure out how to install UBL in Marlin to cover as much as possible...0179
                          • Nozzle reduces flow as it approaches the finish layer I have noticed that when the printer finishes a layer, the flow of plastic through the nozzle begins to fade as it approaches the layer change point. As an example, let's say I'm printing the first layer of a cube...
                          • Endstops won't work when using Marlin firmware I have an old Solidoodle 2 that I bought broken at a garage sale and which I'm converting to use RAMPS 1.4 with Marlin firmware . All engines are working properly, I have . ..
                          • PID autotune fails when Ender 3 temperature is too high Working on upgrading Ender 3 to dual extruder setup using Winsinn dual hot end and MKS Base V1.6 motherboard using Marlin FW 2.0.5 and cannot get…
                          • Why does the power supply turn on and off automatically? I have a 12V/30A power supply. I also installed the firmware on the Arduino Mega2560. But the problem is that the display on the LCD keeps turning on and off automatically (it's stuck on the logo...
                          • How to add menu options to LCD menu (Marlin firmware)? Where is the correct Marlin firmware file and where is the place to add the code that I want to store in my printer's LCD menu and then execute the function I write when pressed...
                          • Remove unwanted menu from Marlin 2.0 Velleman ribbons. Stripes can't adjust brightness by color alone, so the "Custom Lights" menu item is irrelevant to mine...0179
                          • Error: Printer halted. kill() called! When printing cube.

                            Learn more