Am I thinking about this correctly?

In the original post, I noted several inconsistancies in computer understanding. A "parallel" port that was used for printers is also used for other "communications" and is today still faster than a USB. It has been discontinued largely because USB is faster in other respects. And simpler to implement for multiple connections.

Thanks for the reply!
I mentioned parallel ports in my original post because I saw that several CNC controllers (sometimes called breakout boxes) used parallel port (DB-25 connector on the PC side) from the PC to the breakout box, but as far as I can tell, the PC wasn't using the standard EPP or ECP communications protocol, it was raising and lowering individual pins. I brought it up because it's difficult to find a desktop or laptop that has these ports now, where USB A and USB C are more common. But USB connections would require more logic to interpret some sort of protocol rather than just driving lines directly. That's what I was asking if USB is fast enough.

Having looked a little more since I posted, I suppose this is why some CNC breakout boxes use Ethernet cables for connection? With that, you would not run the actual Ethernet protocol over the cable, but are back to a parallel cable with 8 data lines.
 
Last edited:
Disclaimer: I am not a fan of Mach3/4 systems.

Mach3 used to be the most popular CNC operating software for hobby users, cheap, relatively simple, and well documented with a huge user base.

The old parallel port protocol was the way Mach3 communicated with the outside world. The breakout board was simply an optocoupled buffer/level converter to isolate the PC from the world. Mach3 has been out of production for almost 10 years now, but still very popular. All of the motion control (trajectory planning etc.) was done in the PC. The down side of the parallel port was the limitation of about 15 usable I/O lines. This is about the minimum required to run any CNC machine. The other issue was Windows would tend to ignore the parallel port if it decided to do some other mundane task, while Mach3 happily carried on, thus causing ruined parts when position was lost.

When Mach4 was released, they moved to USB or Ethernet communications. USB is somewhat sensitive to noise which has caused problems for some users. Ethernet seems to be a more robust system. I don't know if the Ethernet systems are using TCP/IP or UDP protocol.

A motion controller does its own trajectory planning. You tell it to move the axes to some point in space at a given speed and acceleration, and it figures out the best way to do that. Most of what the eBay and other sellers as touting as ''motion controllers'' are not. They are simply breakout boards, some with a low level of intelligence, but the trajectory planning is all done in the PC. The real advantage of the USB and Ethernet boards is that they will plug into any modern PC, and are no longer limited to 15 or so I/O lines, they can be virtually unlimited. However, in most cases the software driving them, and the hardware is still subject to the old I/O limitations.

You will need to make a decision on the type of system you want; open loop, loop closed at the drive, or loop closed at the controller. All of them work. My personal preference is the loop closed at the controller using linear scales on the axes, this is also the most complex and comes at a bit higher, but not prohibitive, hardware cost. The software/hardware options are almost unlimited, ranging in cost from cheap to crazy expensive.
 
I suppose this is why some CNC breakout boxes use Ethernet cables for connection? With that, you would not run the actual Ethernet protocol over the cable, but are back to a parallel cable with 8 data lines.
I'm not sure where you are headed here. An EtherNet is a serial device of 4 pairs, 2 for transmit, 2 for recieve. They could be used as a parallel device if another conductor was available. Which it isn't. . . RJ-45s are relatively low speed connectors when compared to Radio Frequency signals. But fast when compared to a Modem. The EtherNet cable can be (and frequently is) used for non-EtherNet signals. But is still a serial device at best.

The speed available with EtherNet comes from the twist rate of the cable, where the line and return match a specific frequency. Although there is a copper to copper connection, at DC levels the speed is somewhat restricted. It would do well enough as transmitting a switch closure, but for serial data transmission the "baud rate" must be at or near the frequency determined by the cable. This is determined by IEEE, as in "CAT 3", "CAT 4", CAT 5". Using a "CAT 3" cable with a "CAT 5" signal will generate an inordinate number of "fallouts". Essentially making gibberish of communications.

Where EtherNet "cables" are used for non-EtherNet signals, the serial ccommunication takes place at or near EtherNet speed. But it is still serial. Computers do their thing in a serial fashion, one "bit" at a time. Parallel communications involves a shift register and associated buffers(bit boffer). The CPU is a parallel device, but beyond that, when interfacing with the real world, serial requires only four lines where parallel requires ten minimum. This can be reduced by one if timing is very precise.

Now I'm getting confused myself where memories of fiber optics telephony are getting in the way. The above post is by someone that knows what he's talking about. That outdoes me by a couple orders of magnatude or more.

.
 
I think we're all on the same page. Thanks to you both. I didn't know the history of Mach3 using parallel ports.

@JimDawson : What systems are you a fan of? I came into this assuming the system would use DRO-type scales to do closed loop, because well skipped steps on open looped consumer-level 3D printers are a thing people worry about sometimes, and I assumes since scales and DROs are common for mills, that the CNC'd mills would just use that, because it gives actual position, not just inferring it from motor shaft rotation or pulses sent. But on this thread, I've discovered my assumption about using scales is wrong, it's not common.

I don't own a machine now, so I'm starting from a clean slate.
 
Ok, so a typical setup is PC running Mach3 or similar interpreting g-code and providing a GUI (where I could manually enter g-code) connecting via USB or Cat5 to a CNC motion controller (the MCU) which drives the motors. In this situation the PC is generating the steps.

So from your post, I just learned is that CNC systems don't typically use DRO scales mounted on the machine, so the feedback is either none (for a typical stepper motor) or how much the motor rotated if I'm using servomotors, but that still has to account for backlash. Given that scales and DROs which read actual movement are a common addition to non-CNC mills, is surprises me that DRO-type scales aren't used for positional feedback!

In any case, do a lot of CNC mill folks do "manual" milling from their PC GUI? Looking at the displays, it seems like it would be pretty easy to do using the software.
You are saying some half truths here. Let me clarify.

All current industrial CNC machine (except mazak) use scales and encoders. The controller checks each against each other and will throw a "Following error" if they don't match within a specified range. This will come about with lost motion, typically a failing ball screw or support bearings.

Mazak is the only industrial machine that doesn't use scales(although can be ordered with them) as it actually has oil chilled ball screws. The screws are drilled axially and maintained at 72 degrees with a chiller unit to eliminate temperature/measurement issues.

As for controllers, I think people are muddying the water here.

There are two distinct parts that may appear combined but are two separate entities. There is the HMI (human machine interface) and the motion controller.

The motion controller is a real time processor that is feeding the machine its steps/directions, and looking at the encoders and comparing. The HMI is a separate computer, typically much more powerful. It feed the program to the motion controller(many steps ahead) and handles all the graphical controls for the human operator. It is typically much more powerful of a computer but uses a floating point processor, and many times is a PC or PC based.

You typically can not have a motion controller with ethernet or usb connection as there are pauses in the protocols. Its not that its not fast enough, its not consistent enough. By have a motion control IC such as Acorns beagle bone, it plods along converting G code to motion, while the PC (connected by ethernet) does every thing else.

I am a CNC electrician/mech on my day job. There is tons of ethernet used but mainly for observation of the systems remotely and troubleshooting/repair. USB is not used (on the machine side) for anything except to transfer files onto the Hard drive of the hmi.

I don't know of any of the hobbyist grade controllers that can use linear scales. Even the centroid oak, while having input of the scales, is just for dro purposes and not checking of the motion control. (I believe it to be so but I have not verified this last part)
 
Last edited:
I think we're all on the same page. Thanks to you both. I didn't know the history of Mach3 using parallel ports.

@JimDawson : What systems are you a fan of?
For an open loop or loop closed at the drive, Centroid Acorn or Dynomotion Kflop would get my vote. The limitation here is that you still don't have DRO feedback when operating manually. As a side note, Mach3 can be used with a Galil controller and have DRO feedback when used with linear scales when using the machine in manual mode. But it is still an open loop system, in other words, Mach3 or any other open loop system has no idea what the machine is actually doing.

For the loop closed at the controller and the ability to use linear scales, Dynomotion Kflop/Kanalog, CamSoft, or my software would be my choice. My software is free, but does require a Galil motion controller (available on eBay at reasonable prices). It's a long story, but my software grew out a bad experience with Mach3. Or as a software engineer, you could just write your own CNC software. It took me about 2 weeks to crank out v1.0, and I couldn't even spell CNC at that time.

I came into this assuming the system would use DRO-type scales to do closed loop, because well skipped steps on open looped consumer-level 3D printers are a thing people worry about sometimes, and I assumes since scales and DROs are common for mills, that the CNC'd mills would just use that, because it gives actual position, not just inferring it from motor shaft rotation or pulses sent. But on this thread, I've discovered my assumption about using scales is wrong, it's not common.
At the hobby level, the options for a full closed loop system are somewhat limited. All industrial machines are closed loop, however, most can not be operated manually.

I don't own a machine now, so I'm starting from a clean slate.

I guess it's time to write a specification and set a budget. I'll be happy to try to answer any questions.
 
First let me say that Both Bill and Jim are top level and extremely knowledgeable. I have and continue to learn from both of them with almost every post. It might help to hear my experience from the bottom of the knowledge tree regarding Mach 3. I have had no professional experience with metal working so .... First I have a CNC Mill from Precision Mathews. It is an Open loop stepper design and I run it with Mach3. As has been pointed out, there is NO DRO feedback when operating manually. It can be operated manually, but I have never felt the need. I make cuts one of three ways. 1. Use CAD and CAM to create a GCODE program. 2. Hand Code in GCODE (only for simple repetitive operations like facing). 3. use the MDI interface to enter simple GCODE commands. So far, I have found the MDI process similar to operating in a manual mode in that I only move one axis at a time (straight cuts). I am running Mach 3 on a very old desktop computer that I had laying around. I use Ethernet to connect to a "smooth stepper" board. I know that with an open loop system I could loose steps on the stepper motor and compromise or ruin parts. It should be noted that after several years of making parts, I have ruined many parts due to my carelessness, programing or just lack of knowledge. I have yet to identify a part that has be scrapped or even compromised due to missed steps. Not to say it is not happening, but my simple needs don't require 0.001" accuracy (or even plus or minus 0.005". My point is that if you are a beginner, like me. You could consider using a simple open loop system and mach-3 as a "learner" system. Once you get the different parts of the Concept to final part workflow down you can upgrade or replace with what meets your individual needs. Regardless of that path you choose, be sure to share with all of us and we learn better together.
 
Thanks to everyone for taking time to give detailed replies. I'm starting from: "I pretty technical about computers, but everything about CNC and machining is from read some stuff on the Internet and watching some videos", so it's likely to be wrong in many ways

Using @Boswell example of a PM machine, with a PC running Mach3 and a SmoothStepper. The PC is the human interface and g-code interpreter, the SmoothStepper gets instructions from Mach3 over an Ethernet cable (not sure it's actually the Ethernet protocol, could be!) I just looked up the docs for setting up an Ethernet SmoothStepper, and the instructions ask that you assign a fixed IP address (e 10.9.9.1) on the PC side, so I assume they are using a protocol on top of at least IP.

Ok, that all makes sense in my head. Continuing to use this example: "manual" operation is done at the Mach3 interface either using GUI elements it has or entering g-code by hand, which I'm comfortable doing now on my 3D printer. I'm ok with not actually using the handwheels even if the machine I end up with has them.
 
Last edited:
I guess it's time to write a specification and set a budget. I'll be happy to try to answer any questions.
Yup, that's where I'm at I interested in this as a hobby, but don't have specific parts I want to make right now, so capacity of the machine or even CNC or not are all up in the air right now. At a family holiday party, I mentioned this current obsession to my uncle and he told me about an Ultimat 3 lathe has at home with a mill attachment.

While I don't know if I want a combo machine like that, it has me wondering if starting small like this (would a smaller Sherline mill be a similar product available now?) accepting the limitations of that small machine and just figuring out if this hobby really grabs me. This is I think what @Boswell meant when he said:

> You could consider using a simple open loop system and mach-3 as a "learner" system.

But taking even a bit further.
 
Last edited:
You typically can not have a motion controller with ethernet or usb connection as there are pauses in the protocols. Its not that its not fast enough, its not consistent enough.
I would disagree with that. :) I have successfully done it, over Ethernet, and it does not require much of a PC to pull it off. But it does require pre-compiling the controller code and making sure you keep the command buffer full. The command buffer in my case is 512x80, so lots of room. In most cases it takes several seconds to even several minutes to run the buffered commands, so any minor pauses in data transfer are not even noticed. It normally takes about 100ms to transfer 400 lines of commands to the onboard buffer.

I do agree that interpreting and drip feeding in real time would be a disaster.

While I don't know if I want a combo machine like that, it has me wondering if starting small like this (would a smaller Sherline mill be a similar product available now?) accepting the limitations of that small machine and just figuring out if this hobby really grabs me.
Nothing wrong with a Sherline, a nice little table top machine. As long as you stay within its capacity it's a great hobby machine.
 
Back
Top