From RepRap
Jump to: navigation, search
Crystal Clear action run.png

Release status: working

a firmware for Arduino compatible setups
CAD Models
External Link

MK4duo is firmware for RepRap single-processor electronics, It supports printing over USB or from SD cards with folders, and uses lookahead trajectory planning. MK4duo is licensed under the GNU GPL v3 or later. It is based on Sprinter firmware, licensed under GPL v2 or later.

The MK4duo Project is hosted on GitHub.

Current Release: MK4duo 4.0.x dev:

Works on RAMPS 1.4, Rumba, Ultimaker, Sanguinololu, Generation_6_Electronics, Alligator, Ramps FD, and many other controllers based on AVR 8-bit or SAM 32-bit microcontrollers. See the file "boards.h" in the source code for a complete list.

Quick Information

This RepRap firmware is a mashup between Sprinter, Marlin and Grbl with many original parts.

Derived from Sprinter and Grbl by Erik van der Zalm. Sprinter's lead developers are Kliment and caru. Grbl's lead developer is Simen Svale Skogsrud. Sonney Jeon (Chamnit) improved some parts of Grbl. A fork by bkubicek for the Ultimaker was merged, and further development was aided by him.


  • Interrupt based movement with real linear acceleration.
  • High steprate.
  • Look ahead (Keep the speed high when possible. High cornering speed).
  • Interrupt based temperature protection.
  • Preliminary support for Matthew Roberts' advance algorithm.
  • Full endstop support.
  • SD Card support, including folders and long filenames.
  • LCD support, both character-based and graphical (ideally 20x4 or 128x64).
  • Touch Screen NEXTION 4.3" support.
  • LCD menu system for standalone SD card printing, controlled by a click-encoder.
  • EEPROM storage of several settings.
  • many small but handy things originating from bkubicek's fork.
  • Arc support.
  • Temperature oversampling.
  • Dynamic Temperature setpointing aka "AutoTemp."
  • Endstop trigger reporting to the host software.
  • Heater power reporting. Useful for PID monitoring.
  • CoreXY and CoreXZ kinematics.
  • Delta kinematics.
  • SCARA kinematics.
  • Automatic bed leveling and compensation.
  • Delta Autocalibration.
  • Firmware binary size between around 50 kB and 100 kB, depending on options.
  • Filament Width Sensor support
  • Filament Runout Sensor support
  • Multiple Extruders (up to 6) supported
  • Flux capacitor support
  • Dondolo support
  • Multiextruder NPr2 support
  • Different step, feedrate, acceleration and retraction for any extruder.
  • Color mixing support (Diamond Hotend)
  • Hot Chamber support
  • Laser Beam support

The default baudrate is 250,000. Because this baudrate is directly derived from the usual 16 MHz clock of the Arduino microcontroller, it has less jitter and hence fewer errors than the usual 115,200 baud, but 250,000 baud is not as well supported by drivers and host-environments.

Differences from and additions to the already good Marlin firmware

Bug reports