CNC desktop laser/dremel mill/microscope

The aim of this project is to make a desktop cnc machine with at least A3 working area (420x297 mm), Z < 100mm with sub 300 EUR budget.

Similar projects worth following
A desktop cnc machine with working area of at least A3 format (420 x 297 mm). Z axis

The current plan is to get as good hobby cnc machine as possible within the arbitrary budget of approx 300 EUR (electronics + mechanics, PC not included in the budget). Nothing is exactly written in stone but the general idea is a "bang for buck" machine.

What I want it to do.

(1) Accuracy of about 0.01 mm as a general goal if possible.

(2) Ability to set machine zero precisely (intend to use a USB microscope for setting zero in work-space)

(3) For the dremel-mill a tool length probe for z-axis plus "home" switches (at least) for repeatability. Probably also limit switches for safety.

(4) Reasonably rigid construction.

(5) Different tool options - reasonable power diode laser (more than 2W) + dremel for a start. Pen mount for initial testing + usb microscope also. Possibly all that attached at the same time for making it easy to do different projects.

(6) Reasonably safe to use (if you can say so for a cnc machine that cuts something on program).

(7) Good enough working area and as small as possible external dimensions around that working area.


exported assembly file with all components. Date 18 Jan 2016 snapshot of the plans.

stp - 5.08 MB - 01/18/2016 at 10:00



The main machine parts, kerf compensated, 6mm plexi (or any other 6mm thick material, initial design was for 6mm aluminium).

- 241.39 kB - 01/28/2016 at 10:46



Kerf compensated, cable chain parts (2mm plexi but any 2mm thick material should work, also published in CrabCAD site without kerf compensation)

AutoCAD DXF - 41.36 kB - 01/18/2016 at 09:38



a piece of the machine, provided in a separate file as well just on case. not kerf compensated.

AutoCAD DXF - 23.41 kB - 01/18/2016 at 09:36



a piece of the machine, provided in a separate file as well just on case. not kerf compensated.

AutoCAD DXF - 22.04 kB - 01/18/2016 at 09:36


View all 18 files

  • 12 × SHF16 Mounting brackets for 16mm calibrated steel rods on which linear bearings travel, aliexpress, total approx 20 EUR
  • 12 × SBR16UU Linear bearings for 16mm rods, open on one side as these were a bit cheaper, aliexpress, total approx 50 EUR
  • 2 × Calibrated steel rod, 16mm, length 635mm on this rod x axis linear bearings travel
  • 2 × Calibrated steel rod, 16mm, length 535mm on this rod y axis linear bearings travel
  • 2 × Calibrated steel rod, 16mm, length 250mm on this rod z axis linear bearings travel

View all 13 components

  • Additional optional z plate for Chinese 300W spindle

    Kert01/28/2016 at 10:53 0 comments

    I added a secondary optional Z axis plate with a hole patter for the Chinese 52 mm diameter 300W 48V ER11 collect 3000 to 12000 rpm spindle. This plate was added into the 6mm kerf compensated nesting autocad file. As a result the plate got 20mm larger reducing the potential Z axis movement range by 20mm. The mounting pattern for the spindle is 20x70mm hole patter taking M6 bolts. On the picture the yellow stuff is "behind" the z axis plate and the red thing is this new optional spindle mount.

  • DRV8825 heatsinks

    Kert01/23/2016 at 12:12 0 comments

    I have ordered few more bits and pieces which will take about 4 to 6 weeks to arrive from china. Few more stepper motors and I decided to give a try to arduino as a preliminary driver for the machine. Back when I was looking into it it was not looking like particularly capable or even outstandingly economic way of driving a cnc machine but over the past 8-9 months it seems something has happened. When just browsing around ebay I stumbled upon an arduino uno clone for something silly cheap - like 3 or 4 EUR or so and I had seen some mentioning of an arduino based thing called grbl. So after reading about it a bit it did not seem too bad at all. So I now have an Arduino Uno clone, CNC shield 3.0 and three more stepper motor drivers based on DRV8825 driver ship incoming. I do already have also parallel port based components sitting in a box so I guess I can try out them both eventually. Ideally I might be able to wire everything up in such a way that I can switch between driving the machine with parallel port and with arduino just by flipping a switch.

    The stepper motors I ended up ordering for X and Y axes (some Nema 17 size pretty long things claiming to deliver 50 seem to requite current in the range where these stepper motor drivers will need some heat-sinks to not shut down because of thermal protection kicking in.

    Heatsinks advertised online for these drivers are really small aluminium things claiming to be 11x11x5 mm in size. Because I tend to water cool my GPU's in my PC's I do have various VRM heatsinks sitting around so I plan to use some of these on the driver boards. They seem to be cheaper (when bought as a pack of 10) and a bit more capable than the ones advertised in the net specifically for these drivers. Only problem might be the size. Might have to arrange also some kind of fan over these.

    It seems there is more or less exactly 11 mm between the legs of the driver board and they seem to be sticking slightly higher than the chip itself. While the copper one I have have dimensions of 11,5 x 13,5 x 5 mm and the aluminum one is about 13x14x6 mm in size. Will see once the stuff arrives and I get around trying if I can actually at last make some kind of stepper motor to move - if there is a problem I can always file one edge of the heat-sink down a bit. At the moment I have only one DRV8825 based driver for testing purposes which I was thinking of hooking up to a parallel port interface based board, only problem with that is that my second PC which does have a parallel port is in use at the moment for other purposes and it is inconvenient to test those things at that location where it is at the moment.

    Overall I'm pretty busy at least until end of March so it is unlikely that I get anything done in immediate future. Just the right time to do the orders and wait for the stuff to arrive.

  • Huh, it's been a while

    Kert01/18/2016 at 09:26 0 comments

    Well - I have been rather busy for the past summer, autumn and winter and to be honest I am still rather busy. Anyway I got around to updating the components list at last - this is just the mechanical components (no steppers or electronics) for time being. I do think about this project more or less regularly but lack the sufficient free time to do any significant enough progress worth mentioning in this log. Perhaps I'll get around visiting the laser cutter at last in a month or two with the pile of acrylic sheets sitting under my desk and staring me accusingly.

    I'll see if I can upload also the cutting patterns in here if anyone else feels like giving it a try. If I can then there will be two versions of the patterns - one without any kerf compensation and another set with kerf compensation of about 0.42mm (which is the kerf width of the Chinese 80w CO2 laser ctter present in the makerlab which I can access). The sheets are 400x600mm (which is the working area of that laser cutter) in nesting.

  • Linear bearings

    Kert04/18/2015 at 11:23 0 comments

    16mm linear bearings arrived at last. That should be all the mechanical components from China which I needed for the frame assembly. What I am at the moment chronically short of is free time. Progress is kind of slow if I can spare less than few hours per week for the time being on this project. I have not forgotten about this DIY cnc dream of mine and expect to be able to finish it, just not as fast as I initially hoped to. If any of you want the drawings before I get around to doing the prototype physically feel free to send me a message and I'll upload them somewhere. Current plan is to upload the drawings somewhere once I have made the first prototype and made sure that all that looks ok on digital canvas does so also in the harsh reality which can be a bit less forgiving than ones imagination ;)

  • Some more components arrived

    Kert03/28/2015 at 12:28 0 comments

    It seems some of the packets from China have made it faster than I anticipated.

    However, as noted, I'm a bit too busy atm to do anything with these other than be happy that the packets have made it. Already packing bags and will be sitting on a plane soon. Presumably should be able to dedicate a bit more quality time for this project in few weeks when things have settled down a bit again.

  • Some delays

    Kert03/26/2015 at 08:58 0 comments

    I have not forgotten about this project. Just have been busy with work and will be so at least until mid April. Have a conference to attend and as it usually goes things get busy.

    On the more positive side - anti backlash nuts arrived today and I'm expecting to see the linear bearings to arrive as well within few weeks. The makerlab I was planning to use for laser cutting is a bit behind the schedule, as far as I'm aware, with getting back up and running after moving into a larger building but should also be fully functional soon.

  • Overbudget :(

    Kert03/02/2015 at 09:19 0 comments

    Seems that I am going overbudget. The initial goal was for doing this "undrer 300 EUR" but the material costs before laser cutting will be pushing me up to 325. With the laser fees added I'm hoping to fit within ~350 EUR for the machine with the pen, dremel-mill and USB microscope. A good enough power laser diode + driver would (will?) add extra ~50 EUR to that.

    The material I ordered is about 1.5 m^2 of 6mm plexiglass and 0.85 m^2 of 2mm plexiglass. With the additional cutting fees and VAT this will cost me 95 EUR. Plexi is more expensive than I thought it would be.

    6mm (manual) nesting. 5x 600x400mm and 2x 100x1000mm pieces. There is some spare space which I intend to fill before heading out to cut that stuff out.

    2mm nesting. 3x 600x400 mm was the minimum reasonable quantity so I will have plenty of spare 2mm plexi for making the electronics boxes and other nonstructural components.

    Detailed quote for plexiglass (in Estonian).

    1. 6mm Plexiglas XT kirgas 3050x2050mm 1.46 m2 39.00 56.78

    602x402mm 5tk, 1000x100mm 2tk

    2. 2mm Plexiglas XT kirgas 3050x2050mm 0.83 m2 14.00 11.65

    602x402mm 3tk

    3. Saagimisteenus 1.00 tk 10.00 10.00

    Kokku 78.43 EUR

    Käibemaks 20% 15.69 EUR

    Kokku tasumiseks 94.12 EUR

  • Home/limit switches, electronics mounting.

    Kert02/21/2015 at 13:08 0 comments

    Got around to thinking through the electronics, cable management and what to do about sensors. For X and Y both home and limit sensors are not a problem, for Z-axis I'll probably go with just a home sensor and skip the bottom limit switch - or use something more conservative with space. Current plan is to use inductive sensors - now plexi is not particularly conductive ;) so I will have to glue a little spacer or nut into the locations where the switches are to trigger them.

    There are now a little extra plates under the stepper motors - just in case, as apparently finding long enough M3 bolts can be quite problematic. The basic idea with cable management is that drivers will be located as close to the motors as reasonable, so I will have to route only power and guidance signals to the moving parts of the machine. I do not know yet the exact dimensions of the electronic components so I have provided small mounting holes for boxes in which electronics will be sitting. For cable chain support the intention is to use 30x30 mm L shaped piece of sufficient legth on one side of machine. Similar solution will be used behind the gantry providing signal to the Z-axis. Optionally a compressed air supply can go also through the cable chain (6mm OD 4mm ID hose, ok for up to 4 bar) although I suspect it would be far easier to just hang it down from somewhere above the machine. The 220V power cable for the Dremel (Actually mine is called Combitool 160) will be hanging from above .. somehow. As I am not all keen on putting that through the cable chain as that way it would be rather hard to remove the tool if needed.

    And few more details as well

    Cable chain. I am still thinking if I will use M3 bolt or a similar size blind rivet for attaching that L shaped profile.

    Yellow highlight hole is for inductive sensor and red highlight holes are for putting the box with electronics there. Once the test components arrive and I get around figuring out the exact size of that box.

    Meaning of colors is the same in this figure as it was in the previous one. Z axis top plate.

    X-axis front plate, meaning of the colors same as above.

    So whats next - exporting the component drawings and noting down how many pieces of each will I need, kerf compensation of the components. Nesting them by hand into a 600x400 mm chunks (as I'm not immediately aware of a good nesting program) and then ... then it will be a time to order the materials and after that a cutting time. When the makerlab where I can access the lasers opens in new location early in March.

  • Kerf (laser cut width) compensation

    Kert02/19/2015 at 17:49 2 comments

    Apparently the laser in the Markerlab I'm intending to use uses only and only Chinese closed source control program (with English menus ofc) and a side effect of that is that no kind of G-Code or anything similar access is exposed. Which would be ok, if the laser control soft would have ability to cut with kerf compensation - which it does not apparently. Which leaves only the "hard way" of doing it - by providing CAD drawings with the cut width compensation taken into account.

    Obviously this would be damn tedious if doing it one offset at a time and prone to lapses of attention and human errors. What follows is a description how to minimize errors (at least in the plan in my head currently) in that process and partly automate it (Autocad, in my case but most others that can take LISP macros should work somewhat similarly)

    (1) Export your flat pattern as a 2D drawing. I am using Autodesk Inventor ability to move the drawing in the export process to positive quadrant of X-Y plane and replacing all lines with closed polylines. But practically all CAD programs should be capable of doing something like that. With some additional post-processing might be needed for making all existing lines into closed ploylines and for getting rid of overlapping lines (which would cause the laser to burn that line as many times as many overlapping lines you have). Outer profile and inner profiles in different layers for me and only lines to be cut on the drawing.

    NOTE: Circles remain circles and are not converted to polyline (for me). They must be converted afterwards which is not a straightforward process in Autocad. This: LISP macro can be used for that and seems to work well for that purpose. Load it, select circle and issue "C2P" command from command line and the magic happens making it a polyline.

    (2) A neat LISP macro: is capable of offsetting all selected CLOSED polylines either inwards or outwards by the same offset value (that is why I had to convert regular circles to polyline circles). Obviously mine are all closed lines. I intend to cut them, after-all with a laser. You can call that command by issuing command "OffsetMultiplePolylines" from command line.

    (2a) All INNER profiles will be offset inwards by half of your laser cut line width. The big bonus part is that you can select them all at once and offset them all at once avoiding errors (assuming you manage to select them all, that is why mine are on different layer, I enable only that layer, select all and offset them all, then enable outer profile and offset that separately, that one can be done with a regular offset if its already a single polyline).

    (2b) OUTSIDE profile will be offset outwards by half of the laser cut line width.

    Loading a macro in Autocad can be found Tools/AutoLISP/Load Application... After loading the macro it can be called from command line like regular Autocad commands.

    Top - part before above described kerf compensation process, below after the kerf compensation process. Cut line width is 0.45 mm (based on measuring it roughly in the test parts) meaning the offset is 0.225 mm. If in doubt better under-estimate it than over estimate, I think. Then the holes will be a little larger than intended but if a bolt does not go through a hole if you overstimate compensation it might be an hassle). Now for such a tiny part this is easy, it would be probably even easier to do it just by regular offset deleting previous lines as you go from one side to another. But for a larger part with all the little cutouts, holes for various stuff and so on a manual process would need rather heavy concentration to not miss anything and to not apply offset somewhere twice.

    At least that is the plan so far. We'll see if this will actually work in practice as well when I get around to exporting the flat...

    Read more »

  • Z-axis compensation

    Kert02/18/2015 at 20:04 0 comments

    Good news, it seems. I started digging around to see if it is possible to compensate for z-axis deflection/bend through in my intended software which is linuxcnc and it seems this is theoretically possible:

    "The probekins kins module is a trivkins module with optional Z correction. By default, probekins behaves like the trivkins module.

    The purpose of probekins is to aid milling slightly warped workpiece surfaces, or deal with a machine imprecision, like for instance when milling a PCB when the board is not ideally horizontal after clamping, or slightly bent or warped. The idea is to probe the actual surface at several points covering the whole milling area, and generate Z correction values from the probed values by interpolating between neighbouring points."


    Seems good enough for a start although this particular one seems to be using a linear interpolation. Anyway that means that I will not worry too much about the z-axis bend through for now as long as that is not large enough to cause other issues like, for example, stuck leadscrews or excessive wobble.

View all 18 project logs

Enjoy this project?



Joao Ribeiro wrote 03/02/2015 at 14:00 point

Would you sell this with only the motors any mechanical parts and the plexi structure?

I do not want or need the control electronics and heads (dremel, laser etc) as I have a implementation in mind with slight differences on those parts. I do need the support parts for the heads though...

If you wish to sell the parts mentioned ready for assembly please contact me at: jhjribeiro79 AT yahoo DOT com

  Are you sure? yes | no

Kert wrote 03/02/2015 at 17:20 point

At this point I have no plans of profiting from this project. Once I have assembled the frame and mechanics and made sure there is no serious issues with the schemes (i.e., it is actually possible to assemble it all in practice) I will most likely just publish the drawings somehow and post the exact components links including the aliexpress / ebay items. It would come out cheaper to just order the stuff directly skipping the middle man - any "local" components I'm using should be relatively common and also cheaper when sourced locally. 

If you are in hurry I can publish the current drawings - but be aware that these are not tested in reality so there might be issues with these. 

I have not yet designed the support parts for the heads. I'm hoping to get around to doing that in a week or so. 

  Are you sure? yes | no

koswix wrote 02/18/2015 at 09:29 point

Very impressed with your CAD work there Kert. Particularly interested in your cable snake idea, I may have to steal that!

Looks like you've opted for unsupported linear rails - have you done any calculations on the deflections? That was my major concern with having unsupported rails, and the possible variance in (particularly) the height of the Z axis as the X moves from one end to the other. 

Also, is there a reason to use the open bearings on the Y and Z axis? Seems like an added weak spot that you could do away with as you're not using supported rails.


  Are you sure? yes | no

Kert wrote 02/18/2015 at 10:38 point

Thank you. 

As far as cable snake goes - I'm not entirely sure how this would work in reality but on paper I'm reasonably happy with it. I'll try to find somewhere to upload it - perhaps GrabCAD. I'll post a link here once I figure out how to do it exactly ;)

I have roughly estimated the deflections on x-axis which should be approx 0.2 mm in the middle of these rails. Main reason for going for the open bearings was slightly smaller dimensions and TBH I'm not putting particularly heavy loads on these with the rather modest dimensions of the planned machine. For Y and Z, again a bit smaller dimensions and I spotted a good packet deal on aliexpress for 12 of them and trying to have rather modest budget for the first version of the machine. 

Deflections I'm hoping to be able to compensate in software. That is the only reasonable way I can see of for achieving 10 um accuracy (0.01 mm) I'm wanting to achieve. A structure that would be so stiff to give me that without software compensation would be certainly way outside of my budget. Although to be fair I'm not quite convinced that I am able to achieve that kind of accuracy even with compensation in software. 

  Are you sure? yes | no

koswix wrote 02/18/2015 at 12:15 point

Aliexpress deals are definitely the way to go - a large part of my design is budget based, and when I saw a deal on Aliexpress for 6 x 600mm SBR16 rails and 12 SBR16UU bearings for ~£90 I couldn't resist!

  Are you sure? yes | no

Kert wrote 02/18/2015 at 13:15 point

That sounds pretty reasonable deal. Currently in my budget spreadsheet it seems I am counting on spending 50 EUR on twelve SBR16UU bearings and calibrated round S355 steel rods of 16mm are 3.1 EUR/m including cutting and VAT tax locally. So altogether my current budget for that part of machine is approx 65 EUR, but these rods are not supported from below. I have left myself an option to use 4 rods under the x-axis (which would cost extra) if deflection turns out to be a serious enough issue which should drop it to below 0.1 mm. At that point I suspect I should be more concerned about general rigidness of my machine over what my linear rods do. 

  Are you sure? yes | no

Kert wrote 02/18/2015 at 11:39 point

I uploaded the cable snake files to GrabCAD, standard DXF export, STL export and the originial Autodesk Inventor format components.

  Are you sure? yes | no

koswix wrote 02/18/2015 at 12:13 point

Thanks. I'm pretty sure that would work well, but the number of bolts to link it is a bit off-putting.

I did a bit of googling and found this interesting one - cut from hardboard, no screws/bolts required:

  Are you sure? yes | no

Kert wrote 02/18/2015 at 13:03 point

That seems quite interesting. Should work also quite well it seems. A bit more parts but no bolts might be indeed an advantage. I will think about it some more. That design shown in there should work just as fine if made from acrylic as well. 

Granted, it does not need to be bolts for my draft, might use a piece of stiff wire, plastic rivets, etc, but anything sticking out from the sides might be an disadvantage. M3 screws are around here about 1.5 EUR for pack of 100 and 4.3 EUR for pack of 100 nuts which would be enough for approx 2.5 meters (if using 2 short screws for a connection instead of one longer one) so messing with wire/nails with bent end, etc. might not be worth the trouble. 

2 mm plexiglass is approx 8 EUR/m2 around here so with additional components the rough price ballpark seems to be of same magnitude. 

Thank you for the link. Gives me some food for thought. 

  Are you sure? yes | no

koswix wrote 02/18/2015 at 13:15 point

plastic rivets might be a better option, I'd be concerned about the nuts coming loose  using bolts (not a catastrophic failure, but a pain to have to keep tightening them up.) thread lock or nylock could be an option, but then there's the extra cost (nit huge per piece, but definitely adds up over a machine). 

  Are you sure? yes | no

Kert wrote 02/18/2015 at 13:23 point

Good point. After looking up the data on locally available plastic rivets I think I have found just the exactly right kind of rivet that would fit this thing (SR-3065B platic rivet, 3.1 mm hole, 4 to 5 mm holding thickness). 

  Are you sure? yes | no

federicoortiz12 wrote 02/12/2015 at 13:55 point

I like your project. I built a smaller machine a few years ago and then got tired of it for a while. Now I'm feeling like building a new one capable of 3dprinting, pcb drilling, very light milling, pick and place with solder paste dispenser.

It may seem like too much but I believe it's doable once I figure out a system to attach easily and securely the different working "heads" (ie. extruder, solder paste dispenser, etc).

This is the article of what I built way back

If you need any help let me know.

  Are you sure? yes | no

Kert wrote 02/12/2015 at 17:41 point

Thank you. I will read over it carefully for sure and if I have any questions I will not hestiate to ask them. 

  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