Fully 3D Printed Small CNC Router/Plotter

Fully 3D Printed Small CNC Router/Plotter

thingiverse

This Thing began as an effort to build a small, cheap CNC machine. I mainly wanted to gain some experience with the electronics and control software without spending several hundred dollars on components. For control it uses clones of an Arduino Uno and CNC V3 shield. Steppers are the ultra cheap 28BYJ-48's with the bipolar hack. The drive system is GT2 pulleys with belts glued to the linear rails used as a rack and pinion gear drive to reduce moving parts. For a spindle I would try the tiny HF Drillmaster Rotary Tool (see edit below). I did not want to buy rods or extrusions for the frame so all the other parts including linear rails would be 3D printed. Plus all the parts had to fit on the 6"x 6" print bed of the Lulzbot Mini. This is what I ended up with. It is fairly small but still has 7"x 7"x 1.5 (177 x 177 x 40 mm) of travel with about 18" x 20" overall size. It was fairly cheap (by CNC standards anyway). It cost about $90.00 in purchased parts, plus whatever it cost me to print the parts. As an exercise in learning the electronics it was excellent. I learned plenty. I will try to share what I learned. It turns out in function it is more of a demo or Toy CNC. Nod here to [Thorgal's ToyREP 3D Printer](https://www.thingiverse.com/thing:945156) (see build notes). It is not really rigid enough to be called a real CNC machine but repeatability is surprisingly good. It also moves well. I have done plots at 60 in/min. It gets glitchy above that but maybe some settings could be tweaked. To be honest I haven't even tried the rotary tool for milling yet. I have been focusing on holding pens. As a pen plotter it is working great! My granddaughter is fascinated by it and loves watching it draw. She wants to learn to use it and that makes the whole build a win for me! If it ever actually mills something or someday holds a laser cutter that will be a bonus. Video: https://youtu.be/o14qxU9eJ0Q Repeatability video: https://youtu.be/fjbzklIJpxM Parts: Online Parts: Here are links to the parts I purchased on Amazon. Cost might be less if you don't mind long ship times. [Uno and CNC shield clone Kit: $18.99](https://www.amazon.com/gp/product/B07NRD4HM4/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1) This kit comes with limit switches that I have not used yet but will try to incorporate in the future. [Stepper Motors $10.39](https://www.amazon.com/gp/product/B015RQ97W8/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1) Steppers come with driver boards that you don't need. Use the drivers in the CNC kit. Motors will need to be modified to bipolar. [GT2 Timing Belt $7.99](https://www.amazon.com/gp/product/B071K8HYB4/ref=ppx_yo_dt_b_asin_title_o00_s02?ie=UTF8&psc=1) [Timing Belt Pulleys $5.99](https://www.amazon.com/gp/product/B07FQS8MZT/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1) [V Groove Wheels $8.71](https://www.amazon.com/gp/product/B012KKTBRU/ref=ppx_yo_dt_b_asin_title_o00_s02?ie=UTF8&psc=1) [Power Supply $10.99](https://www.amazon.com/SHNITPWR-Converter-100V-240V-Transformer-5-5x2-5mm/dp/B07NR6FPN9/ref=sr_1_4?keywords=power+supply+12v+5a&qid=1566768033&s=electronics&sr=1-4) I used a similar one I had on hand) Locally Sourced Parts: Lowes had M4 Phillips head machine screws (12 for $1.98). You could save money by purchasing those online. I used the Phillips head because they were cheaper than socket head (socket head screws would look better). I did use socket head screws where I thought they would be more functional. Most of those came from Ace Hardware. 1/2"x 24"x 24" MDF $3.84 (cut to required size) [Spindle Motor $9.99 Harbor Freight](https://www.harborfreight.com/rotary-tool-kit-80-pc-63235.html) (less if you find a 25% off coupon) I am sorry to report the Collet on this tool is not strong enough to hold the end mill in place. See additional comments below. Build Notes: Motors/Electronics: The motors and electronics were the most difficult part of the build. Wait, wasn't that why I did the build in the first place? Anyway....a few lessons learned. I couldn't run the motors directly from the Arduino. Well I could, but not all together as a CNC machine, you need the CNC Shield and drivers. The CNC Shield will only drive bipolar steppers and the 28BYJ's are unipolar. There is a popular hack to convert them to bipolar. The bipolar hack is pretty straight forward (plenty of info on that online). The only tricky part is getting the motor wires in the correct order. I reused the connector. My wire order is blue-yellow-orange-pink. You can reverse the connector on the shield to reverse motor direction (lip on top of connector may need to be clipped). Reversing is required for the cloned Y-axis motor. I removed the red wire from the connector and cut it on the motor end. The motor wires need to be cut and extended. I used some 4 conductor 22 gage wire from the big box. If you buy cheap clones like I did for the Arduino and CNC shield be careful with pin alignment. I wasted several hours troubleshooting when one section of shield pins had missed the sockets on the Arduino. Looked fine from the outside, pins missed to the inside. The pins had to be straightened on the stepper drivers boards as well. Driving the motors: Most of the following information I got from [Thorgal's ToyREP 3D Printer here on Thingiverse](https://www.thingiverse.com/thing:945156). I don't think I would ever have gotten my steppers working properly if I had not finally turned up his info on micro-stepping and voltage settings for the 28BYJ-48. Thank you Thorgal! I did a lot of searches for 28BYJ-48 & CNC. Some of the info out there was good, some not so good. Most of the mistakes were probably mine. Bipolar Hack - good info. How to adjust current on stepper driver - good info (but what is the correct setting for a 28BYJ?). Don't need to micro-step a 28BYJ. Bad info. Theory says the 5.625 degree step angle divided by the 1:64 gear reduction give a full step as .088 degrees or 4096 steps per rev. Those are pretty small full steps. Probably works for straight Arduino control. My motors didn't care. Motors chattered, missed steps, ran slow and hot. Set micro-stepping to 16 (jumper on shield). Set voltage on driver board pots to .08 volts. Motors run smooth, fast and cool. Thanks again Thorgal! Control Software: I am using [GRBL v1.1h](https://github.com/gnea/grbl/releases) (grbl_v1.1h.20190825.hex) loaded with Xloader to the Arduino. There are plenty of tutorials on using Xloader. The link to the original Xloader seems to be broken so I will upload a copy of the zip file. Make sure the baud rate is set to 115200 in the Arduino serial monitor. If it is set to 9600 you see 2 backward question marks when it tries to connect. You should see "Grbl 1.1h ['$' for help]". I am using the [OpenBuilds Controller software](https://software.openbuilds.com/) on the computer to send G code and control the CNC. This seems to be very nice software with lots of features and it looks good. This only supports the 115200 baud rate and won't work with earlier versions of Grbl at 9600. Grbl settings: Check the Axis directions and invert (or reverse the motor plugs) as required, steps/mm X, Y & Z = 1024, acceleration X &Y = 30, Z = 20. Write down or copy your settings. If you need to reload (or on some resets) Grbl you will lose your settings. For CAM I use Inventor (or Fusion 360) HSM with the [Grbl milling post processor](https://cam.autodesk.com/hsmposts). Set Output M6 and Output Tool Number to NO in the post processor dialog box in HSM. 3D printed Parts: In addition to uploading the STL files I will be uploading STP and native Inventor files to facilitate modifications. I will also include a 280 liner rail that can be printed in one piece on a larger (12"x 12") print bed. I will also upload PDF files with a complete bill of materials and drawings with assembly instructions. Orientation on the build plate is straight forward. I have posted a PDF with build orientation. No supports were used for any of the parts. I did set perimeter walls to 4. This puts a little more material around the holes for tapping threads. I have a .5mm nozzle. I used 4 top and bottom layers with .25mm layer height. I used ABS for all the parts. Stiffer material like PLA or Nylon X might be better, but I tend to print everything in ABS. I was planning on switching out the pen holder and the spindle holder on the Z rail but now I am thinking it will be easier and quicker to print a Z rail for each holder and swap the rail and all. I am going to post the pen holder and the spindle holder as separate Things to try and keep this one organized. [Link to Pen Holder here.](https://www.thingiverse.com/thing:3844064) [Link to Spindle Holder here.](https://www.thingiverse.com/thing:3844385/files) [Link to Dremel 2050 Stylo Spindle Holder here.](https://www.thingiverse.com/thing:3844385/files) Misc: To glue the GT-2 Belt to the Linear Rails I used [Dap Rapidfuse](https://www.homedepot.com/p/DAP-RapidFuse-0-85-oz-Clear-All-Purpose-Adhesive-01555/206767140). I found it at the big boxes and it seems to do an excellent job gluing different materials together. Use the small step on linear rail to help line the belt up. Roll some of the belt back, apply glue to the rail and roll the belt back down. When gluing the belt to the Y-axis rails try to start the first tooth in the same place. This will help keep the X-axis square. Remember the Y-axis rails are opposite hand. Use the Zip Tie Mounts and Zip Tie Holder(s) for cable management. They are not shown on the drawings. To glue Zip Tie Mounts to the drive carriages or X-axis rail use [Plastruct Bondene](https://www.amazon.com/Plastruct-Bondene-Cement-Styrene/dp/B0006O09M4). The Zip Tie Holder is designed for a #4 flat head screw but I just glued it to the MDF with Rapidfuse. I am using a piece of 1/8" masonite clamped on top of the MDF as a replaceable spoil board. The masonite is smoother than the MDF and pens write better on it. They would probably write even better on acrylic. This is a work in progress and I will try post and new info and improvements as I go. Any comments and suggestions for improvements would be welcome. Edit 9-3-19: [Added link to pen holders](https://www.thingiverse.com/thing:3844064) [Added Link to Spindle Holder.](https://www.thingiverse.com/thing:3844385/files) Added Repeatability video Edit 9-6-19: The spindle Motor from Harbor Freight has a problem. The power is ok. The problem is the collet on this tool is not strong enough to hold the end mill in place. I was test milling on 1/8" acrylic. I was able to mill the acrylic with shallow depth of cuts and was pleasantly surprised at how well it was cutting. The problem was with holding the end mill in the collet. I was using a .073" dia. (.125" shank) single flute end mill. As I was running additional tests suddenly the mill would bury itself in the material. The end mill was pulling itself out of the collet. I tried to tighten the the knurled collet with pliers but it still pulled out. Then I managed to damage the locking pin that keeps the shaft from turning so it no longer locks. Time for a redesign using a tool with a better collet. My searches turned up cheap tools but many comments on cheap collets. Now I am looking at the Dremel Stylo 2050-15. It's 50 bucks. That's more than half of what I had in the whole build. Would be nice to be able to cut acrylic though. If you only cut soft material like machinable wax the HF tool might work. Edit 9-12-2019: Changed License type to Creative Commons - Attribution Edit 9-27-2019: Added link to Dremel 2050 Stylo Spindle Holder

Download Model from thingiverse

With this file you will be able to print Fully 3D Printed Small CNC Router/Plotter with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Fully 3D Printed Small CNC Router/Plotter.