For those of you who know CNC machines well, you know how many things they can do. One of the coolest is 3-dimensional printing. We all have heard about the development and capabilities of 3D printing over the past few years because now you can create almost anything by printing it! If you want to double your CNC machine as a 3D printer, this article lays out the steps you should follow.

Over the last 5 years I have been actively following the development and growth of the 3D printing community helped by forums such as the CNCZone which has been the number one place for us all to meet, share our projects and ideas. I have also followed the development of the RepRap which is an open source project that has enabled many CNC builders to easily construct their own 3D printers incorporating quite complex electronics and software.

Many of the home constructors use the very popular Mach3 CNC software for their desktop machines and on the Artsoft web site (Mach3 official web site) it is written that ‘there are over 10000 users of Mach who swear by its ease of use, great features, and outstanding support’. In this tutorial I recommend you to use Mach3 but this does not mean that other software users can not use their machine as a 3D printer, in fact, any 4 axis CNC software can be used. If we compare a desktop CNC machine to a 3D Printer it can be seen that the only real differences are in the tool head and the heated build platform. CNC machines uses spindles but 3D printers use extruders (hot plastic extruder)

From a CNC machinery point of view a extruder is the 4th axis and must be driven like any other axis X , Y or Z but the conventional letter in a G-code representing the 4th axis is the letter “A”. This is where we encounter our first problem because in the 3D printing community it is the letter “E” which is used to represent the Extruder. Please take a look at the software part in order to understand how to solve this issue. If you have a 3 axis machine you will need to add an additional axis driver electronics so that the 4th axis can be allocated to the extruder. There are two parts in an extruder. Firstly, the filament drive mechanism that we have talked about as the 4th axis – here we will need one more stepper motor for our extruder to push the 3mm (or 1.75mm) filament into the hot end. The second part is the hot end where we need a system to melt the filament and this is usually done with Ceramic Cartridges. In addition, the temperature at the hot end has to be measured and we must try to stabilize it at a temperature around 260 degrees C. (This can be change according to the filament used)

The build platform:
The build platform is the surface that we use for printing on. It must be heated to a temperature around 110 degrees C for ABS and 50 degrees C for PLA. There are a number of choices for the type of surface material but kapton is the probably the most suitable. There also new sticky surface materials like BuildTak or GeckoTek. They are also nice to use. Give them a try. The Extruder control board’s thermistor input and one of it’s outputs can be assigned for the build platform and it’s temperature management.


There are two different software here. One is CNC controller software like Mach3 or LinuxCNC which moves your system according to your G-code program. The other software is called slicing software. It gets in a 3D model and outputs 3d printer frendly G-code. Our effort here is developing some code which brings these two software together and generate CNC flavored G-code. Please take a look at the software page for more info.

Mach3 Add-on

Mach3 has a very nice feature to run custom software inside it self. They call it Add-ons. We will just open mach3 run the add-on and and load STL file inside mach3. After proper installations you can only use mach3 to print your objects. Ofcourse you can use these software separately. First run your slicer and generate cnc flavored G-code (I mean the forth axis indication letter must be “E” This can be set inside most slicer software) Then run this g-code with machine controller software like Mach3, LinuxCNC or your other choice.

Choosing an extruder:

There are lots of third party extruders on the market. Search for popular 3d printer extruders. The important part here is the temperature sensor. If your extruder has thermistor type sensor, you must use our thermistor type controller boards. If your extruder has thermocouple then use thermocouple type controllers.

The Extruder control board

This electronic device help you to control your extruder and build platform temperatures. It has all the needed terminals for easy wiring. You are setting the desired temp with the on board trim-pots and the electronic board use PID calculations to stabilize the extruder and build platform temperatures to the set points. No PC connection is required and the on board microcontroller do the job. There are one channel and two channel options in


Upto now we try to list the items needed when converting your desktop CNC to a 3D Printer. Now it is time to tell you about putting everything together.

1- Connect your stepper motor driven extruder to a proper motor driver circuit. (Only connect the motor to the stepper motor driver)

2- Define this driver as the 4th axis to mach3. If you are using Gecko drive 540 you may have an unused 4th motor output. You can easily use it.

3- Connect the temperature sensor, Heating element and heated build platform to Extruder controller board.

4- Run Mach3 and select the Add-on from wizards menu. Open your STL file, wait for slicer to generate the G-Code and Press “Post Gcode to mach3” button then press exit. You will see the mach3 loaded the generated G-code file automatically.

4.5 or slice your stl file with the slicer sofware like Cura or Slic3r and save the gcode to your computer. Do not forget to chage the extruder letter to “A”

5- Power the gnexlab Extruder controller board with 12v dc power supply (min 10 amps) and set the extruder temperature to proper degrees according to the filament you use. 245 degrees C for ABS or 190 for PLA most common settings. And Set heated build platform temperature to 110 degrees C for ABS and 50 degrees C for PLA. You can read the set values and current temperatures of the extruder and the heated build platform temperature from the on board LCD or seven segment display.

6- Wait until the specified temperatures are reached.

7- Zero the Z axis to the heated build platform. (0.1-0.2 mm above the surface)

8- Run the GCcode with Mach3 and watch your part get printed !!!