MachineKit

What’s the status with MachineKit for the BBB? Will it ever be resurrected and brought up to date? My understanding is MachineKit used a different approach to the RTOS part of real time Linux compared to LinuxCNC running on say the Pi4.

John

1 Like

The BBB image has always been developed and debugged by users of MachineKit..

Regards,

Robert,
Can you perhaps explain the difference between MachineKit and Linux from the RTOS perspective?

I recall something like the Machinekit has the RTOS underneath LinuxCNC where Linux itself is just a task and the RTOS therefore allows the embedded stuff to run at the same or higher priority giving better real time support.

LinuxCNC has a modified kernel that puts the CNC part at a higher priority within the Linux RTOS environment.

Have I got that right? I remember reading somewhere there were actually 3 different versions of 'real time' for Linux. Just don't remember where I read that.

Thanks
John

You should really ask the MachineKit developers..

For the BBB, they originally used the Xenomai kernel patchset, then
eventually started working on utilizing the RT Linux stuff.. Then they
discovered FGPA hardware, shortly after their forum really became
quiet..

It's just an application that utilized Xenomai and RT kernel features..

Regards,

For the BBB, they originally used the Xenomai kernel patchset, then
eventually started working on utilizing the RT Linux stuff.. Then they
discovered FGPA hardware, shortly after their forum really became
quiet..

It's just an application that utilized Xenomai and RT kernel features..

Thanks. That's the information I was looking for.
Have a good weekend.
John

Regards,

--
Robert Nelson
https://rcn-ee.com/

.

Hi John,

I’m not a maintainer of MachineKit or LinuxCNC, so I can’t speak for them, but I do actively use MachineKit on the BBB. Development on MachineKit seems to be mostly focused on the HAL (Hardware Abstraction Layer) of the technology stack and breaking apart LinuxCNC into more maintainable pieces. MachineKit is now split into two projects, MachineKit-HAL (https://github.com/machinekit/machinekit-hal) and MachineKit-CNC (https://github.com/machinekit/machinekit-cnc). The CNC side of the project is very stale. Instead of developing the CNC side, they performed a fork of LinuxCNC and changed only what was necessary to use the CNC side of LinuxCNC on top of MachineKit-HAL and actively rebase upstream changes to be as insync with LinuxCNC as possible. This project is called EMCApplication (https://github.com/machinekit/EMCApplication).

I’m not too familiar with the details of the real time differences, but I believe MachineKit-HAL will take advantage of real time features if they are present on the machine. We currently use the rt-preempt kernel to get the best latencies we can, but one of the biggest benefits of the BBB+MachineKit-HAL is it’s hal_pru_generic implementation that allows dedicated use of the PRU to generate step+direction signals, so it isn’t necessary for that processing to happen on the main CPU.

There isn’t currently a BBB image available that uses MachineKit-HAL+CNC or MachineKit-HAL+EMCApplication (the current images use the archived MachineKit project prior to the split). I’ve made progress towards putting an image together with the latest of MachineKit-HAL+EMCApplication on the BBB and BBAI, but I’m not sure when it will be ready for general use.

-John

Thank you.

That explains what happened. Fascinating.

John Dammeyer