Mainstream productivity software from the big companies is usually pretty tight, these days. Large open source projects are also to a similar standard when it comes to look and feel, as well as functionality. It’s when you dive into more niche applications that you start finding ugly, buggy software, and CNC machining can be one of those niches. MillDroid is a CNC software platform designed by someone who had simply had enough, and decided to strike out on their own.
The build began with the developer sourcing some KFLOP motion control boards from Dynomotion. These boards aren’t cheap, but pack 16MB of RAM, a 100-gate FPGA, and a microcontroller with DSP hardware that allows the boards to control a variety of types of motor in real time. These boards have the capability to read GCODE and take the load off of the computer delivering the instructions. With the developer wanting to build something robust that moved beyond the ’90s style of parallel port control, these boards were the key to the whole show, also bringing the benefit of being USB compatible and readily usable with modern programming languages.
To keep things manageable and to speed development, the program was split into modules and coded using the author’s existing “Skeleton Framework” for windowed applications. These modules include a digital readout, a jogging control panel, as well as a tool for editing G-code inside the application.
For the beginner, it’s likely quite dense, and for the professional machinist, industry standard tools may well surpass what’s being done here. But for the home CNC builder who is sick of mucking around with buggy, unmaintained software from here and there, it’s a project that shows it doesn’t have to be that bad. We look forward to seeing what comes next!
Want to see what else is out there? We’ve done a run down of DIY-appropriate CNC software, too.
Kflop is great, I installed on on my mill and am using it though the Mach3 plug in. Great support too. Still have a couple little things to work out like my modbus MPG does not work with it. The free interface for the kflop is supposed to be pretty good too, I just have everything how I like it in Mach3 so I dont want to switch.
A 100-gate FPGA seems to be pretty tiny. I think, you missed an ‘k’ after the 100 :)
Anyway, it’s nice to see projects like this one!
`Published August 23rd` – A little late to the party, eh?
I wonder if this is built generically enough to work with any CNC controller?
Really late, August 23, 2014. Also that’s the only post on the blog about MillDroid. Can’t find any contact info to ask if he’s sharing the source code or even the compiled version.
Would be interesting to see if it could be adapted to communicate via RS232 to an old Animatics servo controller.
This may help in contacting the author. His name is shown on the LCD for a project he built to digitize some cars, in the SubSpace entry. Looks like he worked on some NASCAR game. Sam J. Morrocco. He has an IMDB entry https://www.imdb.com/name/nm0550229/
I would really, really wish there was a FOSS, cross-platform 2.5D CNC GRBL frontend that was not ugly and confusing (bCNC), did not run in my web browser (chilipeppr) and was well maintained. Just a compilable C++/C# or maybe Python project no friggin Delphi 2005 (GRBLize). If anybody has recommendations I’d be really thankful.
CNC.js
Thanks. CNC.js looks nice. Runs on npm, but at least on my computer… Will give it a try.
i dont know what you consider ugly and confusing but i use https://github.com/Denvi/Candle
C++ and cross platform, the only problem is it seems to have not had any work done since last year
UGS – Universal G-code sender
Give a try at CNC Goko maybe?
“PeckDrill perform a drill pecking operation, preventing the bit from clogging. I was tire of cranking the z-axis up and down and up and down…..” Is it possible he doesn’t realise there is a specific G-code command that does exactly that?!? Yes, one still needs to recall it from history and maybe change its parameters before entering it again, but who the hell “cranks the z-axis up and down” to peck-drill a hole…?
Someone who doesn’t have CNC software until they wrote it, obvously.
I’m still searching for the best free CAM software to go from SVG to gcode.
My favorite is now jscut because it is quick to choose pockets, inside, outside. It is 2d. I don’t like having to redo the defaults every time (it is web based, and I don’t want to create a server to run locally, although, without a server, you just lose prerender – but prerender speeds things up rather than dragging the file to camotics).
I used to use the free makerCam but it’s too buggy.
Easel interface was great, but it is online only. I don’t risk having it yanked, or the version changing. Also, it never cut a hole the exact size I specified. Perhaps that has been fixed.
Anyone know of any bug free, tools that are quick to use (fusion360 fails the quick-to-use criteria).
I use Adobe Illustrator and VCarve/Aspire a lot. I can throw together a design in Illustrator in minutes and setup the toolpaths in the same amount to get to cutting quickly. I use it for wood, plastics and aluminium.
I used SolidWorks with HSMWorks for CAM (same CAM as fusion360) but it takes hours to get it to do what I want, even the most basic of toolpaths, if it doesn’t crash like 10x on me. Granted Aspire doesn’t have fancy adaptive clearing toolpaths and may not be the most efficient or friendly for the end mills tool life but it gets the job done.
I’ve edited the cnc output profile (script file) to suit my needs, no editing in gcode needed. You can use Ink Scape instead of Illustrator and the cheapest version of vcarve/aspire if you’re on a budget. The .AI and EPS vector import is really quite good, and it exports to that format as well for a full round trip.
Have you tried Inkscape and the gcodetools add-in?
Yes, I used it a lot. I still use it. It has a gcode tools too. But it takes more time to keep track of path direction and , in general, to set it up.
Today, I found a bug in jscut : if you select multiple shapes to do pockets, only the first selected will cut from inside to outside. The rest cut from out to in.
m still searching for the best free CAM software to go from SVG to gcode.
My favorite is now jscut because it is quick to choose pockets, inside, outside. It is 2d. I don’t like having to redo the defaults every time (it is web based, and I don’t want to create a server to run locally, although, without a server, you just lose prerender – but prerender speeds things up rather than dragging the file to camotics).
I used to use the free makerCam but it’s too buggy.
Easel interface was great, but it is online only. I don’t risk having it yanked, or the version changing. Also, it never cut a hole the exact size I specified. Perhaps that has been fixed.
Anyone know of any bug free, tools that are quick to use (fusion360 fails the quick-to-use criteria).
Im still searching for the best free CAM software to go from SVG to gcode.
My favorite is now jscut because it is quick to choose pockets, inside, outside. It is 2d. I don’t like having to redo the defaults every time (it is web based, and I don’t want to create a server to run locally, although, without a server, you just lose prerender – but prerender speeds things up rather than dragging the file to camotics).
I used to use the free makerCam but it’s too buggy.
Easel interface was great, but it is online only. I don’t risk having it yanked, or the version changing. Also, it never cut a hole the exact size I specified. Perhaps that has been fixed.
Anyone know of any bug free, tools that are quick to use (fusion360 fails the quick-to-use criteria).
if Fusion is not a quick and easy to use for you, then forget CNC. Can’t get much simpler then it.
Lol. No.
other reasons: if a new CEO decides fusion is no longer free and needs a yearly license.
They create a new version that breaks my files (had already happened to me! == Time lost).
Why can’t I post a long reply?! I spent a long time writing it!
m still searching for the best free CAM software to go from SVG to gcode.
My favorite is now jscut because it is quick to choose pockets, inside, outside. It is 2d. I don’t like having to redo the defaults every time (it is web based, and I don’t want to create a server to run locally, although, without a server, you just lose prerender – but prerender speeds things up rather than dragging the file into camotics)
…..
I used to use the free makerCam but it’s too buggy.
Easel interface was great, but it is online only. I don’t risk having it yanked, or the version changing. Also, it never cut a hole the exact size I specified. Perhaps that has been fixed.
Anyone know of any bug free, tools that are quick to use (fusion360 fails the quick-to-use criteria).
I had to divide my post in two parts or else it wouldn’t post.
ATTENTION HACKADAY. YOU ARE LOSING POSTS.
Your comments are being automatically flagged as spam by Akismet. This is a anti-spam tool used by a lot of sites so it would be good to submit a report to them and they’ll get it worked out. Here’s some instructions on the process:
http://www.hacktabs.com/clear-your-name-from-akismet-blacklist/
NOTICE! Your posts will not always appear immediately. Once you’ve sent it, you might need to wait some time before it appears. Right now you have the same post 4 times here.
fyi – Some of my comments on other posts have still not shown up.
(I don’t have time to do QA for the spam detector company.)
Not just for Hackaday, but anywhere you’re putting some time into writing, use a text editor (I use Notepad++), save your work locally. When you finish, copy & paste your masterpiece into the web page.
With LinuxCNC you can use an off-the-shelf PC, or a Beaglebone[1], or a Pi[2] to do the same as the Kflop in this article does. And all the rest of the functionality comes along for free.
Of course, he might put LinuxCNC in the “ugly” category. Though (as one of the developers) I would hope not in “buggy”.
[1] The Machinekit fork seems to specialise there
[2] Just
LinuxCNC rocks, also very intuitive.
I’ve had some issues looking for CNC on Pis, and wondered if you had a suggestion on Kernel or another method for doing it? (I know, leaving a core free for IO has been suggested repeatedly, but I haven’t seen it actually done.)
Because I’d love for a pi to work, so I don’t have to deal with another thing for RT control. (An arduino with GRBL, because while GRBL is awesome for simple things, I want to do some complicated things.)
Pretty sure if that becomes easy (LinuxCNC on the Pi), that will be like a dam breaking.
I have been playing around with this at the weekend with a Pi3B+
There is a pre-patched RT raspbian kernel now available.
git clone https://github.com/raspberrypi/linux.git – to get the kernel source
git checkout rpi-4.14.y-rt – to get the realtime patched version
make menuconfig – and choose Fully Preemptable Kernel in “Kernel Options”
Then follow the instructions in https://www.raspberrypi.org/documentation/linux/kernel/building.md
I am considering making an SD card image available, I have it all working now, but don’t currently have the Pi GPIO driver installed, and currently the servo-thread latency seems poor. If I find the time to sort these things out then I will come back here with a link.
Using the Pi GPIO for step generation is likely to be fairly limiting (about equivalent to using the parallel port). A significant upgrade is likely to be to use http://store.mesanet.com/index.php?route=product/product&product_id=291&search=SPI interfaced through SPI. That gives a lot more IO and steps / encoder counts in Mhz rather than kHz.
As I understand it, LinuxCNC, as much as I’d like to use it, requires special hardware and does not work with GRBL via USB. I’m running GRBL on an ATmega644 with an external physical control panel for the mill ([MaXYPosi](https://github.com/heise/MaXYposi_Grbl_644)), which is quite nice.
A “watered down” version that just does the SVG/OBJ/STL to path to GRBL conversion and communicates with GRBL devices would be nice though…
The whole point of the EMC project (which became LinuxCNC ) was to not require special purpose hardware, but instead to run on off-the-shelf PCs. In this context your Atmega is special purpose hardware.
LinuxCNC and GRBL are never going to play well together as they are both machine controllers. ie, they both consume G-code and output steps to a stepper or PWM to a servo. It’s as irrelevant to talk about LinuxCNC feeding data to a GRBL as it is to talk about the GRBL sending data to LinuxCNC.
LinuxCNC could _probably_ be reconfigured to just be a GUI sending G-code down a USB cable to GRBL, but that doesn’t make sense to the project so won’t happen. It did make sense for Mach3 to do that, because it sold more copies of Mach3, and there was profit in it both for Artsoft and Smoothstepper.
There is a linux port of the KMotion libraries and a web GUI for KFlop called KMotionX
I have tried it on an RPi (it works, although there is an issue reported on RPi at the moment, should work on a Beaglebone as well) but I use it on my mac to control my laser.
https://github.com/parhansson/KMotionX
The GUI is still a work in progress but it works.
https://github.com/parhansson/KMotionXCNC
There’s also a video from Dynomotion trying it out.
https://www.youtube.com/watch?v=oPTJwcre0hA