Let's see if I can sum up this discussion and then I'll be quiet about it.
1. LinuxCNC runs on PC type hardware generally distributed with WIN-10 and is
open source and free for download.
a) However there are also PC compatible boxes designed for embedded systems
but still initially designed for WIN-10 that also work.
b) The Beagle Bone Black hardware is open source which is why the LinuxCNC
port of MachineKit can run on this platform.
2. LinuxCNC does the user interface, display of tool path, loading of G-Code
and trajectory planning.
3. LinuxCNC can issue simple step/dir motion at limited speeds on a Parallel
port if it's included on the CPU motherboard.
a) not all PC add on parallel port cards have drivers that make the card
work with LinuxCNC even though they will work with WIN-7 and up.
b) not all PC add on Video cards (or motherboard video) work well with
LinuxCNC resulting in a latency warning if step rates are too high.
4. LinuxCNC stops being an true open source solution the moment an aftermarket
hardware step/servo interface board is required.
a) external boards all use different hardware/communication formats so
there is no pluggable replacement for one compared to another.
b) if an existing unit fails and the supplier has vanished a different
incompatible unit is normally required with extensive wiring changes.
The above points suggest that for LinuxCNC to remain an true open source
solution, a redesign is required which describes an interface and
communications format via Ethernet and a target module. The target module
would undoubtedly have a 32 bit processor running an RTOS and perhaps even an
FPGA. Or maybe a big FPGA with a processor core defined inside it.
But this module would have motor signalling and I/O on the output side with a
clearly defined TCP/IP protocol on the input side. Ideally a unit without an
FPGA but with a 32 bit processor with full source code and schematics would be
the minimum solution. Essentially six axis where we have X,Y,Z and A,B plus
Spindle. Enough I/O for limit switch, tool changer control and even an array
of buttons and a simple display. Also at a minimum one serial port with
RS232/485 (jumperable for driver type) with MODbus support and one CAN port
with CANopen support. Such a unit could run the machine in a standalone local
fashion without connection to a PC with simple motion actions.
And once again this unit should be fully open source with both schematics and
software. Needless to say the LinuxCNC software driver would also be open
source.
Oh and the CANopen side of things would allow it to either be the CANopen
master running CANopen motors or as a CANopen slave controlled by a CANopen
master for synchronizing motion over a larger number of systems.
At its simplest though, it would look like a MESA 7i92H looking like two PC
Parallel ports but not require writing and programming the FPGA to do something
as simple as switch between a PWM on parallel port pin 14 and a stepgen on pin
14.
For example:
net spindle-pwm => remoteport.0.pin-14-out
net spindle-pwm <= pwmgen.0.pwm
or
net spindle-step => remoteport.0.pin-14-out
net spindle-step <= stepgen.5.step
At the moment with the MESA 7i92H we need:
net spindle-cw => hm2_7i92.0.gpio.005.out
which is pin 14 on the P2 parallel port connection.
Stepgen.5.step is on the P1 connector and can't be put on the P2 for a simple
single Parallel Port implementation. Not without going through the steps to
reprogram the FPGA file and there is no off the shelf ready to go file that
will do that. So one has to learn about FPGAs and how to program them to set
up one output to be step instead of PWM. (the direction probably also has to
be defined for the stepgen)
On MACH3 it's done with a checkbox regardless of whether the output is the
parallel port on the PC motherboard or the Ethernet Smooth Stepper. It should
really be that simple for LinuxCNC.
IMHO
John Dammeyer
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users