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