Hello everyone,

I am working on and off again on writing my own machine controller, largely 
to understand LinuxCNC and related projects like MachineKit.  For 
reference, here's the controller I wrote running a few years ago:

https://www.youtube.com/watch?v=qasLhuJFZNU


I'm starting back up on the project.  Right now it works very similar to 
LinuxCNC, a shared memory space, all HAL components running on a single 
controller.  What I want to do is make a machine controller that could have 
conceivably worked on 80s MCUs, but also work on single desktop machine.  
The idea would be to have a distributed HAL that would function across 
multiple MCUs- but of course works in the degenerate case of a single 
machine/PC with shared memory space, as with LinuxCNC.  For instance, there 
would be a main MCU which reads files, runs the GUI/HMI and handles the 
trajectory planning, homing, probing, tapping, etc.  There would also be a 
dedicated MCU for each joint controller which is updating encoders and 
sensors, generating step pulses, closing servo loops, etc.  

My naive approach would be to have a registry of output signals which 
includes which MCU each actually resides on.  So if a particular HAL 
component task is reading a signal that's already on the MCU it's running 
on, it's immediately returned- otherwise it pulls the data over a network 
layer (which could shared memory bus, RS485, ethernet, etc.)  Is there 
something out there that does this?  Maybe some kind of mutant hybrid 
between HAL/NML/SCADA?

Of course this complicates things over simply using pointers to a single 
shared memory space.  I also get the sense the linuxCNC group balks at this 
kind of idea, they want to keep it all on one machine in the interest of 
latency anyway.  Just searching various machine controller project 
communities for where this kind of idea might be interesting.  I would 
really like something like a Raspberry Pi tied into a MCU which does all 
the hard-RT/IO stuff, but not quite in the way Klipper does it.  Klipper 
basically sends commands to be followed at some specific time stamp.  
That's actually pretty cool, but I want something that allows for more 
feedback and flexibility between the various systems.  

Anyhow, thanks in advance for your input.

-- 
website: http://www.machinekit.io blog: http://blog.machinekit.io github: 
https://github.com/machinekit
--- 
You received this message because you are subscribed to the Google Groups 
"Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to machinekit+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/machinekit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to