Chad, the Desktop CNC Mill

Spending hours soldering perfboard has done my head in for years. Chad is the perfect solution, allowing quick PCB prototyping.

Public Chat
Similar projects worth following
Really just another desktop PCB mill project. I designed this from scratch, with a lot of inspiration from those cheap Aliexpress mills.

Still working on the machine, I have managed to get a few nice boards off so far, but I'm still looking to improve the machine with things like a better power supply, and potentially some sort of enclosure.


Chad started after a four hour session of soldering a small perfboard, after yet another misconnected wire. Chad is just like every other custom PCB mill around, allowing quick prototype PCB turnaround. He has been designed to be primarily 3D printed, while still remaining rigid and accurate. Alongside this, the design has been made as cheap as I can get it.

Much of the design inspiration comes from thingiverse user pheneeny's AM8 3D printer design, here.

Primary frame components are 2020 aluminium extrusions, with other frame components 3D printed. Motion hardware, and other components are easily available on Aliexpress.


A detailed 3D model of the machine can be found here, in the "Model One" Branch. Models can be exported for 3D printing by right clicking, and clicking export.

It is worth noting that a few parts are missing from this model. Most importantly, the aluminium extrusions are held in place by these little brackets:

2020 Angle Bracket

2020 Angle Bracket

These brackets can be seen in the photos of the final build.

To control the machine, a cheap Aliexpress control board has been used. This link is the listing that I purchased a control board from, however this is now a more updated version. This board is powered via an old ATX power supply from a PC. This can lead to issues with the spindle causing a current spike and shutting off the power supply, which is easily avoided by slowly ramping the spindle speed.


FlatCAM is used to generate GCODE from Gerber files. A tutorial by member esaj on the Electronic Unicycle Forum (here) has been incredibly useful in determining settings and whatnot.

BCNC is used to send commands to the machine. GCODE is loaded in, and autolevelling is performed via this software. In future I hope to migrate from this, to a platform that allows me to send GCODE remotely, meaning I would not need to set my laptop up next to the machine.


Currently, the results from this machine are a lot better than I imagined I would get on the first revision. Check out the album for some photos of my results.

Thanks to Lindsay of (Supplies to New Zealand only). Lindsay cut all the aluminium channels for this machine, and they have been fantastic!


Specifications for 2020 aluminium V-slot channels. Some must be drilled and landed, and some must be tapped. This allows for the frame to assemble nicely. This diagram is what I sent to Mecha 4 Makers to have fabricated.

JPEG Image - 1.45 MB - 07/14/2020 at 08:37


  • 3 × 40mm Nema17 Stepper Motor (42BYGH) X/Y/Z stepper motors.
  • 1 × GRBL CNC Control Board Some sort of GRBL based control board. I have used this one:
  • 1 × RS-775 Motor Actual spindle for milling. Any spindle will do, but the Z-axis would need redesigning for anything other than this motor.
  • 1 × ER11 Chuck Mounts to the motor, and clamps milling bits. You can get this and the RS-775 motor as a set.
  • 8 × LMK10UU Linear Bearing These are used on the X and Y axes, to guide the assemblies along the linear rails.

View all 39 components

  • Another Successful Board!

    Sam Griffen07/09/2020 at 11:34 0 comments

    Today was the second successful test for Chad. I have been working on an anemometer for this project, and needed to have a PCB for the control board. For more detail on the actual board, I have an upcoming project log in that other project. Here I just want to talk about the milling results, and how I got them. First up, heres the board:

    I have given it a .... light .... sand (Note to self, use finer paper next time) to get rid of some nasty burrs and whatnot. There is an annoying interaction between the ground pour and the traces, causing an annoying area of copper between the trace and the plane. I think this could potentially be remedied by reducing the clearance between the ground pour in KiCAD and the traces?

    When milling the actual traces, I definitely went too deep into the copper. I had problems with the first attempt, with the bit not breaking the surface of the copper, so swapped in some fresh copper and increased the Z cut distance. I ended up cutting in about 1.05mm, as a multi depth cut. By about 0.09mm the copper was well and truly isolated, which is what the original forum post I read about FlatCAM recommended. In future I will cut shallower, and possibly do a second run over with a deeper cut distance if there are issues.

    Drilling has all been done at 0.8mm, however some holes need to be wider than this. I plan to just go in with a hand drill to make these holes bigger. Possibly in future I could mill the mounting holes? However this seemed scary, and I have opted to steer clear of that for now.

    Cutting out the board was a real pain. Because I really wanted the nice round corners, I had to edit export the cut layer from KiCAD, and process it as a seperate job in FlatCAM. Once processed into a FlatCAM geometry object, I had to use the edit tool to delete the inner path. While in the edit tool, I also drew a rectangle overlapping the cutout path, and used the cut path tool to essentially create fingers to hold the board in place.

    I guess it wasn't too bad after this, I just needed to process the geometry into a CNC job. I have a 1.6mm endmill that does a really good job at board cutouts. The only issue here was that I again went too deep. 2.1mm is far more than the PCB, and I should just stick to about 1.8mm, that seems to get through the entire board quite easily.

    The main takeaways from this board are that I should trust myself, and go for shallower cuts into the copper, and into the board in general. Also, I really need to get some sort of vacuum to get rid of all the dust as Chad works, to both clean up the outcome, and to make sure I'm not inhaling bad things left and right.

    If anybody reading this has any pointers on things I can do differently, I'd love to hear it!

  • Fixing Play in the Spindle Mount

    Sam Griffen07/03/2020 at 11:03 0 comments

    The original build never gave incredibly good results, with the bit either not cutting into the copper, or pushing too far through and ripping the board up, not creating viable traces. When it did break the surface, there was a lot of vibration in the tool, causing inconsistent lines. This is shown in the image below:

    After some prodding, it seemed that there was a lot of play in the Z axis, due to the shaft coupler having a spring, rather than being completely solid. I had used a coupler like this one:

    Aluminum Flex Shaft Coupler - 5mm to 10mm - BC RoboticsThe culprit of Chad's inability to make nice boards?? I have a couple of solid aluminium couplers in the mail to replace the Z axis coupler, however in the meantime I have printed a placeholder coupler in PETG, and fitted that to the axis. No longer is there play in the tool, it is mounted very rigidly, and the results are very clean:
    First test with placeholder coupler. (Board is a supercapacitor charge circuit)

    The resulting board is significantly cleaner, and would actually be functional. I'm excited to mill further circuits, I will update once I have a larger board milled.

View all 2 project logs

Enjoy this project?



gordon wrote 07/15/2020 at 10:01 point

great project! have you figured a toolchain to mill pcbs in sections? for example if my workspace is limited to cover only 1/4 of a desired pcb size. 

flatcam allows easy placements of indexing/dowels, but i am a bit stuck when it comes to slicing the geometries to mill in parts

  Are you sure? yes | no

Sam Griffen wrote 07/16/2020 at 09:53 point

Thanks! I haven't actually looked into that sorry, but I will let you know if I ever do.

  Are you sure? yes | no

smeek001 wrote 07/12/2020 at 19:39 point

the email that features your product was titled  A PCB Mill of Your Very Own.  Do you plan to share your build files for your machine?  I would like to build one myself.  Thanks, nice looking machine!

  Are you sure? yes | no

Sam Griffen wrote 07/12/2020 at 20:41 point

I certainly can! I wasn't aware my design had appeared in an email. I'm just starting university again this week, but I can share all my files, my BOM, and write up my build process this week. I'd love to have other people build machine!

If you want to get all the files yourself though, I think you can download them from the OnShape design linked in the "Build" section of the short write up I do have, but that is pretty vague.

  Are you sure? yes | no

smeek001 wrote 07/13/2020 at 01:38 point

OnShape says the document was shared by a link and is view only.  Are the files too big to send by email?   Or maybe you could share via dropbox.  Looking forward to building.  Thanks.

  Are you sure? yes | no

Sam Griffen wrote 07/14/2020 at 02:35 point

Hi smeek001, I think I have set the OnShape document to allow you to export the components now (Previously I had forgotten to set the tickbox). I have updated the link in the details section, but it is also here:

I will work on a BOM in terms of motors and control boards and whatnot, and upload that to the components section of this project. Feel free to flick me a message of comment if you have any questions!

  Are you sure? yes | no

Sam Griffen wrote 07/14/2020 at 08:44 point

Okay, the components list should be complete as per the OnShape model. I have tinkered with the machine a little, so if you build this machine you'll probably need a couple extra of each bolt and nut. The only thing missing from the model, BOM, and documentation is how I have done the autolevelling, so I might write up a log detailing that over the weekend.

I am happy to write up a build tutorial if that would be useful, just let me know! I am also really happy to reply to any messages or anything like that (I think this site has a messaging feature right?)

  Are you sure? yes | no

Jim Thompson wrote 07/09/2020 at 01:02 point

Nice job.  A couple years ago, I started to do the same thing.  But when I priced the parts, I discovered that it would have cost me more than buying a complete kit!  So that's what I ended up doing, and have been pretty happy with the performance.

The improvement you got from replacing the "spring" type flex couplers with something more rigid, is surprising, but I'll keep it in mind if I have similar problems.

  Are you sure? yes | no

Sam Griffen wrote 07/09/2020 at 01:05 point

Thanks for checking out my project! Yeah, I think this ended up slightly more expensive than a kit to be honest, but I was more interested in building from scratch, even if it cost slightly more.

I was also incredibly surprised by the improvement I got by replacing the coupler. I had planned to redesign the entire machine to be a lot smaller, and hopefully improve the rigidity, but figured I would try that first. It's always something small and dumb isn't it.

  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