The previously shared Z axis was very much a rough proof of concept. It worked well enough to not demand revision while I worked on other aspects of the project. Two prior attempts to fix its faults proved out some ideas but introduced other faults. This version seems like time to say "build this not that".

Beware vocabulary: I haven’t found a reliable escape from using “tool” to mean both “Dremel®-like rotary tool” and “endmill”. Context or bust.
What
Vertical axis for the CNC mill described in this project.
Why
Because I don’t already see tragedy in this attempt to fix faults of earlier attempts to fix faults of the previously published version. That version worked well enough to warrant sharing so you can make your own copy of a capable tool. But it was a placeholder waiting for a better replacement. An earlier log entry describes problems with the first version, and solutions that worked in earlier attempts to come up with the better replacement. This try keeps the solutions without stepping in any new poo that I’ve smelled so far. Of course lots could be different and I’m not saying any of it is “best” or “right” or "done" but I'm pretty happy with it for now.
How
Briefly:
- Build X+Y stage
- Choose a rotary tool
- Choose clamp configuration
- Print parts
- Collect other parts
- Assemble
Biuld X+Y
You don’t really have to, but I think building the X+Y stage first will help because there are more words and pictures about how to put that together. Familiarity with detailed information there should help to make sense of less detailed info here.
Choose a rotary tool
In keeping with the low cost/less stuff theme of this project, the Z axis is designed to hold a vanilla Dremel®-like rotary tool for a milling spindle. Clamping and releasing the tool is meant to be easy, so you can use the daily-driver you may already have and drop it into your little mill when you want to do a little milling.
What will work?
The tool clamp is designed around a tool body pattern set by Dremel (i.e. Emmerson) in a prior millenium. I don’t know of any simple name for the type except that they look like this:

Many Dremel tools that look like that are called “MultiPro”, but the form was up to “type 5” before they were called “MultiPro” and not all “MultiPro” tools look like that. Current Dremel products have mostly moved on to different shapes, but Dremel still (mid-2025) sells their low-end 100 & 200 models in this style, but you probably don’t want one of those because they lack speed control, but several generic labels are selling 5-speed clones that look like they come out of the same molds as used by whoever makes Dremel’s 100 and 200 units these days. The basic pattern includes a straight cylindrical body segment between a taper down to a threaded nose below and a fatter section above that includes brush bosses and a vent or switch at a fairly uniform height.
The tool-carrying sled
- clamps around the cylindrical part,
- clamps a ring screwed on the tool’s nose, and
- allows clearance for the extra stuff above including access to the switch or vent at the level of the brushes.
Like this:

For tools with the switch between the brushes, clip out the lattice for access.
For a Dremel 300, clip out the thin bits around the spindle lock boss.
The left four models fit as intended. I’ve used the first three and @janvorli on the Discord server has verified that his Dremel 300 (the fourth) fits. For tools with the switch between the brushes, clip out the lattice for access. For a Dremel 300, clip out the thin bits around the spindle lock boss.
I haven't tried the questionable two on the right, but only looked at photos and marked features that differ from what the clamp was designed to hold.
The long nose of the “type 3” on the right will shift the tool body upward. That might work fine. It looks like the switch would be reachable over the top of the sled body. The clamp band is meant to wrap over a cylinder; cranking it down with the bottom edge unsupported … will probably work ok.
The gray soft-touch overmold on the “type 6” extends into the clamping area. That will either skew the top edge of the clamp band or shift the tool upward which will skew the bottom edge of the band, as already mentioned for the “type 3”, and also the nose clamp – assuming the nose ring is still captured at least partially under the clamp. Some combination of cutting away the gray overmold, splitting a few layers off the top of the clamp band, and/or stretching the vertical offset of the nose ring might improve the fit. “Type 4”, by the way, is the earliest direct fit; earlier “type”s of that body style (long nose like this “type 3”) maybe work fine if the clamp band handles the skew ok.
Match nose ring/clamp to tool
For the tools that fit, the cylindrical sections are almost but not quite the same diameter. The slight differences slightly shift the tool centerline. To keep the tool axis vertical (i.e. parallel with the Z motion axis), the STLs here include nose rings sized to hold the nose directly in line with the different sizes of tool body, and clamps to match the different rings.

Nose clamp parts include:
- unlabeled “generic” ring and clamp, which fit the WEN tools and, I suppose, other generic tools with similar body shells
- “300” parts match a Dremel 300 – at least @janvorli’s Dremel 300; that ring is marked “300”
- “MultiPro” parts match at least the one MultiPro-type tool that I’ve tried, and maybe/hopefully more; that ring as marked "MPro"
For convenience, the nose rings also set the axial position of each tool so that the cylindrical part of the body falls under the clamp band.
The fits are defined mainly by the tool body diameters: 47.6[1] mm for the generic, 48.6 mm for the 300, and 46.8 mm for the MultiPro. Measuring wouldn’t be a bad idea, and I’d appreciate feedback if you measure different diameters for similar tools. Also the "generic" ring is modeled with 19 mm x 2 mm thread while the other two are modeled with 12 tpi per Dremel brand dremels. Apparently the two are similar enough to be interchangeable in practice.
(Maybe I should model and label the nose parts by diameter instead. But that’s not so simple because there’s a two-dimensional space of diameter and vertical offset. Given a range of diameters, the vertical offset would be easier to trim, pad, eyeball, or edit.)
[1] this is slightly wrong -- to be slightly corrected another day
More than one?
Very fine work requires attention to set up a cutting tool in the rotary tool with sufficiently small runout. That slows down tool changes, e.g. to finish details after roughing. With some loss of “low cost/less stuff”, you can use another rotary tool and keep the careful low-runout setups undisturbed while changing tools by swapping spindles (and offsets).
If you anticipate switching between different rotary tools: are they the same or different kinds?
If you expect to swap between different kinds (i.e. different body and nose ring diameters), remember that for the next part about clamp screws/nuts.
Choose clamp screw configuration
Here is a decision point about parts you’ll need and how to put them together.
You should know what rotary tool(s) and nose ring/clamp parts you expect to use. Otherwise please read back a step.
- Most simple:
If you plan to mount up one tool once and leave it there (i.e. change rarely), then you don’t need any thumb nuts or specific assembly sequence. You can just drive the clamp screws directly into the printed sled and expect that they will hold if mostly left alone. The plastic threads will be vulnerable to wear if exercised frequently.
- Simple:
If you want to easily clamp and release a tool that you also use for other things, or switch between tools that have the same diameters of body and nose ring, then you’ll need two thumb nuts, and attention to sequence of assembly.
- Also simple:
If you may be switching between tools with different body and nose ring sizes, then you’ll need four thumb nuts, and attention to sequence of assembly.
Print parts
download minamil3dp-Z-STLs-v0.9.0.zip from Files section
filenames: "minamil3dp-{part}-v0.9.0.stl"
FDM/FFF/filmatent 3d printing assumed.
Some part details have assumptions about slicing & printing baked in. But I haven’t done much to assess which details or assumptions really matter. So if you just print stuff, you might get parts that work fine.
To align your prints with design intent, for whatever it’s worth, slice & print as follows:
- Mostly plain PLA
- it’s cheap, and
- specs I’ve found suggest vanilla PLA is more stiff than “stronger” materials short of fiber-filled exotica
- And a little (~2g) PETG or other temperature-tollerant material for a few hot parts.
- 0.4 mm nozzle
- 0.2 mm layer height
- 0.45 mm shell thickness
- Classic perimeter generator (i.e. not Arachne – except exceptions)
- fill gaps off (or filter out < 5mm)
- detect thin walls off
- 10% gyroid infill
- four solid layers top and bottom
- no supports (with one exception)
- see part notes for number of perimeter loops
Why any of that? Read about “what ever was he thinking?” here.
The base and sled have modeled internal structure. Like this:

Slicers that I’ve used (Prusa, Orca) see the union of part and reinforcement as a single simple solid by default. See notes below about getting the internal geometry sliced and printed.
These internal structures follow a project theme of trying to get strength from shape instead of many perimeters and dense fill. These internal structures aim to concentrate rather than distribute additional material for reinforcement. Are resulting parts actually stiffer to operating loads than parts printed with more perimeters up to similar total mass of plastic? Maybe. Is the difference worth the extra design effort? Almost certainly not. Having done it, I have to admit the result is more vanity art project than engineering.
Notes per part:
- Zsled
- slice flat end down / pointy end up
- two perimeters
- for reinforcement:
- split object into two parts (vs two objects)
- for internal part, set:
- 100% infill (fill type probably changes to rectilinear – thin fill optimizations ok)
- one perimeter (i.e. different number of perimeters than main part)
- Zbase
- slice flat
- one perimeter
- for reinforcement:
- split object into two parts (vs. two objects)
- for internal part set two perimeters (i.e. different number of perimeters than main part)
- Zclampband
- slice vertically with
- curved edge on plate
- flat sides of screw holes on top
- support bridges of upper band
- check that bands slice as continuous loops
- may require reducing “gap closing radius” to e.g. 0.02mm
- see pix:
![]()
- slice vertically with
- Zclamptoggle
- print two
- slice with largest flat side down (screw hole at angle)
- at least two perimeters
- Znosering-{tool}
- slice big end down
- three perimeters
- Arachne works well
- Znoseclamp-{tool}
- slice flat/loop side down (screw holes vertical)
- three perimeters
- Zpulley
- print in PETG or other temperature-tolerant material
- slice with larger flat end down
- Zinsert
- print two
- print in PETG or other temperature-tolerant material
- slice on end / screw hole vertical
Collect other parts
Non-printable parts:
- see also here for more about each item
- some details there contradict this info here – but I can’t update that until I’ve posted this
- 2 x rods: 6 mm x ~160 mm (157 mm ≤ length ≤ 164 mm)
- 4 x bearings (3 x would work and might work fine)
- 28BYJ-48 geared stepper motor
- 5V windings
- convert to bi-polar
- just one – mount on either side
- 4 x m3 x 20 mm screws
- head diameter may be constrained to ≤ 6 mm, depending on configuration
- 4 x m3 washers
- designed for 9 mm diameter
- this is a little complicated because it turns out my m3 washers are not ISO standard but “large” per DIN 9021
- ISO washers (7 mm) probably work fine
- If 7 mm doesn’t work (clamp toggle breaks around undersize washer), print new and try
- less clamping force
- m4 washer (9 mm)
- #6-32 washer (~9.5 mm)
- 2 x m3 x 8-12 mm screws
- semi-arbitrary length
- shorter may work fine
- longer will fit, up to 25 mm
- 0, 2, or 4 x m3 thumb nuts, depending on configuration chosen above
- max diameter < 12 mm (i.e. not wingnuts)
- through hole (i.e. not blind)
- string -- notes in "Hoist" part of "Step 4" in this 'ible. Or TMI.
- zip ties
- need 12
- but multiply for do-overs, dis/re-assembly, etc.
- OPTIONAL: limit switch
- nevermind screws because attached with zip tie
Build
Hopefully, between the X+Y build info and spending lots of words on preliminaries above, it will be ok for this part to be relatively sparse.
- Build the sled & tool clamp
- Bearings
- Eyeball the “V” faces of the bearing pockets for printing defects. If you press a bearing hard into a pocket while rolling it a bit, it should polish a shiny straight line on each side of the pocket. Low spots in a mostly flat pocket side are ok, but stop and look closer if the bearing is only touching a couple of high spots. These were printed in a different orientation than the X+Y parts, so you might see different kinds of defects.
- Check that zip ties fit in the four corners.
- Secure the bearings.
- You can check bearing alignment by sliding a rod through each bearing to see where it meets the other bearing on that side. It won’t be immovably rigid, but the relaxed center of its range of wiggle should land right exactly in line with the next bearing. If not, cut the bearing loose and scrutinize that corner of the sled. When both bearings on a side are solidly secured, a rod should slide smoothly through the pair.
- Clamp
- Slide the two clamp toggles through the ends of the clamp band.
- The clamp band should flex enough to slide in through the side of the sled.
- pic:
![]()
- Once the band “pops” into place, all three parts will be captive inside the sled body.
- Remember choosing how many thumb nuts to collect?
- 0 thumb nuts
- Run a screw, with washer, through each toggle into the sled body. Leave about 5 mm clearance each side.
- Attach your choice of nose clamp with two more screws and washers, leaving clearance for the nose ring.
- If convenient, this is a good time to put the nose ring on your rotary tool, fit it into the clamp and adjust the screws to moderate clamping pressure with equal gaps under the ends of the body and nose clamps. Adjust by slacking one side before tightening the other. Then back each screw out a turn to remove the tool for now.
- 2 thumb nuts
- Choose which side you want to make adjustable – probably by your favored hand.
- Drive a screw, with washer, through the other toggle into the sled body, leaving about 5 mm exposed thread.
- Drive the other screw through the sled, band, and toggle from the back of the sled. Make sure the screw actually goes through the hole in the band, so it doesn’t have to make a new hole for itself. With care to avoid stripping the plastic threads, tighten the screw head solidly against the back of the sled to jam it in place.
- Repeat for the nose clamp.
- Put washers and thumb nuts on the two exposed screws.
- For example: "fixed" on one side and adjustable on the other:
![]()
- If convenient, this is a good time to put the nose ring on your rotary tool, fit it into the clamp and adjust the “fixed” screws so that both clamps have equal gaps under their ends when you crank down the thumb nuts. Slack the thumb nuts before adjusting the “fixed” clamp ends to avoid turning the screws while they’re loaded. On the adjustable side, I’m not strong enough to crank the thumb nuts too tight. Slack the thumb nuts to remove the tool. You shouldn’t have to mess with the “fixed” side anymore.
- 4 thumb nuts
- Drive all four screws through the sled from the back, taking care to make sure the body clamp screws go through the holes in the band and toggles. With care to avoid stripping the plastic threads, tighten the screw heads solidly against the back of the sled to jam them in place.
- Put the “generic”/middle size clamp on the nose.
- Add four washers and thumb nuts to the screws.
- Adjust at will. It’s a little more fiddly to adjust both sides when changing between different size tools, but it should be pretty durable. In principle, you could swap nose clamps to match different size nose rings, but the middle-size clamp seems to fit all three rings well enough.
- 0 thumb nuts
- Bearings
- Prepare the base
- Check the three “V” saddles for the rod on the left side.
- On the right side check the short flats at the bottom of each saddle.
- Check that a straight rod lies evenly across the three saddles on each side when the base is firmly pressed to a flat surface.
- Check that the limit switch fits in place with the holes through the switch body fitting over the short locating studs.
- Check that a zip tie can clear through each location: three on each side and two for the limit switch & cable.
- Pick a side for the motor and hoist cord, and insert the two PETG motor screw inserts on that side. They should be a moderately tight press fit with their ends flush with the surrounding face of the base part.
- Feed the switch cable through the passage above the switch, zip tie the switch into place with secure but moderate tie tension to avoid crushing the switch. Secure the cable with a tie for strain relief. Pull enough tension on the tie to prevent the cable from sliding through the tie, but without cutting the insulation.
- Join the sled to the base
- Start with the middle tie on each side because those are the two that are difficult to replace without sacrificing all installed rod ties to split the slide and start over.
- Install the middle zip tie on each side, leaving the loop open enough for a rod to pass through.
- On each side: insert a rod through the lower bearing of the sled, through the loosely installed middle zip tie on that side, then through the upper bearing.
- Pull the zip tie (each side) hand tight and align the rod so that the bottom ends sit in the saddles (“V” and flat) with the rod end against the bottom end limit edge.
- Secure the two ties. While the rods are probably not impossible to move, they should be fairly difficult to slide up or down in place, and should lay evenly across the three saddles of each side when the base is pressed to a flat surface.
- When the middle ties are secure, secure the top and bottom ends of each rod.
- The right side rod should find its place on the short flats of the saddles. If the slide does not run smoothly, try nudging the right side rod either way. (The first print of this version of Z axis is apparently the first iteration of this project where the parts are stiff enough to make over-constraint a problem.)
- Prepare motor & hoist cord
- Pass the hoist cord through one of the holes in the pulley.
- See steps 14 & 15 here to secure the hoist cord to the motor shaft, then press the pulley onto the shaft. Check that the cord & knot fit inside the sharp edge of the motor case around the shaft.
- Turn the pulley shaft so that the cord exits the pulley on the back side (wire side of the motor) between top center and bottom center of rotation i.e. so that the cord will wrap 1/4 to 3/4 turn around the pulley from vertical in the installed position.
- Attach the motor with two screws (“short” to 25 mm long) into the PETG inserts. Since the holes in the motor tabs are larger than the M3 screws, the screw holes are offset from concentric with the motor mount tabs. Hold the motor down (with respect to the axis) and rotate the motor as if loaded on the pulley to set the mounting tabs firmly against the screws while tightening the screws to secure the motor.
- Tie off the hoist cord to the sled so that the sled can just touch the bottom end of travel with the pulley in the position set above.
Paul McClay


Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
So, stupid question: why not simply move the bed instead of moving the cutting tool? I don't see the "Minamil" as being something for cutting large objects, so simply moving the bed with the material to be cut on it doesn't seem unreasonable.
Are you sure? yes | no
Do you mean moving the bed in all three axes instead of just horizontally?
That was the initial idea that got me started: https://cdn.hackaday.io/images/3983671597288808955.jpg but more than a few things have changed since.
Other than design inertia, which is sometimes a trap, I suppose the reason to prefer moving the tool for Z is that it's easier to keep the long thing aligned to it's long axis than it would be to keep the flat thing aligned to it's short axis. I admit not really thinking about it for quite a while.
Are you sure? yes | no
Yes, moving the bed on all three axiis. You may consider it because if your maximum cutting depth is only a centimeter or two then there are some nice actuators which could also double as a way of leveling the bed. If you add a simple load cell to the bed then you can do automatic leveling by pressing against the bit.
Are you sure? yes | no