From RepRapWiki
Jump to: navigation, search

Crystal Clear action run.png

Release status: working

MaKrMelzi full set-1024.jpg
Description Release Version 1.1
License GPL 2.0
Author tenbaht
Based-on Melzi
Categories Electronics, Development, Mendel Development
CAD Models
External Link



The board is an out-of-the-box electronics solution for all current reprap-type 3D printer designs with one extruder. Support for up to 4 stepper motor drivers, 2 heaters, 1 fan and 3 endstops, a microSD-card reader on board and a highly modifiable and extendable design: The Melzi controller board is a fully Sanginolu compatible all-in-one solution for controlling 3D printers with one extruder head or light CNC machines with up to four axes like ShapeOko or the OrdBot.

This it is an all-in-one solution, ready for use and with no need for any soldering or crimping. The already well-designed original Melzi board is improved by adding some of the best features of other common electronics like the Gen7 and RAMPS. The motordrivers are exchangeable now, in case an experiment went wrong. Furthermore the design was optimised from the ground up for low manufacturing costs.

The point of RepRap is to make itself, of course. But sometimes people just want plug-and-play RepRap electronics so they can concentrate on the other aspects of the machine, or just because they are more software or mechanics oriented than electronics oriented.

It is based on RepRap's version of the Melzi Board which in turn is based on the Arduino Leonardo (Francesco Melzi was Leonardo's pupil). And from there on you can trace the inheritance down to Sanguino.


This board is available for pre-order for 79€ with this Ulule-campaign


MaKrMelzi full set-1024.jpg

This version is fully software compatible with RepRap's Melzi version, but the hardware features some significant improvements.

  • 128kB flash memory instead of the commonly used 64kB (essential for using a graphical LCD panel)
  • Screw terminals for all electrical connections – no crimping or soldering required
  • exchangeable motor driver modules, Pololu-compatible
  • Additional solder pads to allow addition of 2.54mm Molex connectors
  • Full support for dual Z-axis designs like the Prusa Mendel – pads for two parallel connectors for the Z-Axis
  • Power outputs suitable for inductive load, can be used as direct spindle and pump drives for CNC applications
  • Nearly lossless reverse power protection, no heatsink required
  • No heatsinks required for the power outputs, even at full load
  • USB-UART converter based on Microchip MCP2200 – offers up to 8 software controllable GPIO pins
  • Modification- and extension-friendly PCB design despite being based on SMT technology – all relevant internal signals are accessible at solder pads with standard 2.54mm pitch
  • Extensive documentation on the silkscreen – all connectors, jumper and pads are clearly marked (see product images above)
  • Switched DC/DC converter for 5V generation - no need to change voltage range resistors when using input voltages other than 12V
  • Improved EMC protection for the microSD slot and the USB connection
  • Designed from the ground up with the requirements of mass production in mind, resulting in a lower sales price
  • Board dimension 220 x 58 mm²


This Version of Melzi was developed from Joe Mosfet's original by MaKr3d. Design files can be found at:

Software support

Support for this board in already included in current versions of the Marlin Firmware (in Marlin/Configuration.h: #define MOTHERBOARD 65). The pin assignment using the Arduino pin numbers is:

#define X_STEP_PIN         15
#define X_DIR_PIN          21
#define X_STOP_PIN         18

#define Y_STEP_PIN         22
#define Y_DIR_PIN          23
#define Y_STOP_PIN         19

#define Z_STEP_PIN         3
#define Z_DIR_PIN          2
#define Z_STOP_PIN         20

#define E0_STEP_PIN         1
#define E0_DIR_PIN          0

#define LED_PIN            27

#define FAN_PIN            4

#define HEATER_0_PIN       13 // (extruder)
#define HEATER_BED_PIN     12 // (bed)
#define X_ENABLE_PIN       14
#define Y_ENABLE_PIN       14
#define Z_ENABLE_PIN       26
#define E0_ENABLE_PIN      14

#define TEMP_0_PIN          7   // analog pin number
#define TEMP_BED_PIN        6   // analog pin number
#define SDSS               31

Unfortunately, there is no official numbering scheme for the pins of the ATmega1284P CPU. Currently, are two different numbering schemes in use. They differ in the way, the port signals PA0..PA7 are counted. One is counting up from Digital24..Digital31 for PA0..PA7 and another one counts the pins strictly in the order of the CPU pinout and Digital24..Digital31 corresponds to PA7..PA0.

More on using the Arduino environment with this board:

Full feature list

Here is a more extensive list of all features together with some comments about the advantages or about facts to consider when modifying the standard setup.


This board is built around an ATmega1284P MCU instead of the ATmega644P. Since current versions of the popular Marlin firmware already need about 60kB of memory it’s likely that future versions with added features will soon outgrow the current generation of ATmega644-based board designs. Even with the current versions, more than 64kB is already required to take full advantage of the possibilities of graphical displays.


  • Screw terminals for all external connections, no need for and soldering or crimping.
  • Additional solder pads to allow for addition of 2.54mm Molex connectors
  • Solder pads for two additional fan connectors (connected to Vmot and GND)
  • Full support for dual Z-axis designs like the Prusa Mendel – pads for two parallel connectors for the Z-Axis


  • single voltage DC-input 8-30V
  • reverse polarity protection, almost lossless
  • fast acting blade fuse for DC-input. Replacement parts easily available.
  • DC/DC-converter for 5V generation, no need to modify voltage range resistors for input voltages other than 12V
  • Solder pad for adding a DC-Jack in order to connect a 19V Laptop power supply.
  • power indicator LED (green)

If mounting a DC-jack please be sure to check the maximum current rating. Unfortunately, most DC-Jacks are rated for 0.3A only. Higher rated jacks are often hard to find.

Due to the high currents involved, most other designs don’t have any DC input power protection at all. Not having a reverse power protection means a very good chance of killing not only the controller electronics but in the worst case even a connected PC via the USB cable. A simple protection diode is not applicable for such high currents, as at 15A it would burn almost 12W, requiring a large heat sink on its own. Instead, a special, almost lossless PMOS transistor with Rds<8 milliohm is used for this design.


  • Designed to be modifiable, despite the used SMT parts.
  • All important signals are accessible on solder pads with a 2.54mm pitch, well-documented right on the PCB.
  • USB-UART converter based on Microchip MCP2200 – offers up to 8 software controllable GPIO pins


  • Three MOSFET-outputs, rated for 10A/5A/1A
  • Highly efficient MOSFETs, almost lossless. No need for heatsinks.
  • Indicator LEDs for every output (red)
  • all outputs suitable for inductive loads

The power outputs feature free-wheeling diodes, allowing for PWM control of inductive loads. They are capable of directly driving DC spindle motors and coolant pumps in CNC applications. With appropriate software support, the analog inputs can be used to monitor the rotary speed, allowing for full closed-loop spindle control.

For the power outputs a carefully selected NMOS transistor with a very low Rds value is used. This guarantees minimal power losses even at high currents of up to 10A. All high current areas of the PCB and all components related to high currents (DC input connectors, fuse, polarity protection, power MOSFETs and output connectors) will get hot, but they are designed for a rather high thermal load. When used without a housing, no heatsink is required. However, if used in a closed housing, additional cooling measures (like a small fan to ensure some air flow) might be necessary.

The different current ratings for the three power outputs reflect the different wire widths and lengths of the high-current connections on the PCB. To allow the same high current for all three of of them would require adding additional copper traces (wires) in parallel to the PCB wiring.

When using high-power heatbeds (>100W) the use of PWM-controlled slowed-down heat-up modes and/or supply voltages higher than 12V is highly recommended. At 24V supply voltage all power losses on the board will be not only 1/2, but 1/4 of the losses at 12V. Additionally, the motors perform better at higher voltages and allow for faster movements. When using a 12V heatbed and a 24V supply voltage, ensure that the maximum PWM value is set to 50% in the firmware.

When using a 12V fan at higher supply voltages please ensure that the firmware is configured for the right maximum PWM output value to not damage the fan (50%=128 for 24V, 63%=161 for 19V)