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
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to