Seperate machines for GUI and backend possible?

More
14 Mar 2013 00:23 - 14 Mar 2013 15:09 #31347 by eggert
Hi,
is it possible to split linuxcnc on two machines? My idea is to put the GUI on my notebook on which I also do CAD and CAM and have a 2nd machine which handles the realtime needing stuff. By doing that I could use the backend machine headless and would no have the need of copying files and so on. Perhaps even a little arm board could do the job, which is much smaller and cheaper than a PC and has no moving parts.

Greetings

Thorsten
Last edit: 14 Mar 2013 15:09 by eggert.

Please Log in or Create an account to join the conversation.

More
14 Mar 2013 08:42 #31375 by andypugh
Yes, it can be done.
I am not sure it gains you much, as a PC motherboard to run the machine + VNC can achieve the same effect for about the same price and is more mainstream.

However, there is at least one person running a Raspberry Pi + webserver GUI. look at the Raspberry Pi threads.

Please Log in or Create an account to join the conversation.

More
14 Mar 2013 15:39 #31392 by eggert
Hi,
I have some reasons for preferring an ARM solution:

1. I do not need to find a PC which works for linuxcnc, from reading I get the impression that this is not so simple (single core, compatible parallel port, gfx card). A about 30$ could do the job (STM32F407 or Raspberry) and they have a decent amount of gpio ports which should outperform a parport in number of pins, speed and latency.

2. A ARM board has no moving parts, can be cooled passively. Seems ideal in an dusty environment to me.

3. Smoother work flow, no need to copy files, all tools on one machine.

My hope is that it is not to complicated, ideal for the start would be if I could separate the gui from the backend and connect them via ethernet.
A 2nd step could be to port the backend component to RTEMS, FreeRTOS or something similar to reduce overhead. Surely no job for a evening. But I ported some quite big software from linux to solaris and Windows in the past, so I have at least some idea of the complexity.

Can you tell me where to start for a split to two machines? (Link to doc would be a dream, but any hint where/how to start would be nice)

Please Log in or Create an account to join the conversation.

More
14 Mar 2013 16:47 #31394 by andypugh

1. I do not need to find a PC which works for linuxcnc, from reading I get the impression that this is not so simple (single core, compatible parallel port, gfx card).

It isn't that difficult. There is no need to be single core. Up to version 2.4 the kernel on the liveCD would only use one core, but later versions work happily with multi-core systems. Even the old versions worked, they just didn't use the extra cores unless you built your own kernel.

A about 30$ could do the job (STM32F407 or Raspberry) and they have a decent amount of gpio ports which should outperform a parport in number of pins, speed and latency.

At the expense of processing horsepower. There can be quite a lot of floating-point calculation going on in the realtime part of the code. The Pi is very close to not having quite enough power.

. A ARM board has no moving parts, can be cooled passively. Seems ideal in an dusty environment to me

This is true, but also true of many PC-based systems. I have a couple of Atom boards with 8GB SSD drives and solid-state PSUs, all passively cooled.

3. Smoother work flow, no need to copy files, all tools on one machine.

I am not sure that this is such a big advantage. It certainly isn't for me,as the machines are in the (cold) garage and I like to work in the warm. Keeping the G-code on a share is possibly even simpler.

Can you tell me where to start for a split to two machines? (Link to doc would be a dream, but any hint where/how to start would be nice)

wiki.linuxcnc.org/cgi-bin/wiki.pl?Miniemc2webinterface
Might be a start, though it is a bit terse.
You probably need to join the developers list, that is where this discussion happens. If you look at the "Community" link at the top of this page you will find links to subscribe, and also a link to an archive that can be searched.
Work is under way to make what you want to do easier. it was always intended to be part of EMC but was rather negelected in LinuxCNC and is currently being worked back in.

Please Log in or Create an account to join the conversation.

More
14 Mar 2013 16:57 #31395 by andypugh
Thinking about this some more, there are a number of places to break the chain.
In my system I have a split is a network share, and the protocol is G-code.
My controllers also all have a second split at the PCI port, where fast realtime tasks are offloaded to the FPGA on Mesa cards.
Many systems split at the parallel port, and the protocol there is step/dir signals. Though it can also be EPP comms to an FPGA such as the Pico PPMC or the Mesa 7i43.
You want to split at the GUI interface. To an extent this is already rather easy. I do it quite frequently ( ssh -X to the LinuxCNC machine in the workshop, Axis Gui on the Mac screen in the house). This isn't very different from the miniemc2 web-server interface, as the GUI processing work is being done on the remote machine, and only graphical info is transferred on the network.
I get the feeling that you want to split at the point between the G-code interpreter and the motion controller, though?

Please Log in or Create an account to join the conversation.

More
14 Mar 2013 17:56 #31397 by eggert
Yes, splitting between the G-code interpreter and the motion controller was an idea I had, would be similar to rtstepperemc if I get it right? I yesterday looked at the sources and started to write some mock code, to understand how the micro controller side has to be implemented. Seems some parts are missing, perhaps due to processing power limits in the pic, used there.
An other idea is to do also the G-code interpreter on the ARM like Grbl does for AVR controllers. Grbl has an incomplete g-code implementation.
A third idea would be to do some g-code preprocessing on the pc, to lower the processing power requirements on the ARM, AVR or what ever

Please Log in or Create an account to join the conversation.

Time to create page: 0.068 seconds
Powered by Kunena Forum