Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: I built a CNC-machine from scratch, using 40x 3D-printed parts (github.com/maxvfischer)
462 points by mfi on Nov 3, 2021 | hide | past | favorite | 140 comments



I just finished my latest project, building a CNC-machine from scratch using an Arduino Uno, GRBL and 40x 3d-printed parts. It’s able to mill wood and aluminium, up to ~20mm thick.

As with all my other projects, I think they should be executed in the open where other people can learn from my mistakes and get inspired to build their own things! Therefore I’ve spend a lot of time writing a free complete tutorial of the build, documenting every step with text and detailed images, creating a complete bill of materials (including STL-files for the 3d-printed parts) etc. I don’t want any dependencies on DIY-websites, so I’ve hosted it on GitHub, where anyone can clone it locally.

I built this machine to gain more knowledge about mechanical engineering, electrical wiring, stepper motors, GRBL, CAD, CAM etc. Also, I guess I can build new fun things with the machine? Overly-engineered birdhouses maybe?

Setup:

* It’s running on an Arduino Uno, CNC-shield and GRBL.

* 40 parts are 3d-printed (all the red parts in the video)

* It’s based on Ivan Miranda’s blueprints, but I’ve adjusted some parts and structured the bill of materials.

* It uses 2x 19:1 geared NEMA17 stepper motors for the Y-axis and 1x for the X-axis. The Z-axis is using a standard NEMA17 motor.

* HTD5M belts and pulleys are used for X-axis and Y-axis. GT2 belt and pulleys are used for the Z-axis.

If you have any questions, feel free to contact me. You’ll find my email in the top of the guide :)


Nice work! You made a lot of great design choices.

+1 to those that recommend upgrading your extrusions and motor mount on future iterations. The rigidity is well worth it.

If you are ever deciding between belts and ballscrews, I recommend ballscrews. It is worth the extra $$.

For the milling of aluminum, I suggest adding a compressed air nozzle. It will make a huge difference in milling AL. Also, some of the new bits are fantastic at hogging out aluminum. For reference see pic at https://drive.google.com/file/d/1BWvOOwmaQljwhdBzYNvilYDKdsy...

We built our own 5-axis CNC too, to do large envelope parts trimming. It looks like Frankenstein, but works pretty well. See a pic at https://drive.google.com/file/d/0Bydp4fsq-EhtUndOTlZTcU1fTEU.... We use it to trim the chassis parts for our baby car seats at https://kioma.us

Keep on building!


I understand you put thought and time into your approach and it was a hobby to learn more abotu the process (and thus you know about MPCNC but decided to make your own). I've also build similar systems and I've learned some timesaving tricks that have paid off in terms of hobbyist enjoyment.

I really like buying the majority of the parts from a place like OPenBuildsPartStore, rahter than assembling frames from channel manually. Time/cost/quality tradeoff is hard to beat here.

I strongly recommend switching to Grbl_Esp32 https://github.com/bdring/Grbl_Esp32 with external controllers (this board https://www.tindie.com/products/33366583/6-pack-universal-cn... with these plugins https://www.tindie.com/products/33366583/external-stepper-mo... and these controllers https://www.amazon.com/STEPPERONLINE-1-0-4-2A-20-50VDC-Micro...). That's what I ended up with because tuning current using the little pots is dumb, and you want a TON of current going to those huge motors. ESP32 + Grbl has a bunch of nice features that aren't in plain old Uno GRBL.

My system has high torque NEMA23 with no gears (same motor for all 3 axes), I can't see any situations where adding more torque to the X or Y axes using a smaller gearer stepper makes sense.


"I can't see any situations where adding more torque to the X or Y axes using a smaller gearer stepper makes sense."

Generally agree. Torque is only needed to a specific threshold. If it requires a lot of torque, then that's probably a good sign to slow the movement down (for the sake of the machine's longevity).


On the contrary, plenty of tools need to move and chip otherwise they'll get dull, cutting speed is a function that increases a machines' longevity. But cutting speed does require a solid mechanical setup, drivers that can source some current and a drive train that does not suffer from over or undershoot ('slop').


"plenty of tools need to move and chip"

Not sure what you mean by that. I dont know all the tools in the world, but generally a chipped tool gets less sharp. Even something like obsidian would get less sharp in regards to the intended use with a random chip as compared to a well knapped tool.

"cutting speed is a function that increases a machines' longevity."

I'm not sure you are using cutting speed the same way I'm talking about movement. Applying too much lateral torque to a router bit is how bits break, bearings wear prematurely, etc. You don't need much torque to move the router.

If you want faster cutting speed, then the RPM of the bit can be increased, or using a different bit design. You can cut faster and it still shouldn't require much torque for the movement.


They possibly meant "plenty of tools need to move chips".

A common problem that causes chatter and poor tool life is not taking a large enough chip. Large chips stabilize the tool (the rotation of the tool pulls it into the part) as well as allowing for a more continuous, uninterrupted cut (whereas too small of chips cause the flutes to have to re-engage the cut over and over, and the number of engagements and tool life have an inverse relationship).


True. My point was that it shouldn't take very much torque to match the cutting speed with the movement speed. Even if you increase cutting speed you can keep the same torque (for movement) by increasing movement speed. It should be a balancing act with torque (for movement) being fairly constant in the range to provide continuous engagement, with the cutting and movement speeds changing.


I suspect he means that you want to move quickly through aluminum, especially if you don't have active cooling. If you move slowly you can get problems like chip welding and everything goes south.

I actually didn't have enough torque to move the router through lots of material until I moved to some fairly serious stepper drivers and configured them to use max current and voltage (IE, I got a 48V, max 20A power supply). Even then, if if accidentally move the router bit while it's not spinning into the work, the motors stall well before the bit breaks (1/4" carbide end mill).


I guess if they're getting welding there's no sprayer set up. Some emulsified oil (10% Ballistol) usually works great for lube and cooling, even in small quantities.

Yeah, that makes sense. That sounds like it's really not that much torque the way you describe - just above functional minimum and no where near too much (eg people forcing it through and breaking bits).


>I can build new fun things with the machine? Overly-engineered birdhouses maybe?

I don’t have space for a workshop. I live in an apartment. So I’m pretty limited in the sorts of materials and tools I can use. 20mm of wood is probably quite useful. My table top and shelves aren’t 20mm thick. If this can go through MDF I’d say it’s really useful.


Unless you have an incredible dust collection system in place, I would seriously reconsider any potential plans to cut MDF in your apartment. The particles are very fine and you will find it everywhere. And that is to say nothing of the particles that you'd be inhaling.


this sort of machine could easily carve 5-10mm of MDF in a single pass. It's awful loud though, even when enclosed.

What I recently made: a terrain map of california cut into plywood. It's several feet by several feet (~600mmx600m), 0.75" (almost 19mm deep at the lowest points in california) and wall-mount-worthy.


Sounds really cool! Got pics?


What a fantastic project. Is the design parametric, in other words, are there parts that would need to be scaled up to have larger x, y or z axis or are those all off the shelf and are the various STL files for the components the same if the design is scaled up?


Glad you like it, most cred should go to Ivan Miranda for the core design, I just executed, updated some parts and wrote a guide around it :)

No, it's not parametric in that way. But it is possible to extend the "mill-bed" by:

* X-axis: Increase length of frame and bridge profiles. Buy longer MGN12H rails used for the X-axis.

* Y-axis: Increase length of frame profiles. Buy longer MGN12H rails used for the X-axis.

* Z-axis: Increase the vertical beams between lower and upper frame. Buying longer MGN12H rails used for the Z-axis and a longer acme rod.


Awesome. Can it mill aluminum? If so, would you consider replacing some of the 3D printed parts with machined parts?


Yeah it can! Ivan Miranda, the guy who has created the blueprints actually updated his machine with aluminium parts, milled on the CNC-machine. That might be something I'll do in the future!


Von Neumann probe when?


Right after you figure out how to 3D print solid rocket fuel without things going 'bang' prematurely.


If you print Potassium Nitrate/Sorbitol[0] with direct granule extruder[1] you could do it. But this will probably need additional toolhead for engine body[2] (plastic-fiber composites DO have enough strength to survive using KNSB in engine, I've seen tests, but those are not publicly available) and for ceramic nozzle[3]. With some experimenting, probably doable.

[0] http://www.nakka-rocketry.net/sorb.html

[1] https://hackaday.io/project/181165-my-machinery-2021-direct-...

[2] https://www.sciencedirect.com/science/article/pii/S221282711...

[3] https://reprap.org/wiki/Ceramic_Extrusion


The CNC Shield is a blessing, shame the Gerber files aren't being published for newer versions.



100%, it helps so much with the wiring.


very cool! thanks for sharing. I don't have the equipments to drill holes on aluminum parts, I will probably need to use https://8020.net/ to build one.


You might also want to look at the mostly printed CNC, which uses standard conduit/pipe for the frame.

https://docs.v1engineering.com/mpcnc/intro/


Be warned these plans require you to drill a couple holes in the conduit. I managed with just a handheld drill though the holes weren't quite aligned. Definitely use a file or hacksaw to create a flat spot on the conduit where you want the hole so the drill bit doesn't wander as easily.


Or a center punch (helps on flat metal too).

One favorite trick of mine is to print out 1:1 drill pattern drawings and center-punch through the paper onto my metal workpiece for all the drill locations. Fast and accurate.


Basically, 2D printers (you know, those $150 things) are exceptionally high precision and accuracy tools for making 2D drawings. I've been using printers for years and it never occurred to me you could use it to print a (for example) 10cm square.


You can if you are really nifty do limited scale PCB manufacturing this way.

https://www.instructables.com/Creating-Printed-Circuit-Board...


Fusion360 seems to try to prevent you from exporting PDFs with the free hobbyist version. One tip that I discovered was to create a CUPS printer on a Linux VM that saves PDF files.

(I found it printed slightly off sized if I sent a 2D drawing straight to the printer.)


Yeah, you have to correctly configure the output to get dimensional accuracy. but it shouldn't involve finding some magic scaling factor for X and Y that makes things accurate.

I've used Inkscape to make basic shapes, and pay for Fusion 360. TBH I've never actually thought to take one of my 3D Fusion models and use it to make a 2D template for drilling. That makes sense...


Inkjet yes, laser no.


Since the mostly printed CNC already requires a 3d printer, you might as well print a jig to help drill those holes. https://play.fallows.ca/wp/tools/3d-printer/mpcnc-drilling-j...


My favored approach to offset drilling / drilling on curved surfaces is to use an endmill. Doesn't wander, goes straight in. Of course, you need an endmill for that approach, but id you're building a CNC those should be in ready supply.


interestingly you can also mill a flat or indexes to mate tubes together. I’ve also contemplated making one-piece saddles to mate extrusions, filling the gaps with zero-expansion epoxy.

Tubes and extrusions you buy cheap rarely have dimensioning and tolerance you’d want to accept out of the box. To get what you need, best just to use geometry of hole centers, and adjustable fine parts.

I set a limit of 1/128 inch on any garage woodworking projects. This is 8 mil (thousandths of an inch) or 0.2 mm. Wood and plastics (and even aluminum) fluctuate from moisture and temperature enough to make this a lower limit of reasonable value, though I’m getting closer to 5 mil in router precision. It’s not a fine carpentry shop and I’m not making anything that really needs better than eyeball precision (hand marking) which would be about 1/32 inch.

Applying geometric dimensioning and tolerance to design has been a liberating experience. I’m not a mechanical engineer or even otherwise anywhere close to the industry so I really had no idea how to assess or compare designs.


I use a cordless hand drill to drill and tap aluminum all the time (as does this project). adjust the speed until you are pulling out long ribbons instead of dust. you can use a little oil, but its not necessary. the only issue is trying to stay perpendicular to the work, but usually a little deflection doesn't matter. also pay attention to 'wowing', where instead of drilling your perfect round hole the drill bit starts to bounce around a triangle or pentagon and you end up making too big a hole. its often best to start with a pilot drill and then a final pass to clean it up. also its often easier to use a centering drill to setup the holes. it provides a pocket for the drill to rest in so that it doesn't wander, and you can use the centering drill to fine-tune the hole pattern before you make it permanent.


To easily stay perpendicular to the work, use a tap guide block. You can 3D print one or drill one out of stock on a reasonably square drill press.


I picked up a used drill press for $45 or $50 (I don’t remember now), and a tap and die set from Amazon for about $20. 10/10 would recommend if you have the space.


Believe it or not, aluminum can be treated the same as wood when it comes to tools. Any drill that can drill wood can drill aluminum.


Aluminium is quite soft, so it might work if you have access to a screwdriver and a step drill


I’m not an expert here but I’ve heard 8020 is expensive enough such that purchasing a drill press would probably be cheaper, if feasible, correct?


There is also handheld drill press rigs that may be useful.


You mention aluminium. Any plans to add a lubricant sprayer?


what material did you use for 3d printing? I would think PETG or ABS is probably best?


You most definitely want to avoid PETG as it is pretty... flexible...

PLA is the way (the MPCNC, for example, is designed with PLA in mind) in this case, as with ABS you most likely need higher printing temps, bed temps, an enclosure to keep even the slightest drafts out...


I actually used normal PLA


PLA is actually the stiffest of those materials, just keep it cool enough that it doesn't warp! I expect that would only be a problem around the spindle which can get quite hot, and maybe stepper motor mounts.


I'd love to have an open source CNC machine to design joinery with http://ma-la.com/tsugite.html Ideally a whole house and most of the furniture...

If anyone has any ideas on how to accelerate build times of open hardware, that's something I'm trying to solve. Creating high quality instructionals is a huge amount of work and I think instructionals should be automatically generated by computer vision and have interactable elements, ideally AR, but even just highlighting wiring diagrams on hovering would be hugely helpful. Even if things are well documented, replication is still insanely pyrrhic without economy of scale or universal fabrication. It's time consuming because it's hard to replicate knowledge/tool environments quickly.


I can't help you with ideas of how to accelerate build times of open hardware, but thank you so much for sharing that link. Looks really promising, will probably test it using the CNC-machine someday soon!


I forwarded this to a structural engineer who specializes in timber design. That website you linked is really cool.


Hey, this is a great project. I am working on a project that involves both hardware and software much like your CNC project.

I especially like how the README.md is exquisitely well-written, complete with images. May I ask - did you manually link the pictures and links while writing the README or did you use a program that let you generate the source md file from a WYSIWYG editor?

PS. I am a newbie here. So, I really hope this question isn't against the code of conduct here.


There are a limited number of ways you can link your images on a Github README. The format is the same for all methods.

![image description](image.png)

1. You might upload to a bucket online and link them individually.

![image]https://cdn.bucket.url/image.png)

2. Upload the images to your Github repo in a folder and relatively link them.

![image](./images/image.png)

3. Edit your README on the WYSIWYG editor on Github itself and paste the images using Ctrl+V. Github will automatically host and link the image in your file.

I hope this has been helpful!


Your polite and inquisitive message exemplifies the code of conduct here :) Welcome!


For anything CNC, there's no substitution for stiffness. And you're not going to get that with aluminum extrusions. Something like the PrintNC would be 1,000 times more capable due to using steel.


PrintNC reference info:

The wiki: https://wiki.printnc.info/en/home The Discord (very active): https://discord.gg/RxzPna6 The GitHub repo: https://github.com/threedesigns/printNC

There's also the "PrintNC Store": https://threedesign.store


Preface: from your username I'm guessing you mightknow most of this, so my comment is for the benefit of non-machinist HNers.

It depends. Also, to be more accurate, you need high modulus (vibration dampening) and strength. An extremely strong material that doesn't dampen vibration isn't helpful, for example.

If you need to produce "Live Laugh Love" signs, you need enough stiffness and dampening that you can cut wood or plastic and have it look clean visually / need minimal post-processing before applying a finish, and do so quickly enough that your labor costs aren't high (never ever EVER leave hobbyist-level CNC machines unattended!) If you can do so with something approaching ideal chip load on the tool so you don't wear through them like crazy, even better (also you get more chips than dust, which is better for you, your dust collection system, etc.) Endmills work best when they take a nice bite out of whatever you're cutting; heat from cutting leaves with the chip. Too small a bite and you're just rubbing the workpiece, and the tool cutting edge isn't cutting, but getting polished smooth.

If you need to produce accurate parts, you have to do spring and finish passes anyway (for those who don't know: even very stiff CNC machines still have flex in them. You do a rough cut at ideal chip load for your endmill, then one or more "small bite" follow-up passes where there is far less load on everything and thus the endmill face is closer to where it should be.) Since you're doing those passes to get your dimensions, machine "stiffness" mostly just lets you do it all faster.

When it comes down to it, all you really need in a CNC machine in terms of "stiffness" is enough to let your endmill spend most of its time working at an ideal chip load without wandering all over the place. If the endmill's positioning changes too much with the machine flexing or vibrating, then one flute of the endmill could end up getting much more of a chunk to bite off than it should, and...snap.

Beyond not destroying your endmills, more stiffness just lets you go faster. And like they say in the car world, speed costs money; how fast do you wanna go?

Stiffness is not the only important factor; dampening is also important. That's why you see some epoxy-gravel composite builds. Lots of mass, very strong (the stone), very high dampening (the epoxy.)

One of the unfortunate things about hobby-level CNCs is that they use palm router motors with extremely high spindle speed, but they're not terribly stiff, and most of them come with software that has rudimentary CAM path generation. The high spindle speed means that you have very little tolerance between the tool flute getting too little of a bite and too much of a bite, which is easy to do when the frame isn't very strong (and at high spindle speeds, vibration dampening starts to get very important, too.)

Hobby-level CNCs benefit enormously from more advanced milling techniques like trochoidal milling, or "adaptive clearing", as Fusion 360 calls it (I think.) Trochoidal milling maintains tool load while optimizing for using as much of the side of the endmill as possible (spreading wear on more of the tool.) The machine appears to "nibble" away, instead of steaming along whatever profile is being cut. A simple profile on a weak frame machine means a very shallow depth of cut to keep forces low, but that means all of your cutting is being done by a very small portion of the endmill.

They also benefit from having as slow a spindle speed as possible. There are speed controllers available to help reduce the speed of a palm router, which also lowers noise and reduces bearing and brush wear.

I'm in kind of a rush so hopefully someone can correct or clarify where needed.


As someone working in CNC area (CAM posts and automation) you explained this very well. Especially I like that you mentioned the tendency to use just a tip of the tool, which I know even machinists tend to do. Perhaps also mention the ware if certain position on the table is used constantly?

I would add that when you go close or bellow 0.01 then also perfectly controlling your holders (runout) and being wary that the tool, no matter how stiff, bends as well, so you should control your overhangs as well.


The point about using only one part of the table is funny to me. A lot of hobbyists build 4x8 or larger machines, and then always set g54 to the same spot and use only that (because different work offsets on your gantry axis are often very hard to reach!).

I guess with hobby machines it doesn't matter much if you use linear rails because you basically will never wear them out, but I found with my previous v wheel machine that this was a very real problem.


Adaptive clearing was transformative to me.

I have a low-cost CNC (X-carve) that has serious stiffness problems that I don't want to fix. Adaptive clearing has allowed me to do far more successful cuts in reasonable time.

I've never broken an endmill. SOmething else gives before the endmill (I use carbide mills on hardwood). Belt tension, the belt itself, the wheels, the clamps, etc.


Exactly, why compromise on a sub 2k€ machine when a haas VF-1 only costs 46k€?

Oh right, because at that point it's cheaper to just pay the 80€ setup fees for a single CNC machined part on xometry.


I happened to come across this project yesterday on reddit [1] and have spent the last day dreaming of building one. The quality of the documentation and activity on Discord is a big plus. First I need to build a super strong table for it to go on...

[1] https://www.reddit.com/r/engineering/comments/qkn996/almost_...


Another reason why you don't want aluminum is due to the expansion as a function of temperature variation, which can be considerable over a longer run. But for this small size you can probably get away with that unless you start to move really fast, or have a head that generates a lot of heat.


Just to express the parent more bluntly, this CNC project is junk. I've seen stronger window frames than this.

I wouldn't even expect to cut several pieces of wood with this toy CNC machine.

It's like something you'd cobble together in a WW2 prison camp behind enemy lines.


1. It may not meet your needs. Fortunately, that wasn't the point of the project.

2. They did it to learn and share what they learned. Job done!

3. "cobble together in a WW2 prison camp behind enemy lines" - really?


This got me wondering: most CNCs and 3D printers use switches for calibration, plus stepper motors for positioning.

Has anyone tried to use cameras or a Valve Lighthouse (0.3mm precision), maybe with accelerometers and encoders, for tracking? That would allow the use of cheaper, faster, torquier, more efficient DC motors, as well as release the accuracy constraints for a lot of parts (depending on which part is being tracked).

The goal would be to trade hardware complexity and price for software complexity, since it's easier to re-purpose software (and something like lighthouse base stations has multiple uses, so the price could be shared between projects).


Yes and no: No, no one I'm aware of has tried using DC motors and cameras instead of steppers to control a printer.

But yes, industry uses optical technology in large CNCs all the time. Some homing switches are physical clicky switches, some are inductive proximity sensors, but an optical 'horseshoe' througbeam/fiberoptic sensor is the standard for highly repeatable sensor-based homing. Depending on your control system, homing to a hard stop by measuring motor torque can also be highly effective, then you don't even need switches.

I've personally worked on a number of CMMs (coordinate measuring machines, basically a CNC with a probe tip for checking that something was machined within tolerances instead of a spindle for actually cutting it) that use 90V DC motors and Heidehein glass scales for positioning. We calibrate them using laser interferometers; another optical technique - just with a single beam. Those same CMMs are being phased out across the industry in favor of optical measurement systems, just because they're faster.

Shane of the excellent "Stuff Made Here" Youtube channel recently made a big CNC painting robot that did optical tracking for a coarse positioning stage and used steppers for the local stage: https://youtu.be/osUTMnDFV30


In a way you are describing state of the art robotic arms, but computer vision in that domain is less about economizing and more about coping with everyday materials and objects that are difficult to characterize.

The OP is coming from the CNC milling world where positional accuracy is more or less solved: you use cheap steppers or servos but expensive, precision-ground ballscrews; then you swear on Machinery's Handbook not to drive your machine too fast.

The real demons in dimensional accuracy come from things like spindle runout, deformation of the tool, and flexing and vibrations of the machine, fixture and workpiece (that are often different going in one direction than another!). Certain operations like drilling can't be corrected in real time. There are additional concerns like minimum amounts of material that can be removed with each pass - too little and you are just burnishing the workpiece.

Machinists actually do solve these problems in software when they generate toolpaths and fixturing.


I think there's a very big future in adding more (optical and other) feedback mechanisms to CNC machines, but 0.3mm resolution is really only good enough for the crudest of devices.

For comparison, a typical ball screw, has positioning accuracy/resolution of around .02mm


Cameras are useful when you want to sense the position of the workpiece before you start. Pick and place machines do that.

It would be useful if CNC machines did a depth scan of the bed before starting to cut, to make sure that the machining plan didn't run the tool into a clamp or something. Not super high precision, just enough to check clearances.

Most of the headaches of CNC machining involve getting the workplace, tools, and clamps in the right place. Only then can the machine do its thing by itself. Help in that area would make CNC cutters more accessible to amateurs.

Some CNC machines intended for unattended operation have microphones or MEMS accelerometers listening to the cutting, to detect when something has gone wrong, like a worn-out tool. Monitoring spindle torque is common. Too little means the tool broke. Too much means the tool wore out.


Right. I'm not suggesting using that directly, or as the only mechanism. Time of flight sensors could be used, for instance: https://hackaday.io/project/47141-sub-mm-accuracy-from-the-v...


look into ODrive.

It uses brushless motors and encoders.


https://odriverobotics.com/

Quite interesting, thanks for mentioning. They attempt to directly emulate stepper motors with brushless motors and encoders.


This. Rotary and linear encoders exist are are exponentially more accurate. Using cameras just overcomplicates things for worse results.


> Using cameras just overcomplicates things for worse results.

If you use a crude algorithm, maybe. But given what's possible with photogrammetry, I think you can use that as another sensor fusion input, with a kalman filter or something similar, and get even more precision at the output.

That's way more complicated when it comes to the algorithm, of course. But the idea was being able to plug more sensors and improve precision.


As others have pointed out, you can use (big) servo motors for drive. This means that you go from open loop positioning (ie needing homeing switches) to closed loop, where you know where your position is at all times.

Optical tracking might be useful, but it also might not for the reasons I'm about to describe

CNC machines generally get "better" as they get bigger, not because they have stronger motors, but because they are more rigid. The problem with this CNC is not power, its rigidity. It will cut well enough for wood and plastic, assuming that the spindle is fast enough. However it will deflect significantly as the material "pushes back" against the cutting force.

In this machine, they are using belts an pulleys (which are contrary to common opinion not very elastic) The pulley used to keep the belt in tension are on plastic parts, which are elastic. (steel is also elastic, but much stiffer, so at this scale wouldn't flex as much, well not before the bolts bend)

With all this flex, it affects the accuracy during the cut. you might have felt when a drill bit binds up in a hole, and the whole drill is wrenched from your hand. That happens in a CNC when starting a cut, or plunging into a pocket.

Where big machines come in, is that they have huge mass, which allows for large rails/linear bearings, which are much more rigid. The more mass also means that when the end mill comes under load, the work piece gets the push back because its generally less mass than the gantry.

TL;DR:

yes you can use optical methods for homing, but its better to spend the money on more mass for the x/y/z assembly.


Very cool! I am actually also making a 3d printed pen plotter! I love how easy it is to get common hardware like bearings, plus how nice it is to print parts on demand.

Edit to add the link to the plotter: https://www.thingiverse.com/thing:2349232


Yeah, the 3d-printer is a game-changer in these type of DIY projects!


Reminds me of the Root CNC project. https://rootcnc.com/

Great work!


This looks great. I do love that MP-CNC tells me immediately the approximate cost. Wish more projects did that. I can’t tell if a Root 4 would cost me $200 or $2,000 without looking for all the parts individually.


I did look for the parts because I was interested in getting one made...however many of the parts still aren't ready to go (control side), but the hardware cost other than that was fairly reasonable in the $500-800 range depending on how big you were going to go and which motors you chose to use.


Haven't seen this one before, thanks for sharing!


Congratulations! I'm working on one in my spare time but I've decided to cram in as much features as possible(as far as not being able to cram all the features into an arduino or esp32 so ultimately I'm opting for a raspberry pi for connectivity, monitoring, safety and so on). I got it working about a month ago with some tools and hardware I borrowed from my dad but the problem there was... My dad's negligence, meaning all the tools and hardware were half dead. In any case I managed to cut out two pieces I needed for a different project(and see that it works after all). And I also plan on open sourcing it. though most of the code is written in Rust. With the exception of a small webserver for monitoring the process remotely(even visually with a tiny webcam) - no point in wasting so much effort on that and dealing with all the async-await-read-write locks that come along with it. The webserver mostly parses logs and makes system calls to binary files.


That sounds like an amazing project! Please open-source it, I would love to read more about it :)


Really neat project!

Maybe I missed it, but is there a general cost estimate anywhere? I saw the BoM, and assume most the cost is in the router and stepper motors, but is this like ~$500?


Thanks! I think it spent around $1100 in total, but then I paid for fast shipment and ordered quite a lot of parts that I ended up not using. You can probably build it for $600-$1500, depending on where you source the parts, what quality you buy, speed of delivery etc.


Now we need someone to make a 3d-printer out of 40x CNC'd parts and we'll have a never-ending supply of both!


This is fantastic.

I've been putting off buying a 3D printer but I've always wanted to get a CNC machine... this might push me over the edge. The idea of having end to end manufacturing capability on the desk is very very attractive.

The things I could do with this combination... what a time to be alive.


Do any of these small CNCs support G02 and G03 for circular arcs?

I was recently looking at G-code output from Solvespace and figure we need to update it to produce those codes rather than tiny linear segments. But will the home-built CNCs even support that?


LinuxCNC will (http://linuxcnc.org/docs/2.8/html/gcode/g-code.html#gcode:g2...) - but your CAM may not.

Edit: did not realize I was replying to solvespace, bring on the arcs!


>> Edit: did not realize I was replying to solvespace, bring on the arcs!

There's a guy working on a g-code template right now. It should substitute the g-code into the template on export so it's machine ready.

I'd like to get into all that, but I'm still working on construction tools and stuff.


Most of the small hobbyist machines I've seen (including this one) use Grbl, and Grbl does support G02/G03.


grbl supports arcs and it represents the most common Gcode firmware on these "home-builts"


I think Marlin supports it.


Thanks for this guide! Just realized I have everything I need on-hand to follow your guide & wanted to comment and let you know I plan to follow it this weekend. Looking forward to it!


Please post about this if you do, this project looks awesome. Though I don't have the parts on hand yet, I'm strongly considering building one as well.


Totally will do, seems like a fun project to try making a youtube video around!


Indeed, what's your channel, if you don't mind me asking?


I don’t actually have one loll, if I actually end up finishing this and editing it up I’ll post it to this one [1]. I’ve been meaning to try making videos for projects though, so I’ll try to make it interesting

1: https://m.youtube.com/channel/UCcP2O68iv1HZfWxK05jMkGA


Does anyone have suggestions for making a CNC mill that's quiet enough to run in my apartment? I'm thinking about getting one of the cheap $250 Aliexpress specials (I only want to mill PCBs), but I'm guessing it's going to be too loud to run in a building where other people live. If I can make some performance tradeoff for relative quietness, I'd love to do it.

(Maybe it's as simple as putting it in a foam enclosure or something? That sounds bad for spindle cooling, though.)


Sound is one thing but also think of the dust, especially if you’re planning to machine pcb at your home. That’s not good stuff.

But speaking of sound, some of it comes from the spindle. The faster it turns, the more noise it makes (usually). I was using a dremel as my spindle some time ago and it was veery noisy. Then I tried another machine that had a bigger spindle, that one was much quieter.

Then there’s the sound of the material being processed. The cutting bit hits the material at spindle_speed*flute_count Hz. This also creates hell of a vibration.

So you need to do two things: dampen the vibrations, and block the radiated noise. Plus you want to make sure you have some sort of dust control.


That's a good point; the cutting itself is going to be noisy. I will have to rethink this project.


Nice! I built an older model MPCNC years ago, and was able to get pretty great results with it relative to the tiny cost and huge flex in the frame. I managed to cut some brass Christmas ornaments that I’m pretty proud of.

I like that you’re using racks here - the belts on the MPCNC were a major weak point in my experience. I wonder if you could get away with 3D printed racks and pinions. There’s a lot of structural plastic in there already, would the hit from accuracy from using lesser racks make a difference?


Love to see the brass Christmas ornaments have you a photo ?


You can buy ball screws somewhat cheaply direct from China. That'd be the way to go.


Do you know how accurate it is?


I milled a test block in wood to check the accuracy, and it was sub-millimeter accurate. I can't measure further than that as my tools doesn't allow it. But I doubt that it's super accurate due to the 3d-printed parts, aluminium instead of steel etc.


Being a spherical cow loving physicist, I still get caught off guard by what counts as "precise" in engineering contexts. Even when I'm making stuff in meat space I don't think I've ever bothered to intentionally get better than 1% relative precision.


For a framer, 1/8” is precise enough. For a finish carpenter, 1/32” is precise enough. For a 3D printer, 0.004” is precise enough. For a machinist, 0.0005” is precise enough.


0.004" is read as "four thou", and 0.0005" as "five tenths", as in five tenths of a thou, FWIW.

I only picked up imperial thanks to binging This Old Tony videos.



Unless it's PCB, in which case its "4 mil", as in milliinches, among the great bastardized units


It really depends on what you are doing and what 1% means. For example, a tiny ridge on a sliding surface will result in a noticeable catching of the slider down to even visually imperceptible heights.


Being a structural engineer, I usually think the same way. But then I started tinkering with 3D printers, built a MPCNC, and have since busted my share of endmills due to accuracy and repeatability issues. Being off by a fraction of a mm is enough to bust your tool or mess up the workpiece.


Hello! I have seen your question about the the pf3cmp file of the perform-3D .Have you solved the problem? Cause i have the same question right now.Thank you very much.


It's worth reading the various recent articles about the construction of ASML's machines that make next-gen chips. LIGO, and diffraction gratings are two other nice examples.

It's basically the culmination of thousands of years of humans getting better at precision. Things didn't take off until the 1700s, really got amazing around WWII, and has undergone amazing results since then.


There's a long way to go still. Nothing in your house is made to LIGO precision, not even your own body, the spiders, and the bacteria in the toilet, which are all a lot more precise than next-gen chips.


you're misusing the term precision to apply to size. Precision doesn't mean anything in bacteria.


I meant precision, not size. Bacteria build their proteins with ribosomes, which assemble the proteins with atomic precision (about 100 femtometers). LIGO is built with several orders of magnitude tighter tolerance than that, but none of the parts of your computer are even that precise.


That would depend on many things including the material and feed rate.

For plastic/wood you can get pretty decent precession on these machines within 200-300 microns or so since it should be rigid enough to not deflect much with these materials.

For smaller parts any issues of gantry squareness would also not translate to the milled part as much.

You can also cut aluminum as long as you are going slow to avoid deflection but don’t expect excellent surface finish and sub 500* micron tolerances.

*High end industrial machines can do tolerances within 10 microns when they are operated by an experienced machinist. 100 microns off spec not to mention 500 microns would result in parts being binned normally at least for critical tolerances.


The pictures on that README are insane! So HELPFUL!

And, I already have that same Makita router so I am more tempted to try this... because of the pictures!


Haha yeah, I spent quite a lot of time to document everything. I sometime have trouble following tutorials because they leave out things that are obvious to them, but not to the reader. So I've really tried to include every step in detail, even though they might be "simple" and obvious.

What's stopping you? Go for it! :D


Slightly unrelated, I was curious if anyone here could recommend a 3d printer? Smaller one would be better just trying out now. Does not need to be too accurate (nice if it does) but looking for something that is budget and most for doing very flat 3d objects (ie: height no more than 1-2 inches, within a width/length much smaller than 10x10 cm)


Probably not what you are looking for, but if you can afford it, I can highly recommend the Prusa I3 MK3S+ (actually I have the MK3S, but it's pretty similar).

The quality of the prints is incredible and the printer is really easy to use. I've printed a bunch of parts for use around the house that have solved problems where there's no way I could get a commercial solution -- I can just design what I want in Fusion 360 and print it.

This was my first (and only!) 3D printer so I don't have any comparisons, but I have been tempted to get a Ender-3 (Pro) just as a comparison (although I don't really have the space for 2 3D printers).

I did recently augment it with OctoPrint on a RPi with a touch screen (and of course a 3D printed front "console" that accommodated it) ... makes it much nicer to use and I can remotely manage via Wifi.


the ender 3 is cheap and does everything i need


thanks for your time to comment. this looks great. anything particular that might break down or any issues you had?


not really. making sure the x and y belts are tensioned will improve your prints


This - https://www.adambender.info/post/2017/03/25/epoxy-granite-ma... - could be a useful addition to the mill.


What's 40x? I feel brain challenged today as I can't understand what that means in this context.


I read it as "40 individual 3D printed parts."



Exactly, I meant 40 unique 3d-printed parts


I built myself a Mostly Printed CNC: https://docs.v1engineering.com/mpcnc/intro/

It works really well, and as yet I have yet to kill it, for me that's a good metric.


Great work!! What router bits are you using for milling wood and aluminium?


Thanks! I'm still very new to the CNC-space, so I'm currently exploring different bits. So far I've only bought some low-cost flat end mills from Amazon, but I'll probably work my way up to higher quality when I've used it more.


carbide: https://www.amazon.com/gp/product/B0080CVUVS as an example.

it never dulls.


I recommend building a cnc, had a lot of fun building a mpcnc


Most hobby CNC projects have only 3 degrees of freedom, whereas most high-end commercial projects have a few DOFs more.


This is not true. 5 axis mills and 9+ DOF CNC mill/turn centers exist, and they are becoming more common, however 3 axis vertical mills are still the backbone of most machine shops.


3-axis mills are the most common configuration for commercial mills (probably by a wide margin).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: