13 ms·
CNC milling with open source software
- jononor 8y agoEven though I love 3d-printing, and designing/building machines, I would not build a small CNC like that from scratch. Since you get better machines for <200 USD that runs open source firmware (grbl) out of the box. Recently got one of them for PCB milling, a CNC 3018 Pro
- cmsimike 8y agoI've been eyeballing the CNC 3018 Pro for a few weeks now. I would appropriate any input you have on the device. Pros/cons/alternatives I should look at. Anything!
- justinclift 8y agoIf you've the budget for it, a Shapeoko3 is way more capable. https://carbide3d.com/shapeoko/ https://carbide3d.com/shapeoko/ :)
- equalunique 8y agoPlease share your experience. This CNC 3018 Pro looks like a compelling option. I don't see many reviews on them that focus on open source tooling.
- mpmpmpmp 8y agoThe Mostly Printed CNC is another great 3d printed CNC. https://www.v1engineering.com/specifications/ https://www.v1engineering.com/specifications/ Almost done printing the parts for mine. Will run GRBL on it as well.
- cmsimike 8y agoI've been looking for a home PCB machine and would appreciate any recommendations on what to look at or what to avoid. I've been told multiple times that it's easier to just have a service print your board which is probably true, but that would take a lot of fun out of the entire process for me.
- nadavami 8y agoI've been using a 3018 CNC with pretty good results. They're fairly inexpensive machines (about $300 I believe) and are decently accurate. I still order boards from China, but for a quick breakout board it's incredibly handy! I also decided to get a 5W laser which is also pretty fun to engrave with. I'm planning on writing a series of blog posts about it if you're interested! As a last note, if you like tinkering, these little machines are money and time sinks.. So far, I've added limit switches, a pi, more bits, 3D printed a tool holder etc etc
- cmsimike 8y agoThanks! I would def love to read your posts about this. I have a 3d printer at home that i picked up a couple years ago, so I know how much of a time sink these things could be. Regardless, every time I print something, it makes up for all the lost time/money.
- nadavami 8y agoAbsolutely! I recently got a 3D printer as well and the feeling of being able to create something "out of thin air" is amazing. Hopefully I'll have something initial up this weekend, i'll post the link here when I do.
- equalunique 8y agoThank you. I too have been looking at one of these for PCB milling. Do you mind sharing the kinds of boards you have created with it? Are any of them KiCad projects on GitHub?
- nadavami 8y agoThey're not, I wasn't focused on documenting when I created them. I'll be sure to add that to the list of things to share :) But here is an image of an SOIC-20 I milled. https://pasteboard.co/HX2z3EN.jpg https://pasteboard.co/HX2z3EN.jpg The short version of the workflow is: FlatCAM to convert gerbers to gcode then CNCjs on an orange pi zero to stream the gcode to the CNC.
- tsmarsh 8y agoI got into CNC milling about 9 months ago. SVG to 2.5D problems are easy, and get you to a lot of cute solutions, its about as close to the work flow of 3D printers as you can get. But the really interesting stuff is when you get to CAM. Multiple tool paths, genuine 3D cutting. Moving the work between paths etc. Its like going from juggling 3 balls (2.5d) to 5 balls (3D). I haven't seen any competitive opensource CAM products, and its the main reason I continue to use Fusion 360 instead of OpenSCAD or SVG for my designs.
- phkahler 8y ago> I haven't seen any competitive opensource CAM products... Solvespace is open source and claims to export tool paths as gcode with cutter radius compensation, though I have not used this feature. I found cutter radius and export 2D section but it's not cooperating right now! http://solvespace.com/index.pl http://solvespace.com/index.pl
- tsmarsh 8y ago> preparing CAM data — export 2d vector art for a waterjet machine or laser cutter; or generate STEP or STL, for import into third-party CAM software for machining Thats been my experience with all of the OSS CAM: g-code for 2.5D, or STL so that a 3rd Party can do the really heavy lifting.
- rmu09 8y agoHave a look at FreeCAD Path Workbench. You won't use it to run your 200000$ 5axis mill, the 3d kernel has limitations, and the UI isn't polished and has rough spots, but it is usable.
- nraynaud 8y agoDone it: http://nraynaud.github.io/webgcode//various_tests/test_3D.html http://nraynaud.github.io/webgcode//various_tests/test_3D.ht... to me the hard stuff is 5 axis with tool vectoring and collision avoidance.
- jcoffland 8y agoIf you're interested in Open-Source CNC you should check out two of my Open-Source projects. https://camotics.org/ https://camotics.org/ a CNC simulator and https://buildbotics.com/ https://buildbotics.com/ a CNC controller. I'm somewhat surprised neither of these were mentioned.
- phkahler 8y agoDo any of them support the arc or spline gcode? I noticed that most of the 3d printers do not, even though they are essentially 4-axis CNCs.
- Ccecil 8y ago3d printers typically don't care about arcs or splines since they only use STL files which do not have "real" curves. Some firmwares support arcs (smoothieware, which is based on GRBL) but it still breaks the arcs down to segments.
- phkahler 8y ago>> 3d printers typically don't care about arcs or splines since they only use STL files which do not have "real" curves. I would have thought the printer would support arcs even if the slicer doesn't. There is work going on to support arcs in slic3r (automatic detection of arcs) but it will be irrelevant for printers that don't support it. It's would also be possible for a slicer to import step files and find such surfaces. One can also approximate other curves with fewer gcodes if they use arcs vs lines - splines even fewer.
- Ccecil 8y agoSome of the firmware versions do have G2/G3 in them but not all. http://smoothieware.org/supported-g-codes http://smoothieware.org/supported-g-codes I assume most of the modern ones do but some of the older 3d printing firmware use a very butchered version of the gcode "standard" which eliminate or rename many of the unused codes.
- 8y ago
- rmu09 8y agoFor controlling your machine there is LinuxCNC (formerly Enhanced Machine Controller, created at NIST) http://www.linuxcnc.org http://www.linuxcnc.org and the fork MachineKit http://www.machinekit.io/ http://www.machinekit.io/ Also, latest FreeCAD has a CAM module ("Path workbench") that has come a long way and really is useful.
- opwieurposiu 8y agoCNC is programming "for keeps". Any tiny little error in your gcode has a chance to crash the machine. Unlike a computer crash, a CNC crash results in broken metal flying across the room and anywhere from $5- to $5000 in damage. I programmed for a heavy machine shop for a year before I gave up and went back to making websites. Hobby CNC is fun though, it is amazing what you can make out of wood when you can shape it with sub-millimeter precision. Also hobby machines are not strong enough to cause serious damage when you crash.
- th0ma5 8y agoIs there no way to test? Or there is, just not everything?
- nickpinkston 8y agoThe best shops use simulation tools, but you need the 3D models / configurations of everything to make them work, and then the machinist still needs to load everything correctly. It's very easy to make a mistake. Check out a simulator here: https://www.ncsimul.com/ https://www.ncsimul.com/
- rmu09 8y agoThere are machines that are "self-aware" in the sense that they run a simulation parallel to the NC control, slightly advanded in time, to catch catastrophic crashes and ESTOP the machine. Cutting into the machine bed can be _very_ expensive.
- nickpinkston 8y agoWhich machines are you referring to? How aware? Do they have any vision? Can they "see" or otherwise "know" about the cutters / workholding?
- rmu09 8y agoI know of WFL millturns with crashguard. AFAIK the crash guard is a separate component that relies on 3d models of the machine and the tools, it doesn't see anything. If you workholding is weak and a piece comes loose the crash guard probably won't make a difference.
- Ccecil 8y agoI work with the smoothieware project (hardware QA). It is an opensource motion control firmware and openhardware control board which works with 3d printers, lasers, mills, etc. Initially based on GRBL and runs on ARM (LPC1769). The openhardware scene has advanced quite nicely in the last 5 years. There are many very nice projects out there to build from which are largely able to be built at home with parts which can be made locally and/or purchased online. Openbuilds is a good place to start if you are interested. I always try to remind people...whether it is 3d printers, mills, lasers...the knowledge gain from building/breaking/rebuilding your machine far outweighs the small gain you get from simply operating one. I have never printed an object as interesting to me as it was to create and design an entire working machine from scratch. If anyone is interested in openhardware projects I recommend checking out reprap.org , smoothieware.org , openbuilds.com as well as several other projects which I am sure you will stumble upon through research on those sites. There are many opensource CAD/CAM software packages out there which allow you to pick and choose what you like. I personally use Fusion360 for most of my CAD/CAM stuff (I know...not Opensource) and for 3d printing my personal favorite is Slic3r.
- vespakoen 8y agoI re-implemented (most of) TPLang (mentioned above) in pure JS , and called it openjscam [1] And am working on open source software for CAM (as a hobby), just 2.5D gcode generators, using maker.js and openjscam [2]. And made opencamlib compile on Mac and Windows (and added basic Node.JS bindings) [3] I am hoping more people will work on open source g-code generators so we have better alternatives to Fusion 360 / Solidworks for free [1] http://github.com/makercam/openjscam http://github.com/makercam/openjscam [2] http://github.com/makercam http://github.com/makercam [3] https://github.com/aewallin/opencamlib https://github.com/aewallin/opencamlib
- tlarkworthy 8y agoG-code is the most hilariously bad language. Keywords are G + a number, e.g. G01, with wildly different effects, varying arg lists and no standard. E.g. G01 move to position, G20 set the machine units to inches. Its often stateful. Obviously its coz its old and works, but i chuckle everytime i have to look up the codes at how comically awful it is compared to anything else i see https://en.m.wikipedia.org/wiki/G-code https://en.m.wikipedia.org/wiki/G-code
- lvh 8y agoWhat would a good G-Code variant look like? For all its flaws, it's pretty good at encoding the exact thing you want the CNC machine to do and while there certainly are different post-processors for different machines and in most cases they're not optional, it's also not like they're entirely different. I think of G-code as ASM. For high-performance work you might write code differently for different (related) machines, but it's still a pretty OK compilation target.
- onmai-xyz 8y agoA good G-Code variant would roll up the un-rolled loops and separate the geometry data from the tool config data. This is what the view of a CAM IDE presents, G-Code source can be structured the same. If you change the semantics on some of the syntax you get lexically scoped blocks, macro-b subsystem which has existed for decades needs to be fully utilized for this to happen. A fully implemented system would provide the CAM GUI engineer and the CNC CLI machinist to work on the same file, skipping post-processing entirely. And, finally implement what was originally envisioned but not possible on even the most powerful mainframes of the late 50's: https://youtu.be/ob9NV8mmm20 https://youtu.be/ob9NV8mmm20
- lvh 8y agoEventually, something actuates a servo, and servos don’t understand iteration. Do you agree eventually something with g-codes level of detail must exist (even if it’s just unspecified internal commands)? If so, do you agree you’re just advocating for that layer to be part of the machine?
- syntaxing 8y agoI owned a 3020 and own a Shapeoko 2. Unfortunately, I rarely use them. The biggest problem with CNC is that the overhead is so expensive. There's very little room for mistakes and material cost (stock and bits) can get very expensive. Holding a part can get tricky and the wrong feedrate can ruin your part. I end up using my 3D printers to do most of my parts nowadays. Though I do use my CNC for "food grade" stuff around the house.
- NegativeK 8y agoThis is largely the difference between hardware projects (not just electronics -- metal and wood as well) and software. Decent quality physical things and materials can't be downloaded and reused indefinitely.
- yourapostasy 8y ago> ...and material cost (stock and bits) can get very expensive. I've been looking at CNC for a long time, and I've read that if you're starting from scratch, to allocate about the same amount that you spend on the mill itself to the consumables/logistical tail (end mills, cutting fluid, ancillary metalworking tools). Due to the steady degradation of quality design and manufacturing, and rapid support obsolescence, there is an endless supply of improvements I could make around the house if I had enough time and equipment. It bothers me greatly to hear from appliance repair techs that I must throw out an entire major appliance instead of repairing just the pieces that broke [1], because the parts are either grossly expensive, or even simply not available. I'd love to own "versioned, open source" appliances, where open specifications let everyone repair only what breaks. And when something breaks, the community can figure out the root cause and redesign for greater robustness. Like if a plastic part wears down causing a cam to miss a gear, then redesign to machine the cam out of high strength steel. Or if lots of people note a design oversight that makes a particular maintenance procedure a pain, a different access panel is designed and distributed for machining. Or if someone wants upgrade to a later version of an appliance, they swap out only the guts that change, and not the entire assembly, ideally sending the old guts in for recycling back into feedstock that others use for either manufacturing new or upgrading old units themselves. Or building in self-diagnosis over time, and auto-ordering new components for those that are detected wearing out. The Increvable washing machine comes close [2] in the repairability area, but it isn't open source to the point where you can read off specs to create completely compatible machines, and the company can still go after you for copying their product. [1] https://circuitmaker.com/blog/about-open-source-washing-machines https://circuitmaker.com/blog/about-open-source-washing-mach...
- bcheung 8y agoI've been looking into building my own CNC. Sounds like there are some experienced CNC peoople here. Does anyone know why there are not more polar coordinate based CNC machines? I've been wondering what the pros and cons are.
- HeyLaughingBoy 8y agoProbably because the compliance changes. The farther you go from the origin, the easier it is to push the tool away from its intended cutting path. A gantry-style machine, on the other hand, has the same rigidity anywhere in the X-Y plane. Rigidity is a bit less as Z changes (due to a longer moment arm), but it typically doesn't travel as far.