This instructable is for the people who have their own desktop CNC machine and wish to use it as a 3D printer. Over the years I 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, I have created ‘add-on’s for using it as a 3D printing software. I have also created a blog (cnc2printer3d.wordpress.com) 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.

Step 1: The Concept

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 makerstorage.com

<p>Nuri,</p><p>thank you for the useful information. I am starting to add 3d printing to the cnc router <em>i</em> had built, being now in the learning stage. a question: is there a need to change the temp of the hotend during a build run, or can it be constant for a certain set of conditions? the difference is that if constant there is no need for the computer to be involved, so manual temp selection can be used.</p>
<p>Hi noshed,</p><p>We are not changing the temperature during the print. What we are trying is to keep it constant at a predefined set value. We are using PID algorithms inorder to keep it constant.</p>
<p>Very cool mod.</p>
<p>Thanks Jason</p>

About This Instructable




More by NuriE1:CNC to 3D Printer Conversion  
Add instructable to: