I will do the best I can explaining but by no means am I more than a LinuxCNC or Machinekit beginner. I’ve only been able to get it running on my machines with the assistance of many of the experts in both camps.
From what I gathered 5 or 6 years ago when I built my Machinekit/CRAMPS delta was that Machinekit forked from LinuxCNC due to developers refusing to move the code to anything but RTAI realtime kernel. A branch of Machinekit was created which supported other realtime kernels(Xenomia and RT_PREMPT) which allowed good performance yet not requiring applications to run as root like LinuxCNC/RTAI required. RTAI was a stale realtime kernel and took lots of extra build steps to create a working system.
One of the side effects of using current/supported realtime kernels and simplier build configurations was that the Machinekit branch/fork could be built for other architectures(Linux is very portable). The BeagleBone Black(BBB) was a great platform for Machinekit because it has builtin realtime micro-controlers which could be put to use for dealing with stepper motor control(hard realtime stuff) while the rest of the computer running on the realtime kernel did trajectory planning, gcode magic etc. It was the goto platform outside of x86 platforms LinuxCNC was tied to because of the RTAI kernel.
The Machinekit devs also made efforts to componentize Machinekit into a kind of client server system with QtQuickVCP GUI capabilities to replace the aging Axis GUI interface. I’m fussy on this but the just of it is the Machinekit devs were doing more outside-the-box development while LinuxCNC devs were doing lots of smaller bugfixing and less adventurous modifications/upgrades.
I believe this was all happening roughly 10 years ago. At one point, the person who helped me later in getting Machinekit setup on my delta and who developed the CRAMPS cape for the BBB, Charles Steinkuehler, created a branch of LinuxCNC which compiled with RTAI, Xenomai and RT_PREEMT realtime kernals. This allowed LinuxCNC to use more modern Linux kernels and more current Linux distributions. It probably became a bigger issue as more consumers were getting home CNC machines and wanted to use their CNC computers for more than a dedicated CNC control system.
FYI, latency using the RTAI kernel is still king but with advances in CPU designs/speeds and FPGA offboard stepgen controllers like Mesa and now Remora, that super low latency on the application side isn’t so critical.
I think it might have been with the rPi3B or rPi3B+ that the Raspberry Pi became a thing for LinuxCNC adventurers since it could remove a large box in the shop and home shops can use all the space they can get. Remora was created by Scott Alford 5 years ago but unfortunately very few found it so he’s been the only one using it. Others have been using the rPi running LinuxCNC with Mesa FPGA boards over ethernet interface. It’s used to take $200-$300 of Mesa cards to work and now I think it’s just under $200. Still not something to throw some spare funds at just to experiment.
Scott used LinuxCNC when he did his development and probably because they were working with rPi while Machinekit devs were not doing anything but x86 and BBB. Scott was building LinuxCNC on the rPi so theoretically he could have been building Machinekit since it was forked to be more cross platform to begin with. I spoke with Charles Steinkuehler about Machinekit / LinuxCNC and Remora and he said there’s nothing stopping it from running on the rPi , that there are improvements to Machinekit which would benefit LinuxCNC but likely not get used and basically that the LCNC forums were more active than Machinekit forums(my observation also).
So I was going to just build LinuxCNC on the rPi as Scott Alford’s documents mentioned when I found a current pre-built image and gave that a try and it worked. LinuxCNC also has support for custome GUI applications via QtVCP and QtpyVCP. From my understanding and a but of playing around, QtVCP is similar to QtQuickVCP in that there’s lots of QtXML configurations and bindings which make the display happen instead of binary compiled code. But QtQuickVCP acts more like a browser app in a client server kind of way. ie you run a QtQuickVCP app on your desktop, phone, tablet and it renders and makes control choices of what ‘browser’ display you want to run. I believe it will continue to run your app even with the client display shutdown. A bit fussy on this but the gest of it is, LinuxCNC and Machinekit have different ways of creating client user interfaces but both are cross platform using Qt development tools. There are many LinuxCNC GUIs to pick from too.
I was fine with using LinuxCNC when I saw how quiet the Machinekit forums had become and how active the LinuxCNC still was.
I will say, what Scott Alford has done with Remora is fantastic and amazing and it’s getting too little recognition. But LinuxCNC is not for everyone as it’s currently setup out of the box. It’s like a Lego Mindstorm kit vs a Barney the Dinosaur Lego kit. Far more powerful and you can do many customized things with it to make it fit your workflow/needs as opposed to specifically built systems with just a few clicks of buttons to get standard output. But I’m the type who picked Slic3r over all the other slicers(I tried most of them) because Slic3r had so much of the configuration options exposed in the UI. I know many who pick other slicers because there are few options.
I currently run my LinuxCNC setup on the Ender3 over VNC and it works great. VNC is already installed on the rPi image of LinuxCNC 2.9 and I already had the VNC viewer on my desktop. Today I will make a hand wired SPI cable adapter board and power up the K40 off LinuxCNC. The cool part is, after the one wire mode to the MKS Sbase 1.3 board, I can switch back and forth between Smoothieware and Remora by just moving firmware.bin/config.txt files on the uSD card.
I’m also looking forward to adding closed loop stepper motor control to the systems to see how fast they can go and still not miss a beat using little $15 magnetic encoders. The boards mount on the back of the stepper motors and the magnet gets glued to the flat motor shaft. Like the as5047 based boards: AS5047P 14-Bit Rotary Position Sensor - ams | Mouser