MultiBot CNC v2

A low cost 3D printed CNC that can be built with minimal tools yet is capable of great things.

Similar projects worth following
I set out to make a large format, low cost 3D printed CNC machine that is capable of handling hard woods and aluminum. The goal was to make it as accessible as possible, so it uses off the shelf parts, and does not need any heavy tools to assemble it.

I have been interested in building a CNC machine for years, even going as far as building one out of old CD Rom drivers, and another from an old 3D printer.  A year ago I stumbled onto Nikodem Bartnik's DIY 3D Printed Dremel CNC project and found the inspiration I was looking for.  I took his excellent ideas and built my own version of his machine. That machine was great, but was lacking in several ways so I sat down for this second redesign and think I finally hit upon a great combination.

The project goal was to make a machine that had a working size of at least 11"x17", the final working volume ended up being 365 mm x 465 mm x 75 mm (14"x18"x3").  To make it as inexpensively as possible.  And to make it accessible so that anyone with a 3D printer and a few simple hand tools could put it together.  All while being capable of doing serious milling of hard woods and aluminum.

Here is a full parts and price list for the machine.

I'm using 12 mm smooth rods and LM12LUU bearings for the linear motion because they are readily available and very low cost.  However at the size were working with the 12 mm rod is not stiff enough.  After running tests with different configurations of rods I settled on doubling up the rods, that is almost half the cost of using 16 mm rods while still being significantly stiffer than a single 12 mm rod.  You can see from the graph below that deflection at the tool in the X and Y direction is greatly reduced with doubled up rods.

I'm using 8mm Acme trapezoidal lead screws for the drive system.  In the original design I was getting a lot of backlash.  I experimented with several different configurations but finally landed on combining a brass nut with a Delrin nut in compression to eliminate backlash.  This is easier to adjust than using two brass nuts, safer than using Delrin nuts, and much stiffer than using spring based backlash nuts that you can find on Amazon and AlliExpress.  The Delrin nuts are just flexible enough that you can have a fine control over tension making it easy to dial out backlash without adding a lot of resistance to the setup.

In my original design I was relying on the bearings in the stepper motors to take all the load from the lead screw.  This was not a good arrangement and on some of my axis I was able to deflect the drive shaft by several mm.  I worked around this by adding skateboard bearings on each end of the lead screw and using 3D printed nuts to tension the lead screw between the bearings.  This provides a lot of strength and completely decouples the stepper motors from the system.  I also added standoffs to the stepper motors to make maintenance easier and to ensure I can use every inch of my linear rod for motion.

I struggled for a long time with the 3D printed parts cracking under load. I have gone through many design iterations trying to come up with a clamping and screwing system that can handle the forces of a milling machine without sacrificing the convenience of a 3D printed part.  Eventually I hit on the idea of using heat set brass inserts to strengthen the screw holes and using separate clamps to hold my rods in place.  This has proven to be quite robust and requires a minimal amount of effort to put together.  You do need some sort of a heat source to set the brass inserts.  This has the added benefit of making the machine very serviceable, it is easy to take it apart and put it back together now without worrying about damaging the 3D printed parts.  Well worth the small increase in cost and complexity in my mind.

As much as possible I have tried to make the parts symmetrical for easy reuse, and have carefully designed all parts to be printed as designed without needing any supports or brims.  The goal is to take out the complexity as much as possible so a...

Read more »

  • Laser Post-Mortem

    David Tuckera day ago 0 comments

    It is time to take stock of my laser add-on.  Right off the bat I have to say the laser is a lot of fun. It is deceptively simple to use, that can really lead to issues if you are not vigilant.  It takes almost zero setup, once I set the focus height I can add a new sheet of stock any time with little more than a rough alignment under the laser before starting a cut.  And cuts are quiet (thanks to my new air pump) and generally fuss free.  No need to worry about cut order, or to secure the material or really worry a lot about feeds and speeds.  Another plus is the accuracy, this has a 0.1 mm kerf and can easily cut paper thin slices of material, there is no worrying about splintering or dealing with a wide bit.

    On the negative side, this is too easy, it is tempting to not wear the safety glasses or not remain in the room while cutting, It feels too safe.  I have had to impose some rules for using the laser to help keep myself from growing complacent.  The first rule is if the laser is plugged into the wall then I wear my safety glasses, no exceptions.  Next I go through a fixed startup sequence of turning on the air and then my exhaust fan, setting the focus and outlining my cut before I turn on the laser.  The reverse sequence is followed as soon as the cut is complete.  Most importantly I pull the power before messing with the material. 

    It is also very slow, a CO2 laser would be able to cut much faster, and much thicker materials as well.  It took several minutes to cut out the little boxes from my last two posts and those are about as simple a cut as you can make.  However for the price and my applications the speed is not that bad.  I don't have room for a CO2 laser, nor do I have anything major I'm producing so time is not money in my case.

    It does not compare well to a 3D printer, they are really designed to do very different things.  The laser is very much a 2D cutter, basically a mat knife on asteroids. While the 3D printer is mostly used for complex 3D forms.  This is closer in spirit to the CNC, but it is much simpler to setup and operate.  If it was not for the death ray and smoke it would be quite user friendly!  You really need to think hard to turn a 2D cut into a 3D shape, going beyond simple box like structures takes a lot of creativity, but there is still a lot you can do with just a 2D cut. I'm beginning to see the appeal of a cricut cutter, it is lower risk than the laser yet capable of cutting a lot of the same materials.

    The important thing to keep in mind is that this is not a 3D printer, it is very easy to use, but not very safe.  Fire is always a concern with any tool, 3D printers included.  But here we are actually catching an object on fire on purpose in a controlled way.  It needs to be taken seriously for sure.  However if you are vigilant then this is both a fun and rewarding tool.

  • Fusion 360 for laser cutting take 1

    David Tuckera day ago 0 comments

    I have been trying to work out how to use Fusion 360 to generate laser cut files.  At first I tried just drawing the cut file as a 2D drawing then exporting as a dfx file.  However LightBurn takes all your reference lines as cut lines, leaving a lot of cleanup and making it difficult to later modify the layout if needed.

    Recently I came across this article from Core Electronics and it has pointed me in a better direction.  They generate a 3D object then flatten it out using the align then move tools.  Finally they create a new 2D sketch and project the face of the boxes onto it to make a simplified drawing.  This is much nicer, it lets you use all the tools available in Fusion when designing.  And the output does not require any cleanup so that is a win as well.

    One trick I'm experimenting with in LightBurn is to use the offset feature to take care of the kerf (width of the cut).  This increases the size of your design by the given amount, so when the laser cuts the excess off you should get a final result that is the exact size you originally designed.  This allows you to do all the design work in Fusion without worrying about the kerf.  Keep in mind that if your laser removes 0.1 mm of material then you need to increase the line size by half that, since half the cut will be on the outside of the line in your waste material.  Also be sure to select delete original object or you will get two lines that will be cut (yikes).  In this case I wanted my pivots to be loose so I did not add an offset to them, but typically you would want to offset all lines that need to be dimensionally accurate.

    If you do the math you can see this adds up to the same 0.2 mm adjustment I made on the Inkscape example. In that case I added the 0.2 mm to one tab, but not the slot, in this case I'm adding 0.05 mm to every line, both on the tab and slot, 4 lines adds up to 0.2 mm of added material.

    It took me a while to work out all the kinks but I think this is a much better way to design complex structures.  You could bring the final dfx file into Inkscape to add any artistic details to the object if that is simpler, but this is much easier to to the technical design work in.

  • Inkscape take 1

    David Tucker5 days ago 0 comments

    I thought I would make a small note on one way to use Inkscape to design laser cut files.  Today we will make a simple box.

    First off in the document properties we need to setup a template that is the size of our material.  In my case I'm cutting out 300x300 mm 1/8" plywood.

    Next I find it convenient to setup grid lines.  I'm using 0.1 mm grid lines with a major line on 1 mm.

    When drawing your design the grid lines (and snapping in general) can get in the way at times, you can quickly toggle snapping on and off with the button highlighted below.

    For the most part we are only interested in the underlying vector and not the outline or fill on a line.  You can hide all that by enabling outline mode in the view menu.  This shows you exactly what the laser will cut.

    Rather than thinking about drawing shapes, as much as possible we want to think about outlines.  This is easier to do by differencing objects to create complex outlines.  In this case I want to make a box 25 mm square with tabs.  By defining a cut tool I can slice holes in my box to form the tabs while keeping a continuous edge to the outside of my box.

    Notice the X, Y, W, H boxes in the toolbar, you can use these to precisely size and locate an object rather than just relying on the grid.

    Differencing our small box from our large box creates a new complex shape.  This is much easier than trying to manually draw the tabs inside our box outline then remove unwanted lines.

    If you did it all correctly you get something approximating a box in the end.  A few notes,  my laser has a kerf of about 0.1 mm so I need to oversize my tabs by 0.1 mm on each side in order to get a tight fit.  Also my material is 1/8" thick or 3.175 mm so my tabs need to be 3.175 mm wide.  Or possibly a bit less to account for the kerf, in my case I tried 3.14 mm and that seemed to fit well.  

    Remember the kerf may be 0.1 mm but it cuts 0.05 mm from both sides of the lines.  For tabs that error sums back together to 0.1 mm because 0.05 mm of material is removed both on the tab and on the slot.  However in this case we only need to reduce our tab length by 0.05 mm or somewhere around there.

    I think it turned out ok. I still find Inkscape frustrating compared to Fusion360, but I am slowly getting the hang of it.  You can download the final svg file from here.

  • Gray Scale

    David Tucker6 days ago 0 comments

    I thought I would experiment with etching some wood.  I wrote some code to burn a series of lines from 0-30% power in steps of 0.4% and spaced 0.2mm apart (the long box is 0.4mm spacing)  The lower left box is done at 150 mm/min and using 5 psi of air, the lower right box is running at 400 mm/min and 5 psi of air, and the top left box is 400 mm/min but no air.

    It is hard to see in this photo but the top etch tapers down as the power increases with very little ash, but lots of smoke when etching.  The bottom cut looks like a sea sponge, there are many thin slivers of wood sticking up from the base of the etch that are virtually untouched.  I took a knife and sliced through a layer of the slivers and underneath we have a sloped etch that is similar to the one without air but deeper.

    It may just be the material I am using but I was hoping we would get some sort of a gradient in the burnt wood.  However with air we don't get any gradient, and the scorch marks are very black.  Without air we get a tiny bit of a gradient, but I think this has more to do with the excess smoke and it settling back onto the surface of the wood.

    In short using less air probably improves the look of your engraving a bit, but it does not seem to be essential. Faster is probably better. And you should probably rely on stippling rather than power to convey more than a few shades of color.

    Anyway this was just a first stab at etching, I need to run some more experiments for sure.

  • Particle count

    David Tucker6 days ago 0 comments

    The air finally dried back out so I thought I would test out my particle counter.  I placed it behind my air filter fan, between the laser and fan, and on the far side of the laser cutter as a double check to make sure the smoke is not just clearing up near the fan.

    You can see that between the laser and fan we have a very high particle count, plenty of smoke is generated.

    On the far side of the fan things are much improved, not nearly as low as the base reading of 0-2 when not cutting, but more than 10x better.

    And on the far side things are even better, the fan is definitely pulling the smoke towards itself rather than just cleaning the air around itself.  

    Still in all cases things could be better.  When I produce enough smoke that you can see a steady trail it is clear that not all is being pulled into the fan.  A lot of the smoke is going down to the ground.  And there is still a smell of smoke in the air, although it does not linger for long. 

    I'm sure a more focused collector near the laser cutter would help, and having an activated charcoal filter would be good as well.  It is something I need to spend more time playing with, but it is good that we are seeing numbers and some benefits of the filter I have on there now.

  • Nozzle prototype

    David Tucker05/01/2021 at 04:47 0 comments

    I tried designing my own nozzle inspired by Darko's prototype.  Here is a cutaway view of the nozzle.  I printed it out and tested it but it has two major flaws.  

    With the nozzle being printed tip down the hole spacing is compromised a bit by the elephants foot on the first layer.  I could overcome that by making the holes even larger to compensate, but that is not very portable.

    More importantly the air flow is fairly unfocused, not nearly as efficient as with a single 2mm hole.  This could be improved a bit by elevating the inner wall 1 mm above the outlet, allowing for the outer wall to be brought in a bit.  The down side is the more we do this the more air will tend to flow back up the inner hole.  Also we would need to print this in a different orientation.  Printing it on its side would probably mess up the nozzle, we need it to be very uniform so the air flows straight down.  So we would need to print it upside down, but that would involve a lot of supports or we would need to drop the top of the barrier.

    This would all be simpler if Cura would print single line walls, that would allow us to make the inner wall half as thick.  However for some reason the default is to not print thin walls.

  • Nozzle idea

    David Tucker04/30/2021 at 05:03 0 comments

    User Darko Kmet posted the above render of there new nozzle design in a forum I watch.  It may not be clear from the picture but they have solved the issue of air leaking around the lens by making it a double walled setup so the top is fully sealed.  This makes the outlet larger but it ensures all air goes in the correct direction. It is something to experiment with.

  • Cut above

    David Tucker04/30/2021 at 01:03 0 comments

    Enough testing, time to cut something.  

    First I cut out two squares from 3mm Baltic birch, one at 80% power, 150 mm/min and 2 passes, the other at 80% power, 40 mm/min and 1 pass.  The two pass cut was both faster and cleaner with the single pass cut leaving some connected fibers and ultimately breaking when I tried to push the square out.  It seems multiple passes are the way to go for sure, although this will need more real world testing.

    My second cut was a small Tintin vector that is roughly 20x60 mm (bout the size of your thumb).  This turned out amazingly!  It is crazy how much detail the laser is able to reproduce on 3mm thick wood.

  • Particles

    David Tucker04/28/2021 at 03:42 0 comments

    A while ago I ordered a dust monitor from Bangood.  It is based around the PMS5003 dust sensor from Plantower.  This is a 2.5 micron dust monitor that appears to be relatively accurate.  I was tempted to just buy the sensor and write my own code to read it, but I could not pick it up any cheaper than as a full integrated system from Bangood.  

    One thing to note, others have tested it and found that the PM10 particle count is bogus, it is just an estimate based on the PM2.5 data.  That limits what we can detect, for example it can't measure air pollen count.

    Anyway today was a bad day to test it, we have had heavy rains all day and there is just no dust in the air.  I did run it with the laser and it has no problem picking up on the smoke when held close to the machine.  So far my fan is able to disperse or filter out the smoke.  I will need to spend more time with this on dryer days and see if there is any value to it.

  • More data...

    David Tucker04/28/2021 at 03:32 0 comments

    I decided to run a few more tests now that I'm all setup to measure cut depth.  I ran all of these on the pine since the MDF does not seem to cut quite as nicely.  I ran using my NEJE 30w laser at 80% power and 150 mm/min speed. This was using the Simple Deluxe 1189 aquarium pump as an air source.

    For the first test I cut a series of lines all using a single pass but varying the focus height from 3mm above the surface to -5 mm below the surface.  You can see from this that I probably have my focus set wrong, it appears that being 6 mm above the surface is more in focus than the 5mm I'm currently using.  It is also possible my focus block is not made correctly, I need to double check it.

    For the second test I focused at the surface, but ran 1 to 5 times over the same line without lowering z. Running twice over the same line seems to have a nice improvement in cut depth, from there it is a bit inconsistent.  The 5 pass cut is actually worse.  I suspect I'm getting charred material caught in the cut and that is messing up the measurement.

    Finally I repeated the same experiment but lowered the laser on each pass.  This is the data where I lowered the laser by 1 mm each time.  You can see the same behavior as the last one, there is no significant benefit.  For some reason the 5th pass is making things even worse, still can't explain that.

    Same as above but lowering by 0.5 mm on each pass, this fixed our last pass issue, but otherwise shows no significant benefits.

    Finally lowering z by 0.25 mm.  I suspect my measurements are drifting a bit since my start depth is magically deeper when using identical parameters.  Anyway we are seeing a small benefit to this, at least it is more consistent.

    In summary multiple passes help a bit but lowering the z on each pass does not seem to have a significant benefit on pine at least.  It is interesting that there is an upper bound on the cut depth.  I suspect lowering the laser makes the beam hit the side of the walls more causing a loss in power at the bottom of the cut.


    I did another test, running 19 times over the same line and lowering the cut by 0.25 mm on each pass, just to make sure the above data is not just a hiccup of some sort.  I rand it twice, once at 150 mm/min and again at 50 mm/min (3x slower).  I measured the cuts at 6.94 mm and 7.05 mm, those are within the noise on my measurement.  Basically lowering the laser speed has no benefit in this case.  It could be that this is the limit of how deep we could cut with this laser on pine.  For sure this laser can't cut super thick materials, we probably need to stick with 5 mm ply or thinner.

    One thing I noticed when running this, my target was hanging off the edge of my pan and so the laser would come into contact with the waste board on every cut.  That resulted in a series of burns in the waste board.  You can't quite see it in this photo but the defocused laser spot was about half an inch wide and it still burned the wood easily.  It is giving me newfound respect for the laser, I can see why reflected light is so dangerous.

View all 78 project logs

Enjoy this project?



Raunchy Butts wrote 04/14/2021 at 22:36 point

Really nice effort on the write-up and parts list, thanks. Have you tried machining aluminum on it yet? Very curious to see how that turns out.

  Are you sure? yes | no

Kosma wrote 12/22/2020 at 10:31 point

How You create a gcode in linux? For example i create a 3d object in blender, how make a gcode from object? stl etc?

  Are you sure? yes | no

David Tucker wrote 12/22/2020 at 22:36 point

I'm not sure how to generate gcode from a Linux tool path.  You will need to do some research on that.  I did a small writeup on how I do it using Fusion 360 if you are interested.

  Are you sure? yes | no

Kosma wrote 12/23/2020 at 09:42 point

Interesting tutorial but not in linux. Im not have a windows

  Are you sure? yes | no

David Tucker wrote 12/23/2020 at 19:20 point

Check out tutorials on LinuxCNC, they will have pointers on how to do cam (convert a 3D model to grbl) in Linux.  And since your already on Linux you can consider using this as your sender and controller as well.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates