The Project

This blog is for the people who have their own desktop CNC machine and wish to use it as a 3D printer. Over the years We have had lots of good feedback about the subject and so decided to develop Hardware and Software solutions for makers. Using Mach3, due to it’s popularity as a CNC software, We have created ‘add-on’s for using it as a 3D printing software. We have also created this website to communicate with people interested in this topic.

We enjoy sharing theses ideas with you all and any contributions, comments and or feedback is invited.

Community, Collaboration and Sharing is our most important assets.

This Project is Open Source and is licensed under the Creative Commons 4.0.

The Concept

Over the last couple of years We 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 of this web page 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.

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. 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 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. WOW!!

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 our thermocouple type controllers. If you have any question on choosing the right extruder feel free to ask us.

How to put all the parts together:

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 gnexlab 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.

5- Power the gnexlab 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 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 !!!

What else do you need?

If you have a 3 axis CNC machine to convert to a 3D printer you will need the following additional items;

  • Gnexlab Temperature Controller
    You can get lots of information at this web site.
  • One Axis Motor Driver

    If you have a 3D CNC system probably you have 3 motor drivers. For the filament drive mechanism you will need one more axis (4th axis) so one more motor driver. If you are using Gecko drive 540 you may have an unused 4th motor output which you can conveniently use.

  • Temperature Sensors
    To connect to your gnexlab controller card in order to measure the temperature you will need temperature sensors. You can use two types of sensors. Thermocouple and Thermistor.
    100k Thermistor ability to measure up to 300 degrees C
    K-type Thermocouple
  • Heated Build Platform
    The build platform is the surface that we use for printing on and It must be heated to a temperature around 110 degrees C for ABS and 50 degrees C for PLA.
  • Extruder
    This part will extrude the hot plastic.