Combination CNC Machine and 3D Printer

FeaturedContest Winner
Picture of Combination CNC Machine and 3D Printer
How to make your own 2D CNC machine that converts into a 3D Printer and back to a CNC machine in less than an hour.  Costing less than a CNC machine or 3D printer! (~$1,000.00) In addition, the design will go further than the traditional 3D printer printing ABS/PLA, and move forward to printing with new materials such as 3D Printing Nylon derivatives like tauman 618 as well as Acrylic and PET. 

Latest Updates to this Instructable as of 9/12/2012:
1. There is a full 2BEIGH3 update here, along with a source for Nylon 3D Printing material here.

2. If you have a new 3D Printing material, there is a Safety Test Procedure for any new and previously untested material here.

  As a sample of the unique new properties of just one of these new materials, Here is a 3D Print of a Childs NYLON Prosthetic Insole on the 2BEIGH3 3D Printer.

     With the 3D Printer configuration of the 2BEIGH3, you will be able to print parts that meet much higher standards for strength, flexibility and pliability.  You will be able to design parts that can take 100's of severe strikes from a sledge hammer and still have a soft velvet like texture.
You will be able to print parts that are almost equal to Factory Die Extrusions.  And in some cases, parts that can not be Die extruded due to complexity.  The term "delamination" will cease to be a concern.
    Nylon and it's derivative polymers have some great features that can be modified with fill density and layer height.  Imagine being able to print a permanent coffee filter, bearings that need no lubrication, pliable IPhone cases, extremely tough bands that are so flexible you can tie them in a knot and they'll still support 200lbs! 
    My hope is that people use this guide to bring their designs and projects to tangible parts and objects as paper and CAD designs are great, but unproven, till built.
My goal for this guide is to take the mystery out of both CNC and 3D printing in such a way as to eliminate that….”its all to overwhelming” feeling or thought.
Because there are several other specific machine designs out there, both CNC and 3D Printer, please refer to this machine as the "2BEIGH3" or "2 by 3" as I will within this guide.
Remove these adsRemove these ads by Signing Up

Its superb

ifarkas3 months ago
Very creative. I'll build your system as soon as I have your design in Autodesk Inventor 2014 as a parametric model. Do you happen to have that? :-)
regaltaxlaw4 months ago
If anyone is having problems downloading the DXF files just right click on them, click save as and then add a ".dxf" at the end then press save.
myinisjap5 months ago
If anyone is having problems downloading the DXF files just right click on them, click save as and then add a ".dxf" at the end then press save.
Ok, I have a question.... If the point of changing the XY table and drive methods is to exchange speed for torque, then aren't we making life way harder than it has to be? In my design, I can see a way to actually run both drive methods on the same table at the same time... well sorta. I could add a belt drive to both X and Y axis, which would be permanently connected. Then, give myself a way to disconnect the drive screw from the table and the X-carriage. It would then be run from the belt drives at high speed and low torque. The screw drives could be re-attached to run high-torque/low speed. The belt drives would not have to be disconnected at all. They would only have to have the power removed so the steppers can freewheel. The screwdrives would have no problem dragging the belt drives in tow, and I can't foresee any reason why it would hurt them as long as power was removed.

Can your table be modified in this way? If it could, then, assuming you run dual parallel controllers, you could simplify the transition to inserting 2-4 bolts and the flip of a switch.
I too started with the same simple frame in mind with the intention of simply 'upscaling' it. However, mine morphed into something completely new and different. I also have the intention of switching back and forth between 3D printer and mill/router. I would also like to add the ability to do PCBs and laser. I didn't plan for mine to switch motion/axis to optimize motion for the different modes though.... bravo. I figured when mine didn't move on the X and Y fast enough, I would make some linear trucks for each, and switch to belt drive. I built it with that future upgrade in mind, and should be able to do it easily. Right now, I have a fried X stepper, and I'm awaiting the replacement.....

Muffyy5 months ago
I dont understand why this hasnt been done.
Once you have you device with XYZ movement and a well thought out tool space, you can interchange any tool from router to engraver to extruder.
If your frame is rigid enough to handle router cutting a extruder will be nothing
Creidhne7 months ago
Very nice instructable!

Do you have any 3d cad models of the whole assembly? It would be nice to bring up a .step file to better understand how it all fits together.
JKJ19617 months ago
Looks kike an idea whose time has come:
My Diet Area8 months ago
I have been following your Instructible for about 3 months and have constructed a low res cnc to cut parts for the high res table.
taulman (author)  My Diet Area8 months ago
Congratulations, M D A..! You'll be pleased to know you're in good company. There are about 80+ (that I know of) makers around the world building or using/hacking the design. I will mention, that once I had the lower res unit working that I ended up actually cutting more parts on it, than I did when the higher res unit was up. Again, congratulations as I, and a lot of others here know, it takes interest and study to make these units work!
rtshultz9 months ago
It has been a while since I posted so I will give another update. Hopefully this info will help with anyone who is having difficulties like I am. Here is what I have found in the past few weeks.
Missed steps: I scoped the outputs of the parallel port and the input to the stepper board. There was no missed steps at all. In my parallel interface board, there is a HC244 level converter connected to the lines of the parallel port. This does the 3.3V to 5V conversion so the rest of the downstream electronics are getting full 5V. Since this was not the problem I had to do some more hunting and found the decay mode drastically affected my stepper motors when running at higher RPM. I was running at 50% decay but I changed it to 100% decay and my "missed steps" problem went away. I hope this proves useful to anyone facing a similar aggravating situation.

Drive rods: I have been having frustrating problems with my threaded rod coming loose from the motor couplers or the couplers coming loose from the motor shaft. It is extremely annoying. Everytime I try to cut the thicker plastics, the rod decouples and I ruin my part. I tighten the set screws as tight as possible. I have already rounded out the hex keys on two or 3 of the set screw because I am tightening them so much and so tight. The lateral forces just seem to be way to high and are pulling things apart. I actually ordered some of the special CNC shaft couplers that are helically slit to help with misalignment issues. They help to smooth out the motion but the helix acts like a spring and creates a big dead zone when you reverse direction just like backlash but worse. They clamped around the shaft instead of set screws so they held much better but I had to remove them because of the dead zone. I am not sure what I am going to do about this. Until I can get this solved, I am dead in the water!

Slides: These have been a major thorn in my side. I know the slides were not going to be very precise but the ones I have are ridiculous. I already mentioned on my first post about the use of a tension spring on the Z axis slide. Well I had to do the same on one of the X axis slides. I noticed when I reversed direction in the X axis, they would shift in the Y axis as well!!! The farther they were extended, the greater the shift. At near full extension the Y shift just by looking at it was 0.050" or more!!! This was showing up on all of my test prints when there was an X axis direction change. I "solved" this problem just like the other. I put a tension spring from the end of the slid and attached it to the opposite slides aluminum U channel via a nylon zip tie. This created a nylon loop that would "slide" up and down the channel as the X axis moved and provided a constant force in the Y axis and greatly reduced if not eliminated the problem.

Plastics: When I was purchasing my raw materials, I was having a hard time finding the 0.220 acrylic so I went with 6mm polycarbonate from Amazon. Since it is a harder plastic, it is also harder to mill. I have checked out online for some tips on cutting this stuff and everything I read indicates you need low rpm and high feed speed. Wellllll, this setup is just not rigid enough to handle those kind of forces and my motors top out at around 22 in/min which is waaaaay below the recommended feed speeds of anywhere from 50 - 90 in/min from what I have read. The bit also seems to catch alot and pull into the plastic or pull the plastic up. I have these same problems with acrylic too. I have tried milling thinner acrylic and polycarbonate and these really cause a lot of problems because they ride up the helix of the bit and cause the thin plastic to vibrate a lot in the Z axis and just make a mess with the edge. I am experimenting with trying to do a 2 pass cut of the 6mm polycarb. If my threaded rod will keep from coming apart this might be a viable solution. Higher feed speeds seem to cause a lot more slop in the X and Y axis so I have been trying to keep everything running at 150mm/min or less.

Dremel: I have been dissatisfied with my generic dremel. I don't know if the name brand will be better but I am unwilling and unable to spend the cash to find out. I am convinced that a generic "rotozip" or compact router is a way better option to get more torque at lower rpms. Mine has stalled out too many times when I turn down the rpms to keep from melting the edges of the plastic. Plus you get a 1/4" bit capacity and likely a much better collet system to hold the bit. Anything has to be better than the one I have. It is a Genesis rotary tool from Amazon. Works fine as a dremel but the supplied collets don't hold worth a darn when you have high pull-out forces.

Well that is enough for now. I hope this helps anyone else that may be running into brick walls like I am. If anyone has any ideas please let me know. One of these days or months I will get this thing working!
taulman (author)  rtshultz9 months ago
Hi, rt, First, excellent detective work on the driver board and drivers. That is the single point of issues with all of the electronics I've seen.
Next, on the coupler, while I didn't have any issues, I talked to one user that bulit a larger unit and he user a zero backlash from MMCarr
Coupling Hub 1/4" Bore, 3/4" Outside
PN 9845T102 using a red Durometer spider
Next is the speed of the dremel....Seems I lucked out finding the right speed to cut acrylic with mine, but it eventually died from over use: )
I bought a cutout saw (dremel like) from Harbor Frieght But it didn't have speed control like the dremel. Runs way to fast.
I found that there's a certain speed for each type acrylic, so I bought a autotransformer that allows me to change voltage/speed $50.00
Works great. But it does take time to dial in the speed. Both RPM and cut speed.
I found that the 1/8 bit got hot so the plastic melted to easy. I got a blower nozzle for my air comp and put it on to cool off the cutting bit. That really helps.
mail me on my website and I'll see if I can find any other tips.

rtshultz9 months ago
Update 2:
Tried the different motors. They give about 3x linear feed as expected. After trying to cut some test parts, I think I am going to reverse my thoughts on missed steps. The output with the new motors is all over the map. I think the missed steps weren't as obvious with the slower rpm motors but the higher frequency signals for these new motors is making the missed steps much more obvious. Parallel port card here I come!
rtshultz10 months ago
Hello again!
Here is an update to my previous post. I checked my parallel port and it is putting out 3.3V signals but I also scoped the steps and everything looks good. I scoped the step signal coming out of the parallel port and the clock input pin to the stepper controller and they have been identical on every scope capture. So I would have to say that I am not dropping steps. I was able to get my hands on some different stepper motors and I hooked them up to the signal generator feeding the stepper motor controller and they top out at 25kHz. I think I am going to try them to give a little more linear feed speed.
rtshultz10 months ago
I have been following your Instructible for about 3 months and have constructed a low res cnc to cut parts for the high res table.  I had some questions at the bottom but I also wanted to share some of what I have learned.  I have even contemplated making a parallel Instructable on using LCNC for this project.  But that is for when I am farther along.  Here is what I have:

To save some money, I went the LinuxCNC route since it was free to try.  Getting the motors to run with LCNC was not difficult.  Since there is not a standard CAM module to convert DXF to gcode I had to try third party software.  Try as I may, I could not get any software to reliably read in the DXF files from this instructable.  I don’t know why.  Sooo, I went the long route and re-drew the parts for the precision table in Sketchup and exported the DXF from there.  I have made some minor tweeks to the geometry of the parts but nothing drastic.  Then I used a free CAM program (HeeksCNC) to create the gcode.  Works pretty well.  I do have to tweek the resulting gcode a little since LCNC gives some error messages during the import.  The messages are actually useful and point you where you need to make some modifications.  LCNC has an excellent gcode reference in their manual.

Another difference is the CNC controller I am using.  I got mine from
This is good for 1/16 microstepping which is what I have it set to.  I haven’t noticed any odd behavior with this controller.  I am going to verify my parallel port is giving 5VDC and scope the output to double check for missed steps but after cutting many test parts, I am pretty certain that it is behaving well.
I can control the motors well from the PC but they have a limited feed rate before they start “misbehaving”.  I used a separate signal generator to feed TTL square waves to the controllers to find the top frequency I can supply the motors.  My motors top out at about 8Khz with the above microstepping and 24VDC supply.  That equates to about 2.5 rev/s or 1/8 in/s.  Not very fast.  Since your video is time lapsed, approximately how fast is your linear feed rate??  After some research, I found a nice site ( that had good calculations to determine the max rpm for a stepper motor based on inductance and supply voltage.  It looks like I picked high inductance low amp motors (57BYGH207 motor from that limit my rpm .  I saved a few bucks per motor but I am paying for it in speed.  I thought I would pass that along in case anyone else had the same problem.  Which motors did you get specifically??? Item 57BYGH104??
I am using a similar type end mill it is just half the length and consequently half the price.  It is from (  All the specs appear to be the same other than the length.

My main reason for writing (other than...  Great instructable!!) is I am having problems getting good output on cutting the parts (at least I think so).  I have test cut many of the Ystrut pieces on various materials to get a feel for the output before making the final pieces.  I have milled the profile in wood to a shallow depth and it looks nice and smooth but when I get to milling the plastic, the edge finish is rather coarse.  I am experimenting using thin acrylic and the cutter seems to catch and grab the piece causing it to vibrate in the Z axis.  The milling direction is such that the finish edge is conventional milling and not climb milling.  I have experimented with different rpm on the cutter but I can only go so low before my generic dremel will stall out.  I noticed that you show two different cutting tools attached to your Z axis.  The first looks like a dremel type rotary tool and the other looks more like a roto-zip or small router which is shown in your video.  Did you need to graduate up to a more powerful cutter??  I am feeding about as fast as my motors will go (110mm/min).  I just get bad vibration.  Even going to thicker material the bit will tend to grab but the thicker material doesn’t vibrate as much in the Z axis.  I have even had the bit grab so much that it pulled it out of the collet during the milling.  I replaced the factory collet with an acual dremel collet and that seemed to do the trick.  The surface finish is still pretty coarse.  I did find that the center drawer slide that I have on my Z axis has a lot of play in the Y axis.  It can cause my cutter to “sway” in the Y axis by 1/8” or more!  Maybe I have a less than ideal slide.  This was causing a LOT of coarseness in the Y axis cuts.  As the table would move in the Y direction, the flex of the slide would act like a spring and cause jerky motion.  I have been able to compensate for this by putting a tension spring on the end of the slide and connect it back to the Z axis pipe to provide a constant back pressure on the slide.  I just wanted to get your feedback to see if you had any tricks you learned and didn’t document in the Instructable.  About what would you call reasonable tolerance on the output for the low res table??  0.012”-0.015”??  Thanks for the help!
Looks like I will also have to remove my Step Signal Opto chip. I scaled up the skull and crossbones test file, included in Mach3, to .5 on first test cut. Things looked ok until I tried a larger 2.5 scale up of the same file. Looks like Y is missing steps, BADLY. The eyes of the skull and cross bones aren't straight. I may also bump up my voltage to 24v after I've removed and jumper the chip location.
It seems the Univelop tb6560 has changed their opto chips. I was going to remove it until I noticed they are no longer a 4 pin chip. It is now an Identical chip to the one next to it. Both are 6N137. I will do more searching.

Also, I think I am doing something wrong converting dxf to g-code for the parts in the precision table. I tried to test a few cuts on wood after converting with lazycam but the bit seems to be constantly following the red travel lines between cuts and not following the blue lines to cut the part itself.

I will search more and post back later.

I'm am going to post my embarrassing folly publicly, in case others can't seem to get there motors moving both directions.

The first day that I got my machine wired up, Z axis, was the only one that wouldn't respond when pressing the page up key, in fact, when pressing page down, the motor would make z axis go up. X and Y worked, but it seemed rather sporadically.

Following day, Z was still the same but now, x and y went in the same direction no matter which direction I pressed for the arrow keys. I searched some tutorials and even messaged taulman to let him know I had it Somewhat working.

Today, I do want taulman suggested within his message and nothing different happened. While looking at a ribbon cable I noticed that I forgot to run a 9v lead to the interface board (board with parallel port). DERP. Made a lead and connected the 7v port, to the 9v bussbar, now everthing is moving as it should!!!

Lost, 3, late afternoons of progress because I forgot to double check my wiring job on my boards. Check and double check your work.
Kinkywinky11 months ago
I was wondering how flat the printer bed has to be. I have made my own 3d printer now and the bed is 0.2-0.4 degrees higher towards the left side and 0.3-0.5 degrees higher towards the front. Will this make a noticeable difference in my print product? Luckily I can correct this with some sanding but was wondering if it was worth the trouble. Any suggestions?
braunsquared11 months ago
Hey taulman,
I used your picture as a reference and successfully removed (bypassed) one of the optocouplers but I'm having the same results. I max out at approximately 80rpm before the stepper just stalls and makes a horrible racket. I know your videos are all time-lapse, do you have any that aren't? As it stands right now, I could get the steppers working but movement would be at a snails pace.

Any ideas on where I could look or maybe additional forums I could query would be most appreciated.

taulman (author)  braunsquared11 months ago
what stepper motors and what is the power supply voltage?
If it's 12 volts, you may want to bump it up to 24 volts.
taulman (author)  braunsquared11 months ago
This all depends on a few items. What is your main power supply voltage? Is this the printer or CNC..? HAve you verified you can change steps?1/2, 1/4, 1/8
tcase611 months ago
Thanks for the instructable,,, you have ideas running through my head so bad right now its pitiful..... 3d plastic printer, saw the 3d metal printers on youtube... I want both... metal be similar but different... will have to see... I know from plastics and to metal, different heat temperatures for melting and such...may be hard for the cooling should hopefully be extremely fast to work as a printer.... so, that would be my biggest dilemma of figuring things out... unfortunately, it would have to cool pretty much as soon as it comes out of the nozzle... thanks again for the instructable....
taulman (author)  tcase611 months ago
tcase6, first, thanks for your comments! they mean a lot to all of us that place designs here.
As to the metals, yes , I found that I could melt them (Tin and Bizmuth) but couldn't control the cooling as well as I wanted. I'm sure it's doable, it just requires a knowledge of metal thermodynamics. If you do go the way of metals, you might try a system that extrudes an "almost melted" metal. Has a narrow temp range, but might just work.
Bizmuth is hard to control, but melts easy. Tin is probably the way to go.
I have built and painted my frame. Scaling the 2by3 up to 48x48x24. Controller boards and steppers arrived a couple of days ago. Off to by my rods, channels, and slides.

Thank you so much for putting this instructable out there for us. I have always wanted to build my own cnc and I never thought I would. Thanks taulman for all your hard work and documentation. I wounldn't be doing this if it wasn't for your great instructable
taulman (author)  Greasy Joe Bick11 months ago
First, thank you for your kind words!
Wow.....that's a large machine, Joe!... You'll be able to make furniture , musical instruments and a small block engine..!
Good luck in your build, Joe and thanks again for your comments.
dpucio11 months ago
thanks for all the electronics info, scaling this up to a 30s30x30 square aluminim frame with linear bearings.
jgluch12 months ago
For anyone that reads through the comments and has similar problems due to 3.3v on the parallel port...If you don't want to remove the optoisolators there is something that I have found that works pretty well. From what I have looked at, it is hard to find out if a PCI parallel card will output the 5v necessary. I recently got this (, an output buffer board. It is basically plug and play and installs right in line onto the breakout board. It holds the voltage right at 5 and I was able to get my basic CNC up and running.
Let me first say, awesome project. The plethora of information you have shared is fantastic.

I've started to build my own 2beigh3. I purchased the 4/5 axis TB6560 stepper controller from cncgeeker and the 8kg NEMA23 steppers from circuitspecialists. I have them all wired up with a 15A 12V power supply and a 9V power supply for the logic side. All looks happy with LED's happily lit abroad. I connected it all up to a spare PC I had and tested out the motors. Here is where everything started going downhill. After many trials and tribulations, I discovered the parallel port was maxing out at 3.3V, so I ordered a PCI expansion port and now have it happily at 5V where it should be. Now, motor tuning... ugh. No matter what config I use, I can't get the motors to turn well. Using the example config you provided, they make a lot of noise, but very little movement, mostly jerky action. I've tried lowering the accel and velocity, changing the steps, adjusting the low active on the pins and changing the pulse widths, all with the same poor results. In idle, the motors lock up as they should be with remarkable holding force. I'm unable to turn by hand at all. I've tested the motor leads and I'm seeing 12V as expected. I have the DIP switches for the stepper drivers set at 0% decay, 20% torque and 1/8th steps. Any suggestions or ideas on what I can test next would be greatly appreciated. I'm thinking it may be the opto-couplers that I keep reading about, but I'm not convinced yet.

Thanks again for all you have done. Not sure where else to turn for assistance quite yet as googling it provides a hodgepodge of results. --Best, Tim
taulman (author)  braunsquared1 year ago
First, thank you for all of your great comments!
I have added a photo of how to remove the opto and replace with two short jumpers on the last step and last photo. Bypassing the optos helped me after I noticed some creep on my boards.
Also, Mach3 "jog" defaults to 100%. use your tab key to bring up the jog screen and set the number to 10% to start to troubleshoot.
dpucio1 year ago
has anyone made the 24x24 version? and if so do you have the cad files?im hesitant to attempt to make my own non-tested version
taulman (author)  dpucio1 year ago
dp, You might check with Gadget047 as he makes large units.
jgluch1 year ago
Could you just remove the opto-isolators and bypass them with a jumper wire or are there more components involved?
taulman (author)  jgluch1 year ago
Jg, Yes, that's exactly what is done. If you follow the trace, you'll see where to jump over.
jgluch1 year ago
Hey, this is an awesome instructable. Super easy to understand. Anyways, I have built the basic CNC with the intentions of making the precision and the 3D printer. I am pretty sure I have most of the same materials you used, the NEMA 23 motors from the site you recommended as well as the 4-axis controller and drivers from cncgeeker. We got it all built and set up with Mach 3 but it seems we have run into a problem. The driver on Mach 3 seems to be working fine, the controllers are lighting up and getting power (we are using an old PSU for the 12V) and we are even getting the motors to make noise with the jogging controls on Mach 3. But when I try to run a program with gcode or even just try to hold down the arrow key for continuous jogging, the motors won't turn continuously. I have tried looking through the Mach 3 manual for help but have been unsuccessful so far. Have you run into anything like this? Is there a setting I'm missing? (I have tried toggling the continuous setting on the jogging function) Any help would be appreciated. I'm just a rookie when it comes to these things. Thanks,
taulman (author)  jgluch1 year ago
Jg, Yes, we have seen this issue at times. This usually comes from computer printer ports that are 3.3volt rather than the original 5 volt.
Most CNC driver boards have opto isolators to isolate the Motor Drivers from the computer for protection of the computer. These devices require a 5 volt signal to work consistently. Try searching the CNC forums on 5 volt LPT boards as I'm sure they're out there and inexpensive. I have a mod for those drivers as well I'll try to post that bypasses the optos. Basically, you don't need them unless you're in an industrial wired facility using 3 phase power.
ab00321 year ago
How fast are 3D printers in xy? How fast are they compared to CNC mills?
BpHunter21 year ago
Great job!

Get More Out of Instructables

Already have an Account?


PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!