On Sat, 16 Apr 2022, Torsten Curdt via Emc-developers wrote:
Date: Sat, 16 Apr 2022 01:23:49 +0200 From: Torsten Curdt via Emc-developers <emc-developers@lists.sourceforge.net> To: emc-developers@lists.sourceforge.net Cc: Torsten Curdt <tcu...@vafer.org> Subject: [Emc-developers] curious about the ethernet protocol Hey there, I was wondering the following - and mainly really to understand how LinuxCNC works. Since I couldn't get a proper answer in the user chat I thought I would try here. IIUC the GCODE interpreter runs in the non-realtime part. It sends the step instructions to a card to execute the steps. This is obvious when using a LPT port, but how does this work via Ethernet? Are the steps compressed into instructions and then applied on the Mesa cards? Poking around it seems like there are motion commands and status commands? So it probably sends "go there" and "where are you" and the card generates the steps required and reports back. Does that sound right? Is there a definition of the protocol to look at? I assume the code of what gets pushed to the Mesa's must be somewhere, too.
The way the Mesa stepgen works currently is basically copied from the software stepgen component. The host PC sends velocity commands to the stepgen hardware (a 48 bit DDS) and reads the stepgen current position (all at the nominal 1 KHz servo thread rate) Then a feedback loop in LinuxCNC or hal corrects for the minor position errors due to differences in timebases, delays between position reads and velocity writes, velocity setting resolution limits etc. This feedback loop keeps the position error each sample time to a small fraction of an external step.
And now I hope I don't get lynched for asking: How is that ethernet protocol different from the Mach3 ethernet protocol? Are there significant differences between the protocols that would prohibit LinuxCNC speaking the Mach3 ethernet protocol?
Mach is not real time so needs buffered hardware/software in the remote device that stores a series of moves (perhaps PVT segments) and plays them out while the host keeps the buffer full. This is not compatible with LinuxCNC's motion model where all motion hardware access is real time.
Or maybe no one knows or cares? But I was wondering if implementing the protocol could be another alternative to flashing Remora to supported boards. While waiting for Mesa stocks to recover, I am really just curious to understand the technical side of the LinuxCNC vs Mach3 comparison. cheers, Torsten _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers
Peter Wallace Mesa Electronics _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers