Hi everybody,
I'm following this mailing list for a number of years with one year
interruption during kitchen remodeling and unplanned medical leave last
year. First annoyance was subscribing again to post to the list. Now I'm
getting two copies of each email.
Having experience with mechanical computer peripherals I'm not afraid of
building a CNC machine of some kind. I spend a lot of time researching
possibilities to achieve my goals:
- convert Grizzly lathe/mill to Linux CNC,
- build a small CNC router for my hobby use (aluminium, plastic)
- build larger CNC router for woodwork use by my relative in EU.
However, I started to wonder last year what's the future of LinuxCNC?
What concerns me most is the computing part mainly based on silly old PC
architecture from the 80's. Using PCs for that purpose made sense in the
early 1990s to about 2010 but now it's time to move on IMO. I don't see
much usable discussions on this mailing list, sorry guys.
There seem to be no major industrial drive to use LinuxCNC as one of
available software options to more or less "open hardware design". I
believe there's $$$ to be made with LinuxCNC: system design,
installation, support, and training for this open source product. OS is
free but based on my research CNC kits manufacturers do not offer or
mention it at all.
On the other hand, there is plenty of those that include that other CNC
thing, Mach??. I wonder why these people are so clueless to design their
software for the worst mass produced OS in the history of computers and
never bothered to port their product to much better OS Linux?
One thing that's hard to understand on LinuxCNC side is why is there so
much emphasis on testing a motherboard to make sure it's going to work
well with real time kernel on multi-core CPUs with GHz clocks? Let's say
my relative overseas needs to replace a bad motherboard and all I can do
is to say 'try different mobos with running timing test'! That's too
much folks!
Most motherboards are build for computer gamers, entertainment, and
office work so they are bad choice for CNC use. Besides, there is no
long term support for motherboards which is critical for industrial use.
What's needed is exact selection of hardware that's easy to find and not
too expensive.
I worked on a number of industrial applications where Digital PDP-8 had
enough computing power to handle huge critical tasks in the 80's. In
other cases PDP-11 was used to control machinery in steel mills, hydro
power plants, etc. Paper tape, core memory; that was fun. That makes me
wonder why it's so hard to find a decent low cost computer in $500 range
that would be good for most CNC applications and will last or be
supported for 10 years or so?
I bet a plate of sushi that LinuxCNC dependency on PC motherboards is
preventing many to venture into business of building CNC machines or
kits on this architecture.
On the "PC architecture side" I'm aware of PC-104 but that's very poor
design. Ever tried to use scope on the middle of 3 boards in PC-104? Now
we have new crop: RaspberryPi, Beagle Board, Arduino, all very powerful
compared to computers 40 years ago but all have the same _stupid
sandwich design_ that requires wires connected to their boards from all
sides or even somewhere in the middle of the PCB. In addition,
connectors, data or address lines are not standard as far as their
location on pins go or their voltage.
People that designed PDP series were much smarter and solved such
problems long time ago so it would make sense to adopt that kind of
design but on smaller scale with modern higher density ICs and
connectors. Unibus standardized address, data, interrupt, and few other
lines. That opened OEM business for PDP platform.
I hate to see parallel port mentioned for use in CNC IO of any kind.
That's so 1990s. It would make much more sense using parallel I/O card
from Mesa Electronics or some such by default. Anybody serious about
retrofitting an old machine to CNC or just building a new one should not
mind paying a bit more for a decent CNC computer with standard IO
interfaces plugged into standard backplane, not PCs.
VME is too expensive for DIY. RaspberryPi, BB, Arduino, or such were
designed for something else. Where does this leave me? On the sideline
for now but disappointed over the fact that there's so little progress
in this field. I also hate to see thousands of hours, that many of you
guys used for designing and tweaking LinuxCNC over the years, go to waste.
Another disappointment is G_code. It's archaic and "inhumane". HP-GL
with CNC enhancements would be much easier for use on flat surface jobs
IMO. In systems administration work we (some of us) transitioned from
korn shell, awk, sed, and perl to more logical and powerful python. Some
old things just don't die when they should. G-code with it.
There is new (?) trend in using Arduino and GRBL for entry level CNC.
That alone should make it clear that it's silly to search for suitable
PC motherboards that can run RT linux kernel when Arduino can handle
much of it. Why did GRBL designers go that route? My guess is that
LinuxCNC was too complicated from their point of view.
My choice for CNC control would be a system with the following major
components:
* backplane with power supply and connectors for accepting CNC computer
board and interfaces, all using edge connectors.
* headless computer board running LinuxCNC (non-gui) with RT kernel and
USB port to get the job related commands from the front end GUI part of
LinuxCNC, or independent APIs, and execute them in real time. Small CNC
machines could work with Odroid, BeagleBoard, or RaspberryPi like
system, bigger ones on more powerful would use 64bit CPU systems.
* two types of servo boards would be plugged into backplane directly.
First kind would include motor drivers for use in smaller CNC systems.
Another kind would provide signals for more powerful external drivers
with large heatsinks like Gecko etc.
* DIO interfaces for connections to different sensors such as magnetic
or optical encoders, limit switches, keypads, etc. Manufacturers could
make different kinds of IO interfaces that would be able to interrupt
main CNC computer in real time.
* front end computer for user interaction with CNC system and outside
world. A PC with (ubuntu) LinuxCNC gui or a "tablet" with Android for
example. It would be connected to the CNC system over USB3 to control
jobs; not motors, relays, or other components in detail. Hint: ROS for
managing robots. Bluetooth could also be an option. This would allow for
one person to walk around and manage a set of CNC systems quickly.
Sorry it's so long.
Best wishes to all in 2019,
--
Rafael Skodlar
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users