Minamil: a minimal CNC mill. And friends.

Each axis: $̶5̶$8 motor+lead screw, 3x LM6UU, 3x 6mm x 100mm rod, 1/8in hardboard, PC case screws

Similar projects worth following
Developing a cheap small 3-axis CNC mill for $̶1̶0̶$15/axis.

Powered by:
$̶5̶̶ $̶8̶ $10 motor+lead screw CH-SM1545 (price rising - hello supply risk)
Linear bearing cost minimum at 6mm (smaller costs more)
1/8in hardboard is practically free per small area
#6-32 x 1/4in computer case screws are practically free
3x 6mm x 100mm rods per axis can be $1 each or 6mm rod is common in printers etc.

It's working. Selected log entries linked from "Details" below.

(updates: podcast link; enclosure pix) writeup - thanks Bryan Cockfield!

Hackaday Podcast 136 - thank you @Mike Szczys & @Elliot Williams for the kind comments!

This little CNC mill works well enough to produce an eye-candy demo video:

...and mill a fine-pitch PCB:

(nevermind the bottom-left trace of the Dremel® example where I started too deep)

Minamil: a minimal CNC mill

First there was #CDCNC, a highly-constrained just-barely-functional one-off toy built by improvisation with found junk with simple tools.

Here I'm developing an idea that came from thinking about whether or not there is any space between a dumb stunt like CDCNC and a commercially (i.e. efficiently) produced entry level CNC mill. Early results seem encouraging.

In contrast to CDCNC, this is about reproducibility from a simple BoM, economical access to laser cutting, and instructions for building your own sub-mini CNC mill.

Next there may be #"Desk Accessory" CNC Milling Machine. For progress in that direction, with not much more effort in the frame+enclosure department:

(different Z axis in those two pics - part of the not-quite-so-minimal "and friends" part of the project that I haven't written much about yet) 

Telescoping axes allow the enclosure to fold up smaller when parked and expand for operation:



Selected Log Entries

  • 1 × XYZ mechanics follow "Parts source / cost notes" link under "Selected Log Entries" in the Details section
  • 1 × Electronics
  • 1 × Laser-cut parts from 1/8" (3mm) hardboard
  • 1 × frame & counterbalance
    • crude or fancy - first was very rough scrap
    • follow "Build!" link in Details & scroll for simple frame drawing
    • follow "packaging" link for slightly more elaborate example
    • counterbalance: 500ml bottle, beam, pivot, string (flat parts include a hook)
  • 1 × rotary tool
    • included clamp fits Dremel®-like tools with 1-7/8" cylinder bodies like canonical model 395 type {n<=5} or current models 100 & 200, and many clones
    • or adapt removable clamp for something else

View all 6 components

  • Compared to... what?

    Paul McClay09/11/2021 at 02:25 0 comments

    tl;dr: Minimal appears able to produce finer PCB features than common low-end generics.

    (this log entry is imported from the more transient HaD Prize submission where I posted it 20 Aug 2021)

    To what existing baseline can we compare Minamil's PCB milling capability?

    The "cheapest" CNC

    As of August 2021, it looks like the dominant “cheapest” CNC machines for PCB routing[note 1] and other (very) light hobby use are variations of “3018” - a generic design with 30cm x 18cm work area, and typically 4-5cm Z travel. Other “xxyy” designations indicate similar machines with larger or smaller work area. Various sellers offer machines of very similar design built to various levels of cost & robustness. Current examples listed by Amazon include: basic <$150, “pro” ~$200, and “max” ~$300.

    3018: lightest, lighter, light
    images from linked Amazon seller listings

    Smaller machines of similar kind include essentially all the same parts and do not cost very much less.  Construction from shorter lengths of similar linear rods & extrusions may give smaller units greater stiffness.

    I have not yet found where this design comes from, or when. My current best guess is that “CNC 3018” was already generic before English speakers wrote much about them on Teh Internetz. Please comment if you know.

    Not having one myself, I don’t really know what they can do. After a bit of searching I’ve found several mentions of milling/routing PCBs on these machines, but little indication of use for very fine pitch components or high density of small features.

    • At the beginning of this year, Electronics Weekly blogger Steve Bush wrote one of the better overviews of this category that I’ve found so far. That post was the second of a two-part series. In the first part he wrote “However, like so many people before, I am tempted to have a go at modify[ing] the little cnc to [...] have, maybe, 0.2mm accuracy with softer stuff [than aluminum]”. He recommends a youtuber’s videos, one of which details how to mill a PCB “preceisely” on a 3018. That video, from Sep. 2019, shows fairly coarse through-hole features:

      That gives data points at "0.2mm accuracy" and coarse through-hole (0.1") scale PCB features. 

    • YouTuber bitluni’s video “The Cheapest CNC Milling Machine” from April 2020 shows a failed attempt to cut SO (0.05”) pitch features, and then a usable result with 0.1" through-hole and sparsely placed 0603 discrete surface-mount parts:

    • YouTuber HomoFaciens, specialist in building high function from extremely low tech/cost inputs, posted a video “Isolation milling a PCB with the CNC 3018Pro from Mostics” in Feb. 2021. It shows his spindle running with obvious significant runout and he produces a board with coarse through-hole features:

    • Teaching Tech’s Oct. 2020 video “Homemade custom PCB guide using free KiCAD software” discusses design compensation for wide milling tracks and shows a board with coarse through-hole features and thinned tracks:

    • For a non-graphical example, guidance at Hackerspace Nijmegen (currently displaced due to COVID-19) advises minimum 0.5mm separation with between traces: "Milling PCB's with 3018 Chinese Desktop CNC"
    • DIY TECH BROS on YouTube have the cleanest example that I've found so far. Their  “CNC PCB - high quality with the budget 3018 CNC” shows, with dramatic flair (a la WEGSTR CNC?), a clean SO-pitch breakout board. From the photo, I think it looks like their isolation path width is about 0.2-0.22ish mm.

    • In a very extensive tutorial series + discussion "Milling PCBs with cheap Chinese "desktop" CNC-router" spanning Aug 2018 to Sep 2020, author esaj reports "I've made boards with 0.3-0.4mm traces". Although he doesn't focus on fine-pitch parts, his sample photos show some very finely cut traces. If I've figured right,...

    Read more »

  • breakout + bypass

    Paul McClay08/19/2021 at 17:52 0 comments

    update: add photo at end

    (this entry mostly copied from #Minamil: a minimal CNC mill - HaDP 2021 -- the Hackaday Prize flavor of this project -- where it started while I'm working out how to deal with the two projects)

    Lots of chips have power & ground in the same two corners. How about bypassing on the breakout where it can do some good?

    through-holes slightly munged because finished by hand (more about that below)

    Earlier I milled a simple T/SSOP-8 breakout board to validate milling for 0.65mm pin pitch.

    While doing that I checked what I might have in SSOP-8 to put on it and found some MAX4326 op amps on an old laptop mobo. The datasheet recommends two bypass capacitors ",,,as close as possible to the device supply voltage input [and] the ground end of these capacitors near the ground plane...", which is likely serviceable for nearly any 8-pin dual op amp, and also for many other 8-pin packages. [note 1]

    Hmm. Only single-side copper-clad board on hand, so no ground plane. Can I do something with a single copper plane? Doodle doodle... maybe so. First try shown above.

    Yes, there's a loop in the ground trace -- it's really small. I haven't tried to figure at what frequency it would start to matter but I'm pretty sure it's a disregardably large number of 10ᵐᵃⁿʸ Hz for anything in DIP-8.

    Actually this project is supposed to be more about milling than PCB design so... The adjacent traces are 16mil (0.4mm) center-center. The traces and grooves look pretty close to the same width, or about 8mil (0.2mm) each. Each groove cut in two passes about 3mil (0.07mm) apart. That suggests it's cutting about a 5mil (0.13mm) groove. The paths around these little islands where the two outlines diverge a little are not far from 5/8 the width of the rest of the grooves, so that seems to be about right. 

    Cut with a 0.1mm 20° V-bit. That's pretty small runout - which is mostly about the nice spindle - which doesn't really fit the "cheap"/accessibility theme unless you already have one. However the generality of the separate rotary tool allows amortizing its cost, whatever that may be, over many other uses. The point being that the little mill can make good use of a good spindle. Given a nominal tool diameter smaller than the trace separation, FlatCAM generated toolpaths with a little separation between the adjacent trace outlines, which made room for an additional small loop to fully clear the space between the capacitor lands. The space between the capacitor and the chip supply pin was too wide to clear with two outlines but not wide enough to fit another full loop (fit four outlines) so a little island remains.

    LESSON: designing a PCB for isolation milling with simple offset outlines requires more attention to tool path widths - and overlaps. Kinda like designing features as multiples of shell thickness in 3d-printing, but for even multiples of tool size if using simple outlines. Or smarter software that can pick up uncut slivers between offset outlines... which is not trivial... for small pass overlaps.

    SO MAYBE: Geometrically, I think limiting "pass overlap" (stepover) to a tick over (under) 50% might solve a lot of that. (Or a more clever approach like #PCB Isolation Routing Software.)

    To be clear, this isn't all about stuffing a fancy $pindle in the cheapest mill. An old garage-sale Dremel® cut lines of two passes that look like less than half of 20mil (0.5mm) center-center in the prior example: it should be able to cut traces on 16mil centers too. That earlier example was set up for a bit diameter closer to the designed clearance between traces, so the two outlines in each groove were practically on top of each other with very little separation, which gives 3mil back to the Dremel.

    Cutting this bypassed breakout took more tries (time) than really needed if I had a better idea of how to use the tool.


    Read more »

  • To fork or not to fork? (will try to not)

    Paul McClay08/19/2021 at 15:41 0 comments

    I’ve entered “this” project in competition for the HaD Prize. But not this project because contest entry requires a project created after the start of the entry period. So entry requires a new project. But simply cutting over to a new project would cut off everyone who chose to follow (thank you!) this one for an artificial reason. So I’m thinking of continuing to log development here and make the new project a contest-oriented presentation of material from here. If the HaD Prize crew accept the idea.

  • So why go vertical when horizontal was such a win before?

    Paul McClay08/10/2021 at 06:22 0 comments

    When HaD editors gave #CDCNC , the one-off precursor to this project, its 15 minutes of fame, they commended the Z-horizontal layout which avoided lifting the heavy tool with a tiny motor & gave chip clearance for free. So why abandon those advantages?

    It wasn’t the plan. The new axes were going to be about the same size as in CDCNC, so I was just going to swap new parts into the old frame. What could go wrong?

    This design uses 0.5mm pitch screws, instead of 3mm or longer pitch used in optical sleds, to get more linear force from the same little 15mm motors that just barely make CDCNC go. The finer pitch screws are also self-locking, not backdrivable, so the machine will keep position without constant power to the motors -- another benefit, right?

    The ‘what’ that could go wrong is that self-locking leadscrews with little rotational inertia will chatter hard when loaded with force in the direction of motion[1]. So while these screws can drive a fair load upward, opposed by gravity, they’re helpless to let even an empty slide come back down, assisted by gravity, with any useful speed. Counterintuitive, if you didn’t already know this. I don’t recall any mention of it in the tiny slice of CNC lore I’ve read.

    So axes of this design won't be moving anything vertically without adding stuff to neutralize gravity. In which case it makes sense to turn the heavy, slow, and more often stationary axis back up to vertical.

    That adds complexity and brings back the chip-clearing problem. But in trade we get a much smaller footprint.

    Log entry

    Log entry

    [1] from Dr. Orang Vahid Araghi's thesis, page 187 first paragraph:

    The first condition states that the lead screw must be self-locking. The second condition requires that the force applied to the nut be in same direction as the nut translation. The third condition defines a [...] limiting value for the mass of the translating part (depending on the lead screw inertia, coefficient of friction, and geometry of lead screw), below which instability does not occur.

  • So... about that PCB milling

    Paul McClay07/30/2021 at 20:53 2 comments

    Been a little quiet here lately. Here's some pictures while I go find some words to go with them.

    Words about runout & {autoleveling <- homing <- limit switches} vs {mechanical bed leveling <- Z probing non-conductive surface} & um, what else? (update: nix limit switches; I was wrong about why I thought autoleveling required homing requiring limit switches)

    Previously about PCB milling:

  • second look at PCB milling -- looks promising

    Paul McClay05/29/2021 at 06:38 0 comments

    update: Clean traces on  ̶0̶.̶5̶  0.3 mm centers.

    Yesterday's result:

    That, and grid Z probing + bed leveling not logged yet.

  • Feeding metal

    Paul McClay05/27/2021 at 09:09 0 comments

    A first whack at cutting metal (Al) was encouraging, but feed was too slow and it wasn't really cutting. It seemed like a good day to try again...

    1 minute video:

  • Make yer own! (that took a while...)

    Paul McClay05/25/2021 at 09:55 0 comments

    I've been pretty quiet over here while working on spawn project #A Cheap Compact Linear Slide with the idea that it would eventually feed back into this project.

    Eventually is now: InstructableCAD.

    TODO: the 'ible needs more work for appearances - but I think it has sufficient information

    TODO: "Details" update

  • UNCNC: handwheels

    Paul McClay01/06/2021 at 06:42 0 comments

    Just before Christmas I had an idea for replacing the motors with handwheels. For a first try I converted my first XY table and gave the result to my brother. He doesn't CNC but does some very finely detailed model-making.

    It worked better than I expected, even without the backlash adjusters for which I didn't get the springs done.

    This seems like a way to further generalize the generalized slide model

  • CAD for a generalized linear slide

    Paul McClay12/18/2020 at 09:24 0 comments

    (to start with the end: this evolved into a sub-project and how-to included by reference when building the mill) 

    Here’s an Onshape model of Minamil's linear slide mechanism generalized for generality:

    CAD image

    click for CAD

    pmc's cheap linear slide

    See the README tab, which refers back to a couple of log entries here for:

    Please don't expect to have it working two minutes off the laser cutter. Assembly is not really trivial and still really under-documented. Working on it. Things that make it less trivial include: no template for the backlash-adjuster-locking spring yet (but a bit of tape will work) and the inconvenience that you can't build two halves and stick them together because the halves capture each other. That and ordering parts.

    The mill is three of those, so a complete for-publication model shouldn’t be far behind. Modulo Christmas. And other stuff. So not promising super-soon. But working on it...

    Update 11 Jan 2021

    Writing this to get it out of my head for now but revisit later: for modeling these parts I've used a semi-arbitrary minimum feature size of 3mm. For example, the clamps keep 3mm material across the tops of the bearings -- a stressed area. Minimal features like that will be stronger in thicker material and weaker in thinner material. In principle, the minimum dimension could shrink with thicker material and should grow with thinner material. But meh. But some stressed features shrink with thinner material and grow with thicker material and that creates a perverse ~quadratic weakening with thinner material. While that's not great, I don't promise thinner material will be great, so meh.

    But I've come up with a simple solution -- "simple" apart from re-refactoring the CAD again which I should stop thinking about for now. The current design starts with the working parts in the middle of the "sandwich", then adds "bread" of variable thickness to each side. If the top-to-bottom thickness of the "sandwich" holds constant, then the space in between decreases with thicker material and increases with thinner material, and the height of the perpendicular end plates may increase/must decrease accordingly. So endplate area can vary inversely with material thickness; and minimum feature size -- in the plane of the material -- can vary with area available; and minimum feature cross sectional area can stay closer to constant across a range of material thickness. As a beneficial side effect, the constant exterior dimension would simplify making anything into which one of these units should fit.

    In other news:

    Better (i.e. some) assembly doc, handwheel configurations for more general generality, simplified stacking, and easier generation of cut vectors from variable parameters coming "soon". Sooner if I stop thinking about this...

    I checked the first try at handwheel slides with a dial indicator and got some astonishing (to me) results. More about that "soon" -- if warranted after I get a build from this model and an indicator together.

View all 33 project logs

Enjoy this project?



AJonkhart wrote 06/02/2021 at 19:37 point

This is going to be my first aluminium project for my WorkBee cnc

  Are you sure? yes | no

Paul McClay wrote 07/27/2021 at 04:34 point

(two months later...)

I'm sorry I didn't see this before - I didn't get any notification when you posted.

Did you mean that you were thinking of cutting the flat parts from aluminium plate? If so, I would very much like to hear more about that!  

  Are you sure? yes | no

Ahron Wayne wrote 01/08/2021 at 03:35 point

The closeup revealed when you zoomed out on the gear and it was on your fingernail was fantastic and the video kept getting more and more impressive as it went on. Not just impressive but just full of eye candy and I'm absolutely stunned that the CNC wasn't even the focus of it but obviously wow, look at what it can do! Seriously, you should win all sorts of prizes for this if you haven't yet.

  Are you sure? yes | no

Paul McClay wrote 01/08/2021 at 22:47 point

Glad you liked the vid! - that was a bump for #the Metaproject of describing projects.  This project hasn't drawn much attention beyond spillover from #CDCNC 's 15 min of fame -- but I'm kinda sandbagging until simplification and documentation meet in the middle somewhere. I guess I'm trying to take most of the "hack" out of building your own. :)

  Are you sure? yes | no

Dan Maloney wrote 09/14/2020 at 20:18 point

I like the idea that you're building on the ideas tested in the CDCNC. Looking forward to seeing what you come up with.

  Are you sure? yes | no

Paul McClay wrote 09/15/2020 at 04:43 point

Hi Dan - thanks for skulls! Sorry to keep you waiting for results. While slow shipping and other life block progress for a while, I think early results give [me] good cause for confidence.

  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