# Am I thinking about this correctly?



## krby (Jan 2, 2022)

I'm posting to get a head check on what I want and if I'm thinking about it the right way:

Overall, I'm looking at a benchtop CNC mill, something about the size of a PM-25. I've done some research and realized there's quite a bit of overlap with the concepts of a 3D Printer (which is basically a CNC hot glue gun).

What I think I'd like to end up with is a small CNC mill that I can also use in sort of manual mode.

On the electronics side, it looks like motor, drivers, a controller, and a computer. The computer interprets the g-code, sending pulses to the controller which then uses the drivers to rotate the motors a specific distance.

Comparing this to a non-CNC mill, the computer and its monitor can serve as a DRO, right? Do folks use CNC machines this way? Are MPG pendants used to control are would I continue to use the wheels on the mill? 

Also, historical posts make me thing CPU power was a problem in the past,  is that still problem given modern PC hardware? I'm assuming CNC controllers no longer use parallel port connections, and USB is fast enough? For comparison, on one of my 3D printers, the "PC" is a Raspberry Pi4, and it is capable of controlling 7 stepper motors (4 motors for Z, 2 for X/Y, 1 for the extruder) without breaking a sweat.


----------



## ttabbal (Jan 2, 2022)

Unless the cnc has encoders, the computer DRO is just telling you how many pulses it sent. So it wouldn't be able to tell if you moved things manually. I've seen people do things like that with the pendant, but beyond the really simple stuff, it makes sense to use gcode or the interactive programming if it's available. 

3d printers are using even less cpu. Mine still runs an 8 bit AVR. CPU might be a problem for interactive programming systems, but gcode is really simple. CAD/CAM can use a lot of power, but you don't need that at the machine. 

USB is fast enough, but you need a microcontroller on the other end to convert the data into pulses for the stepper controllers. Parallel port systems just connect the drivers to the parallel port and the computer drives everything directly. A pi could easily handle that with the gpio header.


----------



## krby (Jan 2, 2022)

ttabbal said:


> Unless the cnc has encoders, the computer DRO is just telling you how many pulses it sent. So it wouldn't be able to tell if you moved things manually. I've seen people do things like that with the pendant, but beyond the really simple stuff, it makes sense to use gcode or the interactive programming if it's available.
> 
> 3d printers are using even less cpu. Mine still runs an 8 bit AVR. CPU might be a problem for interactive programming systems, but gcode is really simple. CAD/CAM can use a lot of power, but you don't need that at the machine.
> 
> USB is fast enough, but you need a microcontroller on the other end to convert the data into pulses for the stepper controllers. Parallel port systems just connect the drivers to the parallel port and the computer drives everything directly. A pi could easily handle that with the gpio header.


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.


----------



## RJSakowski (Jan 2, 2022)

I have a Tormach PCNC770 which has a pendant to allow jogging on any single axis ei5ther by stepping a defined increment or at  preset rates. I use the pendant to do manual machining more often than I I use G code programming.

The electronics is propitiatory so I don't know what  happens internally but movement via the pendant does update the DRO.  Originally, the 770 used a parallel port for communication.  Tormach updated  the controller with a dedicated board using the Mesa 5125 Superport.


----------



## RJSakowski (Jan 2, 2022)

krby said:


> 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.


The Tormach CNC doesn't have a typical DRO but calculates position based on the number of steps sent from a reference position.  As such, it doesn't account for lost motion. With the ball screw drives, this typically amounts to around 1 mil.  While I haven't used it, I believe that there is a lost motion correction option that can be applied when running a CNC program to avoid a step when reversing direction.


----------



## JimDawson (Jan 2, 2022)

Yes, CNC mills can be operated manually, I do so all the time with my machine.  For some simple operations it is much faster than creating the G-code to perform the operation.  It's my opinion that a MPG is pretty much useless on a CNC mill, especially one with hand wheels, but that is just a personal opinion.  Having said that, I use the MPG on my lathe all the time, it's near impossible to set it up without that.

In general, simple open loop step & direction systems do not have any provision for position feedback.  So when operating in manual mode with hand wheels, you get no on screen DRO position data.  Position feedback is normally provided by an encoder, either rotary, attached to the ball screw drive system, or linear attached to the axis.  Some people have used a separate DRO installation to provide position feedback in manual mode.

If you are going to install linear scales for a DRO, you may as well tie those back to the interface board and have a full closed loop system.  This of course requires an interface board that will accept encoder inputs and close the loop at the controller level.

My preference is 1 micron magnetic linear scales attached to the axes.  This way you are reading the actual axis position rather than counting on the ball screw for position data.  Pretty much automatically compensates for any backlash and ball screw error.  I find that the linear magnetic scales are cheap, compact, and pretty much bullet proof.

Then it's just a matter of choosing the motor type (servo or stepper) and controller that you want to use.  For motor types, there are steppers, hybrid steppers (with the loop closed at the drive level), and servos.  Most modern servos will accept step & direction input with the loop closed at the drive level, or +/- 10V analog command input with the loop closed at the controller level.


----------



## krby (Jan 2, 2022)

JimDawson said:


> Yes, CNC mills can be operated manually, I do so all the time with my machine.  For some simple operations it is much faster than creating the G-code to perform the operation.  It's my opinion that a MPG is pretty much useless on a CNC mill, especially one with hand wheels, but that is just a personal opinion.  Having said that, I use the MPG on my lathe all the time, it's near impossible to set it up without that.
> 
> In general, simple open loop step & direction systems do not have any provision for position feedback.  So when operating in manual mode with hand wheels, you get no on screen DRO position data.  Position feedback is normally provided by an encoder, either rotary, attached to the ball screw drive system, or linear attached to the axis.  Some people have used a separate DRO installation to provide position feedback in manual mode.
> 
> ...


Ok, this is what I was thinking of doing!
So with the right controller software and interface box, I can connect scales back to the controller software so it uses that for position feedback. This would let me mostly ignore backlash in both manual and CNC operations, and.I think let me have a closed loop system even with stepper motors.

Do I have that right?

One other question: Is it much tougher to use the handwheels with the stepper motors connected?


----------



## JimDawson (Jan 2, 2022)

krby said:


> Ok, this is what I was thinking of doing!
> So with the right controller software and interface box, I can connect scales back to the controller software so it uses that for position feedback. This would let me mostly ignore backlash in both manual and CNC operations, and.I think let me have a closed loop system even with stepper motors.
> 
> Do I have that right?



Yes, it's possible to do that.  I have done so using step & direction stepper commands with linear scales.  This is getting into dual loop territory.  As far as I know there are no available controllers that would do this off the shelf with the factory loaded firmware.  I used a Galil controller and wrote my own ''correct-on-the-fly'' algorithm where every 2ms the controller would compare the commanded position to the actual position and make an adjustment as needed, almost like a PID loop.  Galil controllers have a lot of built in functionality in the firmware, and additionally have a blank canvas for user written programs.  Dynomotion products are also user programmable, and I believe the source code is published.  Their products are programmed in C or C++, I forget which.  Both the Galil and Dynomotion controllers are real motion controllers and do the heavy lifting, rather than the computer having that burden.



krby said:


> One other question: Is it much tougher to use the handwheels with the stepper motors connected?



Steppers do tend to cog, and offer some resistance to turning.  This question came up on another forum in the last couple of days, and the user said that the turning resistance was acceptable when operating manually.  If I were to use steppers on a manual/CNC machine, I would add a switch or relay that would disconnect the stepper from the drive when I wanted to use the machine in manual mode.


----------



## brino (Jan 2, 2022)

@krby

Welcome to the group!

It is the first time I have seen the date written Jan 1, 2022, it made me think.......

Brian


----------



## Bi11Hudson (Jan 3, 2022)

krby said:


> On the electronics side, it looks like motor, drivers, a controller, and a computer. The computer interprets the g-code, sending pulses to the controller which then uses the drivers to rotate the motors a specific distance.
> ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~    ~
> Also, historical posts make me think CPU power was a problem in the past, is that still problem given modern PC hardware? I'm assuming CNC controllers no longer use parallel port connections, and USB is fast enough? For comparison, on one of my 3D printers, the "PC" is a Raspberry Pi4, and it is capable of controlling 7 stepper motors (4 motors for Z, 2 for X/Y, 1 for the extruder) without breaking a sweat.


At risk of stepping off into a subject where I am 40+ years and five strokes out of date, I offer my comments from the perspective of a computer engineer and "tinkerer". I have worked with NC machines to upgrade to CNC. And built CNC controls for my hobby machines. Then took them off. But the controllers were adapted to use servos and measuring phase displacement of "selsyns" to measure distances. The computer controls of today, using steppers, are so far advanced that there is little technical comparison. 

On even small machines, there are capabilities to move multiple axes concurrently. To compare machine moves to "people" functions is equivelent to comparing apples to wooden stools. Speed is limited to machine moves while cutting. An example in computer terms would be a "band printer" to a "dot matrix" printer. There is simply no comparison. In 1984, U S Steel had a PLC controlling a steel mill. Where 100 tons an hour were cast with 6502s and Z-80s running at 100 KHz. 

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. 

I need to back out of this because I am also behind the times on computers. There are places where "X and Y" can be moved as easily by hand as by machine. But the accuracy of hand movements cannot compare to machine movements. On smaller machines, hobby level machines, the manual controls exist. And computer controls are added on. On more commercial machines capable of controlling microns of movement, the manual controls do exist. But cannot control beyond a tenth of a thousandth.

.


----------



## krby (Jan 3, 2022)

Bi11Hudson said:


> 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.


----------



## JimDawson (Jan 3, 2022)

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.


----------



## Bi11Hudson (Jan 3, 2022)

krby said:


> 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 *R*adio *F*requency 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.

.


----------



## krby (Jan 3, 2022)

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.


----------



## Firebrick43 (Jan 3, 2022)

krby said:


> 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)


----------



## JimDawson (Jan 3, 2022)

krby said:


> 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.



krby said:


> 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.



krby said:


> 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.


----------



## Boswell (Jan 3, 2022)

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.


----------



## krby (Jan 3, 2022)

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.


----------



## krby (Jan 3, 2022)

JimDawson said:


> 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.


----------



## JimDawson (Jan 3, 2022)

Firebrick43 said:


> 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.



krby said:


> 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.


----------



## Firebrick43 (Jan 3, 2022)

JimDawson said:


> 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.


That is why I include the word "typically"  

And I would agree with you that older computers do better, more the software and way it processes it.  But those days have sailed and 386/486 boards are actually prohibitively expensive now as there is such a market for them for old industrial controllers.  

Windows 10/64 bit controllers don't work as well, in this regard.  There is a reason every large manufacture has a discrete motion control processor and a separate HMI computer.  

As to the buffer size, depends on machine and what its doing.  Some 3d profiling programs, peck turning, or trochordial milling and your buffer is really small.


----------



## JimDawson (Jan 3, 2022)

Firebrick43 said:


> Windows 10/64 bit controllers don't work as well, in this regard. There is a reason every large manufacture has a discrete motion control processor and a separate HMI computer.



My software runs fine on a Win7/10 64 bit computer.  My system does use a high end dedicated motion controller that does all the heavy lifting.  The PC only really does HMI, file management, and G-code translation functions.  I have not noted any system lag when running complex 3D profile or trochoidal tool paths, nor have I noted any issues when peck turning on the lathe.


----------

