DIY CNC Machine How Hard Can It Be?

Jun 16, 2007 72 Replies

USB is only good for downloading to the uC. The uC should do all the real time stuffs by itself. That's why I ask for an ARM with 128K flash at a minimum.

I find USB to be really flaky, and as far as I can tell it cannot be relied upon for timing sensitive tasks. Often my mouse won't work until I unplug and replug it, that wouldn't do for a CNC machine that has just commanded maximum current in the Z-axis motor, then bores a hole into the table because the USB needs re-pluging.

PCI might be a reasonable interface except that you have to pay money to join their "secret club" to get a proper device ID, and the standard is expensive (though some thoughtful people seem to have forgotten to take it off their web servers...) I would rather not donate my time to creating devices that promote or support standards that cost money.

If it were not disappearing, I would say that ISA bus is a good solution because the bandwidth is sufficient, and the latency is low (I'm assuming the software is not typical modern bloatware), and it's as reliable as anything could be on an ordinary PC, and widely understood, and easy to implement. If you have money to spend, you could buy an industrial PC, these have some version of the ISA bus with a different connector, and will be around for some time to come. Otherwise you could visit a dumpster and stock up on ISA-motherboards to keep your setup running as long as you want.

I guess that you are probably already aware of the open-source "EMC" software for interpreting G-codes. I haven't tried it but you might find it useful.

Chris

I hoped that putting a smiley after the "Too much?" :)...it would be taken as a joke. Sometimes I like posting a question without an achieve check because things change... This is news...What's new?..What's the latest coolest most modern up to date solution? I mean...I'm afraid if I go too far back in the achieves I'll learn about making fire :) D from BC

At the moment, I'm just evaluating the time and difficulty. So far...I'm loosing confidence for the link between the PC and the motor controllers.. How about Firewire? D from BC

I think if the motor controller stopped getting data from the USB connection, the CNC would just stop moving.. The motor controller isn't getting any XY coordinates. I could inhibit the laser beam if there's no data stream. That way my neighbors below don't get a hole burned into their coffee table :)

D from BC

In our case, we need one for Engineering and some for productions. For Engineering, occasionally screw up is fine. For production, once the program/data are downloaded, we don't care about the PC at all. We need to drill a few thousand holes and cut a few hundred lines, so it could take hours per wafer.

Cool..My PC has RS232 ..

I might go with toothed flat linear guides.

  • \/\/\/\/\/\/\/\/\/\/\/\/\/\ My planned table size is 8ft x 4ft. The machines at Precix.com use that.

It'll be a fun project to gradually build over time. I'll be amused just to turn on a motor with a PC. :) D from BC

Fortunately I'm not, "Where do buy a bag of electrons?" clueless.. :)

PC machine control is a new area for me.. I'm just curious about the general electronics difficulties. Nothing in great detail..Just need to know where to start the research with PC interfacing and motor controller IC's. D from BC

Next time I'm at one of my fab houses, I'll take a closer look at their machines. I know a few places around here with CNC,jet and laser machines. I could photograph the XY mechanics. In fact, those guys would probably be cutting the parts I need to build the CNC. Funny..I need a CNC to build a CNC..Irony? :)

About real time interfacing... I'm mounting a laser on a CNC.. I'll make the electronics shut off the beam if there's an data stream interruption. However, I do wonder if accuracy gets effected by sudden stops and starts. D from BC

With stepper control, at least, my experience has been that there is a controlled rate of speed increase (starting to move) and decrease (slowing down towards the end of a move.)

Jon

Duh! EVERYONE knows the best electrons are mined in africa. Its all of those damned diamonds that slow down the production. :(

Service to my country? Been there, Done that, and I\'ve got my DD214 to prove it. Member of DAV #85. Michael A. Terrell Central Florida

I doubt it, but you will find people that have converted the cheap Chinese regular (manual) mills into CNC machines. E.g.,

formatting link
(and there are several others). The mill in question there (made by Sieg) sells for

This really isn't true IMO. There are plenty of Essentially you now have to rely on the

Hardly -- PCs today are much cheaper, in real dollars, than they were 10 years ago, and *almost free* compared to what they were, say, 25 years ago.

It's true that -- if you choose Windows as the OS platform -- you're relying on the skills of others, but this was certainly true in the DOS days as well -- DOS had thousands of lines of code designed by someone other than yourself, the video card and parallel port hardware and the CPU were all designed by someone else, etc.

I guess I see posts as yours as the typical, "those were the good old days, everything sucks today" when, in actuality, yeah, there's something to be said for the "good old days," but in general they weren't quite as good as nostalgia seems to make them.

---Joel

It's not USB that's at fault, it's the OS and all the applications you have running. Unlike most traditional busses (including PCI), USB has its "isochronous" mode where you're *guaranteed* a certain bandwidth with bounded latency.

This is symptomatic of a flaky mouse or possibly a flaky motherboard or driver software, but says nothing about the USB protocol itself. I remember a particular PCI VGA card I once had that was so poorly built that in many systems it simply didn't work at all, and in others it had highly visible "wavvy lines" in the display... ewwww!

Again, this is really off-base. If you purchase a PCI interface IC such as those made by PXI, you just use their device and vendor ID and then supply your own sub-device and sub-vendor ID. I designed a PCI board some years back around a PXI9054 IC (nice chip!) using nothing more than their data sheets and the ~$50 Mindhsare book on PCI -- no big $$$ amounts anywhere.

Oh please. It's far better than we *have* standards such as PCI and USB and WiFi than everyone running off and creating their own, incompatible interface "for free" (which isn't free anyway!).

Ewwww... noooo!

ISA doesn't exist anywhere in the standard consumer PC space anymore, and I think it's even accurate to say that VME has held on better in the industrial/embedded computing space that ISA!

---Joel

My opinion is that it's "soft" real-time, since the impression I had from the O.P. is that he isn't trying to build a super *fast* machine. If you're just trying to cut some aluminum or UHMW or PCB material at home (as opposed to building a "production" quality machine where you fully intend to bill time by the minute), it's not a big deal if your cutting spend wanders a little bit from location to location. Certainly when people mill by hand this occurs, and decent machinists still turn out very good work anyway.

Building a fast machine certainly is a significant challenge and easily warrants plenty of standalone processing. Hmm... anyone see that You Tube video of the CNC lathe that can cut, e.g., square and rectangular profiles out of round stock? That's not something I'd want to trust a standalone PC to do, since a standalone DSP or CPU is a lot nicer in that scenario than trying to insure you have complete control of the CPU on a modern "desktop" OS.

IBM assembler H - HCF command (...halt and catch fire). Next...?

Cats, coffee, chocolate...vices to live by

Those electrons could be 13.7 billion years old...I'm looking for a bag of brand new electrons :) D from BC

Fast CNC ..no... I'll go for quick development over making a speedy CNC machine.

I'm guessing the motor controllers just need xy data for the PC interface.. For example: Motor X go to location AC0E 0097 Motor Y go to location 3498 EA33 Motor Z go to location 0000 0000

Somehow, I can't imagine this requiring alot of stand alone processing.. D from BC

D from BC wrote in news: snipped-for-privacy@4ax.com:

Depending, you probably won't be directly controlling the motors with your host PC, but using a decent Micro to do that.

I'd have the mico interperet instrictions, which amount to telling the controller which x/y/z coordinates to go to and at what velocity, and let the controller deal with the minutae of timing and encoder reading. maybe have an micro per motor.

Yup...I'd just have the PC just stream xyz data to the motor controllers. The motor control units will have to figure out what to do with the data. For a basic prototype, I'll make everything constant velocity. Or perhaps a velocity based on the PC data rate or step size.. D from BC

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required