From RepRapWiki
Jump to: navigation, search
You might also want to look at Mendel User Manual: Host Software. Perhaps some or all of that page should be merged into this page. (Discuss)

The Driver Software is a user interface to the RepRap machine. This page duplicates more up-to-date information here: Mendel_User_Manual:_Host_Software.

Also see Printrun for an alternative.



This page describes the Java software that controls a RepRap machine from the host computer to which it is connected. But there are alternative ways to run your RepRap. Most notably these are the Skeinforge program, which is a tool chain that takes 3D objects and turns them into GCode files for sending to a RepRap, and ReplicatorG, which is a program for taking GCode files and printing the objects they represent on a RepRap machine.

For minimalist transmission of Gcode files to a RepRap using Linux/Unix machines from the command line, Ralith has created gcdump and gcgen to create Gcode commands for simple RepRap control. These are available as C source or pre-compiled binaries and work well on the OLPC.

Software Installation

See Installing RepRap on your computer for installation information.



When you run the RepRap Java software it opens these two windows. The one on the left is a console that allows you to set up objects to be printed, to print them, and also to control the RepRap machine interactively. The one on the right is a plan view of the base of the machine onto which you can load STL files of the parts that you want to make, and then position them where you want the machine to make them.

You can make parts from two types of files: STL files, and pre-computed GCode files. The program can also take STL files and turn them into GCode files for replaying later. This latter option is the preferred way of making things, as it produces the best quality results.

Creating GCode files from STL files


Typically you start by clicking on the blue "Load STL" button. This will put up a file-selector window, which you can use to find and select the STL file that represents the object that you want to build.

The object will be loaded at the origin (bottom left). You will have to select the material that the object is to be made from (even if you only have one type of material in your RepRap machine...)

You can rotate the view of the RepRap machine's base in the right-hand window with the left mouse button. Dragging with the middle button zooms the view, and the right button slides it sideways or up and down.


Normally you will not want to build the part right at the origin. If you point at the part with the mouse and left-click, it will change colour, indicating that it has been selected. You can then slide it about the base with the right mouse button to the position you want to build it in. The grid squares on the green base have 20 mm sides. You can rotate the selected object in 90o clicks about the X and Y coordinate axes by <ctrl> X, <ctrl> Y; <ctrl> Z rotates in 45o increments around Z. The last is to allow you to align an object at 45o and set up the infill (see even hatch direction and odd hatch direction) to cross hatch in the X and Y directions. This produces the same result as aligning the object with the coordinate axes, but reduces the energy used by the RepRap machine (most of the time, only one axis is being driven, rather than both). It also runs quieter. If your STL file was in inches you can scale the selected object to millimeters by multiplying by 25.4 with <ctrl> I. To delete the selected object type <ctrl> W.

To release the selected object, left-mouse-click on any other part of the green base. You will then be able to use the mouse to zoom, rotate and slide everything as one again.

You can load several STL files to build at once, either of different objects, or multiple copies of the same object. Just click on the blue "Load STL" button again, then position them in different places. Leave a gap of about 5mm between different objects to be built.


When you are happy with the layout, select the "Send GCodes to file" option, and then select "Print". This will put up another file-selector window to allow you to specify the GCode file that you want to save the results in. Terminate the file name with ".gcode".

If you wish, before selecting "Print" you can select "Display paths". This will open a small graphics window (bottom left here) that will show the paths that the machine will follow to make each Z-slice of the objects being printed.

You can also select "Pause at end of layer". This pauses the generation of output at the end of each layer to allow you to inspect the slice pattern. Continue/Cancel buttons will be displayed as each layer is about to be written to allow you to continue or to cancel the whole process.

When the GCode file has been written, exit the program with the "Exit" button.

To print your GCode file that you just generated on the actual machine, see the next section.

The control console tabs

The Print tab


Here is a list of all the buttons and options on the "Print" tab, and what they do.

Load STL

This lets you select STL files to load onto the RepRap's base for printing, as described above.

Load GCode

If you have created a GCode file (as above, or from elsewhere) this allows you to load it for actual printing on the machine. You will be shown a file selector window to choose your GCode file. You will also have to select "Print on GCode RepRap" (see below). When you have specified these, just hit "Print".

Load RFO and Save RFO

These are greyed-out and not functioning at the moment. But shortly they will allow the loading, printing, and saving of multiple-material objects all in one go. See this link.

Print on SNAP RepRap

Earlier RepRap controllers (PIC and Arduino) used the SNAP protocol rather than GCodes for communication. Selecting this option allows you to print STL files on one of these machines. At the moment, you can't send GCodes to them, but we will add that.

After you have selected this option, the software will need to reconfigure itself, so quit the program ("Exit" button), then re-run it. You will have to do the same if you move back from a SNAP RepRap to a GCode RepRap.

Print on GCode RepRap

Select this to actually send GCode commands to the machine. These can come from a pre-computed GCode file, or can be computed directly from loaded STL files. The latter option is useful for quick prints of simple objects, but it is subject to delays, as the software computes the patterns to print on the fly. These delays can give a lower-quality print.

Send GCodes to file

This instructs the software to generate the GCodes that will build any STL files that you have loaded, and save them to a file. When you select this, then select "Print", you will be prompted for the name of the GCode file to save the output in.

Pause at end of layer

Selecting this check-box will cause the software to pause at the end of each layer it makes from loaded STL files, both if it is sending the output directly to the RepRap machine, or if it is writing output to a GCode file. At the start of the next layer a small window is displayed to allow you to instruct the software to continue (you can also cancel the build at such points).

This button has no effect when building an object from a GCode file. This is because there is no way to tell from the contents of such a file where one layer ends and the next begins. But see the "Pause" button below.

Display paths

This opens a small graphics window in which the pattern of each layer is displayed as it is computed. At the moment this only works as STL files are being printed or saved as GCode files. We will shortly add the code to display this information as GCode files are being replayed too.


Selecting this will open a tabbed window that will allow you to edit all the many parameters that control the operation of the RepRap machine. These parameters are described here.


If you have loaded STL files or a GCode file, this causes it to be printed on the machine or sent to a GCode file.


When the RepRap machine is building something, this causes the machine to pause. The pause doesn't happen instantly as the control signals sent to the machine are held in a short buffer, and the pause button can have no effect until the buffer is exhausted.

The "Pause" button becomes a "Resume" button once the machine has paused.


At the moment this does the same as "Pause" above. We are working on getting it to stop the RepRap machine instantly.


This exits the program.

Progress indicators

At the bottom of the tab are the name of the file being printed, and a set of build-progress indicators. These give an estimate of the time the build will take, when it will end, and a layer count. There is also a progress bar.

The XYZ tab


The XYZ tab allows you to move your RepRap machine around directly for testing, experimenting, and servicing.

The three numbers down the left are for you to type coordinates in as a target to go to. Selecting "Go" will then cause the RepRap machine to move to that position.

The arrow keys nudge the axes by the distance specified in the "Nudge size" box at the bottom.

The "Home" buttons cause the corresponding axis to drive to its low-value endstop position and to zero its coordinate. There is also a "Home all" button that homes all three axes at once.

The "Sto" buttons store the current coordinate in the field on the right, and the "Rcl" button recalls that coordinate to become the target for a subsequent click of the "Go" button. This is particularly useful if you are in mid-build and have paused the RepRap machine. You can store the position where the machine paused ("Sto all") then move it about to do things like cleaning the extruder. Finally put it back where it paused ("Rcl all" followed by "Go") then resume the build.

The "Axis speeds" are (I hope) self-explanatory. Note that these only control the axis speeds for the buttons in this tab. When you are building an object, the software will use the speeds you set in the preferences file, and ignore the values in these boxes.

If you check the "Plot using extruder" box and subsequently click "Go", the machine will plot the line using the selected extruder rather than just moving.

The Extruder tabs


The extruder tabs allow you direct control over the RepRap machine's extruders. ("Feedstock remaining" isn't implemented yet.) The tabs are divided into three sub-panels:


This displays the current temperature of the extruder at the top. This temperature is updated every five seconds or so at all times when the RepRap machine is not running a build.

The target temperature allows you to set what temperature you want. Note that the temperature that initially appears in this box is the default one for the extruder (defined in the preferences file) and that changing the value in this box does not change the default; also, that default is what will be used for builds. To change the default, select "Preferences" in the "Print" tab.

Selecting the "Switch heat on" button will turn the extruder's heater on and you should see the temperature start to rise. The same button toggles the heater off. There is a progress bar for the temperature as it increases, and also a coloured panel that goes from blue to red as the extruder passes from a temperature that you can touch to one that you can't...

Selecting the "Ramp" button will cause the extruder's heater to ramp up to the target temperature at a rate set by the "Ramp rate" box. This is useful for such things as curing fire-cement round a newly-constructed extruder by warming it up very slowly.

Checking the "Cooling" box will turn the extruder's cooling fan on.


Selecting the "Extrude" button will turn on the extruder's feed motor (if it has one) at a rate set by the speed box. For the latest extruder designs (see here) the rate will be in millimeters of extrudate per minute. For older designs this figure sets the PWM drive to the motor and should have a value between 0 and 255. Once again, the initial speed is the one in the preferences file, and it is that preferences value that will be used for any actual build, not any number that you put in this box. The box just controls the speed on the "Extrude" button.

Selecting the Extrude button when the extrude motor is on toggles the motor off. Checking the "Reverse" box causes the motor to turn backwards.

If you are running the new 4-dimensional RepRap code (see this blog entry for an explanation) then the machine has no idea of switching the extruder "on" or "off". It just knows that it has to extrude a given length at a given speed. In this case, selecting the "Extrude" button will cause the machine to extrude a length equal to 5-seconds x the-extrude-rate-in-the-speed-box.

The "Close valve" button toggles the extruder's valve open and closed (if it has a valve).


These buttons are, I think, self-explanatory.


This page has been flagged as containing duplicate material. An editor has suggested merging this page or section into Installing RepRap on your computer. (Discuss)

If you are upgrading your installation of the host software from a version that required you to install Java3D and RXTX, then see the Old to New Java Upgrade page.

You will need a working Java 1.5.0 or later Java Run-time Environment (JRE) to run the RepRap host software. See


for Java downloads and other information.

Once you've installed Java, get the ZIP file for the latest RepRap host software release from

The file you want will be called, where xxxxx is one of linux, windows, or mac and dddddddd is the date of the release in the form 20081218.

Linux 32-bit

Unpack the ZIP file anywhere you like on your system. It will create a directory called reprap-host-linux-dddddddd where dddddddd is the date of the release. To run the software cd to that directory and run the shell script called reprap.

If you have superuser privileges and want to be able to run the RepRap software from anywhere on your system, or to add it to your desktop as a clickable executable, put the following shell script in /usr/local/bin on your system. Call it reprap (as the two repraps are in different directories the coincident names shouldn't matter):

cd /aa/bb/cc/reprap-host-linux-dddddddd

where /aa/bb/cc/reprap-host-linux-dddddddd is the absolute path to the directory that the ZIP file created. Then change the permissions to make the file executable:

chmod 755 reprap

In the reprap-host-linux-dddddddd directory there is a file called reprap-icon.png that you can use as an icon for a launch button to run the RepRap host software if you wish.

Linux 64-bit


You will need administrator privileges to do most of this.

Create a new folder:

C:\Program Files\Reprap

Unpack the ZIP file anywhere you like on your system. It will create a folder called reprap-host-windows-dddddddd where dddddddd is the date of the release. Copy all the files in that folder to C:\Program Files\Reprap.

In C:\Program Files\Reprap there is a .BAT file called reprap.bat. Running that will launch the RepRap host software. You can copy that .BAT file to your desktop or elsewhere to give you a clickable executable.


OSX Snow Leopard (10.6) download the latest release. Then just download into the main folder keeping the .jnilib extension. make sure you have java installed

Here is another method if you want to compile it from the source files. Use the Terminal application. Works on (10.6)

  • cd host
  • ./host-package-release
  • cd release/reprap-mendel-20100620 (you will have to change this directory to your release number)
  • ./reprap
  • In the host software go to Preferences -> Port(name): /dev/your port here!

Then, you need to exit and restart ./reprap

Problem solving:

  • If it doesn't run, make sure you have a directory called "/var/lock". You can create this directory by opening a terminal and typing: "sudo mkdir /var/lock"

Source code

If you want to access the latest development version of the RepRap host software, or you want to look at and to play with the source code go to this page.

Useful software

There is a page here that gives links to software packages (like computer-aided design - CAD - programs) that are not part of the RepRap project, but that are useful for it.


To see how to install or upgrade the firmware in RepRap's microcontroller see this page.