Thursday, July 18, 2019

DIY CNC desk plotter

The goal

Make small CNC "desk" plotter.


Mostly for making PCB's, but can also do aluminium and plastic/plexiglass.

Final view

I don't have detailed log from the building process (it was over a year ago), so treat this post as a gallery and a source of inspiration for your build!

Normally plotter is behind this shield made of plexiglass. Yes I do own a cat ...

Front view, whole CNS is 30x30x30cm.

Additional plexiglas shield is mounted also on the back.

Wires are also behind thin plexi. I've used hot-air gun to form very thin plexiglass.

Double sided tape holds the DC step up converters.
On the left from motor shield you can see mosfet for spindle speed control.

On the left you can see my old BT module that is connected to arduino. Yep my CNC control is wireless.


True first run!

Effective working are is about 16x16cm. On the Z-axis I've got like 5cm.

Close up. Shapes were set to double passes.

Under the microscope you can see double passes around the edges.
Letters are 9mm tall.

Pretty precise!

I've used V-shape tool, that's why the deeper line is in trapezoidal shape.

It can do aluminium, but it's really slow and really really loud.

V-shape 30 degrees, 0.1mm cutter tool.

PCB, 0805 or something smaller (it was some time ago).

Pads made for MiniUSB socket.

Holes made by cylindric 0.5mm tool. This will be double USB socket.

Reverse view of board from previous image.



Also China! 8mm.

Guess what?



Arduino + shield for stepper mottors.

More China!


I wanted to have possible smallest CNC, so I've made motor handles by my own.

Yep, they are thin (about 2mm), but still it's precise enough.

Trying to figure out where to put the Y-axis frame.

I've cut everything by hand, so the frame was not very precise at this point.


To make very small T-table, I've cut (manually) 4meters long U-type profile into about 19cm pieces.

Then I've screwed them together in pairs of two.

The pairs are screwed to wider U-type profiles, so top side can fit perfectly into X-axis table.

Pretty neat, rigth?

T-table can be exchanged in any minute. I've put additional piece of metal sheet to close the gaps between pair of U-profile.

Side view.

Despite it looks not so good, I've got super precision with this setup!

Oh this picture, metal sheet purpose looks more clearly.


Thos are square type profiles, screwed down to 8mm shafts.

KISS - keep it simple stupid!

Bottom view.


X-axis looks typical to other similar designs, but ...

... I've flipped the Z-head, so the center of the mass i slightly in the back of the pollter.



As you can see flipped Z-head is "deeper" into the back of the frame.

To make it light as possible, I've used 2cm square aluminium profiles screwed together.

The Z-axis motor "just fits". It doesn't need to be screwed down.

"Pencil test"

Final view with spindle.

Yep, this is the Z-axis motor mount.


On the left there is DC power socket and safety switch on the right (connected to end stop's).

The probe is made of ... microswitch. Still the precision of levelling the table in quite good.

Top cables and shield made of hot-aired thing plexigalss.

End stops also have their shields.

Power supply

This is old HP printer power supply.

It's sufficient to make good torque and high RPMs on the spindle.

That's all folks!

If you want some more details, leave a comment or sth.


  1. Some nice tips. Thank you for sharing.

  2. Great Build!! Approximate cost is???

    1. Thanks! I didn't track the expenses because the build was quite extended in time. If you'd like to estimate it more-less, just sum up stuff in "Parts" section of this post. The most expensive was the spindle and stepper motors, then the shafts, rollers and aluminium profiles at the end.

  3. i have the hardware built already(little variations though) but i could not find software that works reliable...what are you using for code?

    1. Hey, I'm using bCNC. It's simple yet powerful software, e.g. it has probe and autolevel function which I always use, and it works without any problems with arduino CNC shield. I'm using it mostly on linux virtual machine and connect to my CNC via bluetooth (bCNC sees it as serial port). It also supports homing (if you have end stops connected) and calibrating using camera (but I've never use it). Check it out!

  4. Hi, I am also planning to make my first very similar to what you have done. How is the performance with the 8mm leadscrew and shafts play wise? I was told that using a T8 , 500mm leadscrew unsupported design is not a good idea. Ideally I would love to go for supported one, but cost is a factor for me, so wanted to know how bad is it? Thanks, and awesome work ! :)

    1. Hey, If I would make this CNC again, I'd rather use 10mm leadscrews, the head with Z axis is quite heavy and because of that Y axis move is more parabolic than linear, so the spindle it's lower towards the center of Y position. This is more because of the shafts, not the leadscrews, but if you'll be making 500mm I would suggest to go both with 10mm. In my case the parabolic move could be corrected with probe and table autolevel. For me also money was a factor, this build was taking a long time to finish :) But I think if I'd bought everything at one time, I wouldn't have such fun as making it. Basically I was buying one necessary part at a month (e.g. motors) and then the rest of the time was for thinking how can I use it cheapest way, thanks to such approach my custom removable T-table was born. So take your time and don't hurry, just enjoy the build process!