But I am perplexed that if LinuxCNC is so modular why MachineKit for the Beagle was forked rather than maintained as part of LinuxCNC.

The Machinekit team wanted to replace and redesign some of the core components of LinuxCNC including the framework that enable the modules to talk to each other. NML works but is pretty old and techniques have improved over time. They also wanted a more well defined split between the core motion control and the user interface. While these goals are theoretically good the end result is that we have two projects running in parallel with the available developers split between the two projects. Machinekit appears to have pretty much run out of steam due to a lack of developers and interest.

This is a pretty common sequence of events with open source projects. Someone or a group decide they can do it better so they fork a project and go their own way. After a while they lose interest and their project stalls. Occasionally the fork becomes more popular than the original in which case the original project often peters off.

I think partly I don't understand the difference between the current LinuxCNC and the MachineKit LinuxCNC. What does make them so different that a newer version of LinuxCNC with bugs removed can't be used?
For the average user there isn't a huge difference. They just had different ideas of how it should be done.
Since the Beagle has an Ethernet port could I use it to run the MESA? Or does that once again require long strings of LinuxOS upgrade knowledge since the for LinuxCNC need a precompiled (for BBB) hostmot2 driver?

LinuxCNC requires real time support. Real time support reduces performance for user-space applications so out of the box the Linux kernel is not set up for this. There are some projects that add real time support to the Linux kernel such as RTAI, Xenomai and rt-linux. These projects modify the Linux kernel to add this support. To do this you need to rebuild the kernel. The kernel is the bit that talks to the actual hardware. The Beagle and the Pi use quite different hardware so they have different kernels. Kernels are so specific even the Pi3 and Pi4 have different versions.

Machinekit use Xenomai on the Beagle so they have this modified kernel. The rest of the Beagle specific stuff could be back ported from Machinekit to LinuxCNC. As usual it just needs someone to spend the time to do this.

If you want fast stepping from a Pi you are going to have to resort to external hardware. To be honest in my opinion for step generation the best bang for your buck would be to hang an Arduino off the Pi using the SPI bus then grab some of the step generator code from GRBL or Marlin. It's not exactly a one weekend project but it is realistic for one person to complete in a reasonable time. As far as I know LinuxCNC already has an SPI driver for the 7I90 so it wouldn't take much to tweak that driver to work with an Arduino.

I already use Arduinos talking over Modbus for keypads and front panel indicators. Modbus however is not fast enough for motion control.

I'm working on a project for a customer at the moment that has an Pi compute module talking to an XMega over SPI. The Pi runs a touch screen GUI and the XMega does the real-time stuff. There isn't much that could translate to to LinuxCNC though. The XMega is outputting lots of PWM channels rather than step/dir.

Les




_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to