For many people, without a doubt the scariest (and most difficult) part of building a RepRap is getting the firmware installed on the electronics. The firmware is the piece of software that runs on the RepRap itself, it listens for gcode instructions from your computer and turns them into motor movements, and heater temperatures.

At the moment, my favourite firmware is the excellent Marlin Firmware, it supports a wide variety of RepRap electronic sets, is open source and has an active group of people developing it. You can clone a copy using Git. If you don’t develop software, and have no idea what a git is, then you can also just download it from here, and unzip it to someplace on your computer.

Now the Marlin firmware comes as an Arduino Sketch, or source code that is designed to run on an Arduino. Yes, it is software source code and you are about to compile and install it on the electronics you have lovingly wired into your RepRap. You need a slightly older version (22) of the Arduino IDE/toolset to compile your firmware, it can be downloaded for OSX and Windows.

Now the electronics I am using is an Arduino Mega with RAMPS1.4 board, which luckily means that you don’t need to install any additional funky drivers into Arduino. Some electronics sets (like Gen6) need additional Sanguino drivers installed.

1. Open up the Marlin Firmware

“Select File -> Open…” and browse to where you downloaded and unzipped the Marlin files, select the “Marlin.pde” file.

A screenshot showing the arduino ide opening a project file

2. Select your Electronics type, for an Arduino Mega

Just head to Tools -> Board and select “Arduino Mega 2560”

A screenshot showing the arduino ide selecting the type of board to use

3. Plug a USB cable from your RepRap into your Computer and tell Arduino which port you are using.

Open up “Tools -> Serial Port” and select the tty USB one.

4. Open up the Configuration.h file

This is where all the options you will need to edit are stored. It looks a little scary at first but you will get the hang of it. In particular you are going to be interested in the MOTHERBOARD and DEFAULT_AXIS_STEPS_PER_UNIT settings.

5. Make sure you don’t have any host software (like Pronterface) open and connected to your RepRap.

6. Press the Verify/Compile Button (⌘R), everything should compile OK.

7. Press the Upload to I/O button (⌘U) - this will push your firmware up to your RepRap electronics.

** So you need to install Sanguino drivers because you are using a Gen6 or sanguinololu electronics. Inside the Marlin directory you will find a folder called “Sangunio” this needs to be copied into Arduino application. On OSX, you need to right click (or command click) the Ardunio application, select “show package contents”.

A screenshot of a right-click menu on osx show package contents

Copy the Sangunio from the Marlin folder into Contents/Resources/Java/hardware.

A screenshot showing the sanguino folder within the project.

Now when you select the electronics type step 2 above “Tools -> Board” select Sanguino instead.


You can join the conversation on Twitter or Instagram

Become a Patreon to get early and behind-the-scenes access along with email notifications for each new post.