If you bought a bundle or ramps stack from this site, this is already done.

Firmware is the program “embedded/burned” into the ramps 1.4 control stack.  The stack is made up of the base board this is an arduino based mega 2560 this is the “brain”, on top of this is the driver shield it just controls the power distribution and makes it easier to plug in our components, the smaller boards on top of the shield are stepper motor drivers these just send exact amounts of power to the stepper motors.

This is using the Marlin Firmware, it is ready to go with only minor changes needed to run any machine.

Marlin Logo GitHub

The X and Y steppers are wired in parallel or series and wired to a single Z-axis port.

A 100k ohm resistor is added to the thermistor input (T0) if you are not using a hotend. (less firmware edits, easy to use Repetier-Host)

Here is my Pre-Configured Firmware, no edits needed

This is for 32nd stepping, 16 Tooth Pulleys and  5/16″ threaded rod.

mpcnc_rc8 –  Marlin with lcd enabled- if you aren’t using an lcd probably no big reason to change.

Beta for new Arduino software–Marlin RC7 MPCNC w/LCD , tested with arduino 1.6.11 fully updated using the U8glib. Y-axis direction has been corrected, you will need to flip it’s plug over on your ramps board if you are coming from a previous firmware. All edits have been marked with MPCNC in the firmware.

B16_32-LCD-112515 – Use this if you don’t have the full Graphic LCD screen.

B16_32_fullG-112515 – Full graphic LCD firmware- This LCD requires this file, http://code.google.com/p/u8glib/wiki/u8glib, to be added to your Arduino library.

Marlin_16_32_090615_therm Use this one if the above gives temp errors in repetier.

This is for 32nd stepping, 16 Tooth Pulleys and  8mm threaded rod.


B16_32_8mm-fullG-112515 – Full graphic LCD firmware- This LCD requires this file, http://code.google.com/p/u8glib/wiki/u8glib, to be added to your Arduino library.


These are the basic edits that were made

Most of the changes that have been made to configuration.h. If you want to know exactly what was changed open the firmware and search for “MPCNC”, I have tagged every edit I made.

- #define min_software_endstops false (needed to machine in the negative direction)  
- #define DEFAULT_AXIS_STEPS_PER_UNIT   {200,200,4535.44,200} (16T 5/16, use this http://www.prusaprinters.org/calculator/)  
- #define DEFAULT_MAX_FEEDRATE          {195, 195, 8.7, 25}  
- #define DEFAULT_MAX_ACCELERATION      {400,400,35,800}  
- #define DEFAULT_ACCELERATION          400 
- #define DEFAULT_XYJERK                4.0    // (mm/sec) 
- #define DEFAULT_ZJERK                 0.4     // (mm/sec)  


Change log

12/6/16 – RC8 LCD improvements.

11/25/15 – Updated from beta 2/2/16 –

The reason for the update is ultimately a faster machine.

-The X and Y axis, are limited to 195mm/s. The Z is limited to 8.7mm/s these are very close to the 32nd stepping firmware maximums of 40000 steps per second. The speeds can double if we drop to 16th stepping but I feel these are plenty fast for the average machine size.
The biggest change is the accelerations. This should allow for maximum speed in rapid moves without missing steps.
-Changed pins.h for those using the full graphic lcd, to reverse the knob direction.
-Edited the preheat temps.
-The ramps board has been changed to EFB it was EFF so PORT D10 has changed. If you have something plugged in there double check its function.


How to flash firmware

  • Install the Arduino software and its drivers before you plug in your ramps board.
  • Unzip the firmware you need from above
  • Tools-Board-Mega 2560board
  • Tools-Processorproc
  • Tools- Port (what ever your board shows up as)port
  • Open the firmware folder and select the current .ino fileopen
  • Click on the Upload arrow and watch the progress bar at the bottomupload
  • The bottom of the window will say “done uploading” when it is finished done