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

36 thoughts on “The Concept”

  1. Dear Nuri,

    Waiting the stock fo your controllers, i am looking for the extruder configuration.

    If i am not using Match3 and i am usinglinux cnc, i need to configure the 4th axis (it is ok) but i am lost in how can i traslate the gcode of slic3r to the machine using linux cnc with the extruder working as the A axis. I see i need to calibrate the extruder (mm of material / step of motor…) how do you recommend to config all?

    Thanks a lot for your help

  2. This one 🙂 I am also hear to help you but first you have to learn the basics

  3. Thanks Nuri, i am have been reading your page a few days, my problem was when i enter in the Slic3r official page, it has a lot of tutorials and one of that tutorials is the extruder calibration

    We will need to make this when i set upt for first time the printer? im a little scared if the config of the settings will be different using linux cnc than match3… hehehe

    • No the extruder calibration is not related with the type of software you use. You will do this once. The extruder motor must drive exactly 10mm of filament if your g-code tell it to drive 10mm. You can also calculate this.
      The main idea is to write the correct step per mm for the A axis motor. You are also doing this for other axis.

      Hope this will help

Leave a Reply to nerginer Cancel reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s