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