After a lot of testing, I’ve decided to go ahead and release WebControl as an open beta project. A bit of a belated present.
As very brief overview, WebControl is a web-based version of Ground Control primarily designed to run on a Raspberry Pi in a headless environment (headless meaning no screen/keyboard attached). There’s no reason that it won’t run on Windows, MacOS, etc. but the focus right now is on the RPi. The simplest way to get started is to use a fresh SD card and download the pre-built image that @johnboiles had put together. The instructions are on the WebControl github page:
There are two separate programs, WebMCP is a sort of watchdog/control program that allows you to stop, start and update the actual WebControl program. WebMCP can be reached on port 5001 (i.e., http://xxx.xxx.xxx.xxx:5001) and after you start WebControl from that screen, you can reach WebControl on port 5000 (http://xxx.xxx.xxx.xxx:5000). I recommend the prebuilt image because it has docker installed and configured. We use docker to handle all the updates… there is no need to download/compile new versions of software and we are able to include the latest stock and custom firmwares for the controller in the docker file as well. However, my suggestion is to only upgrade to the custom firmware if you are planning to use optical calibration… otherwise, stick with the stock firmware.
This is “BETA” meaning there’s bound to be some undiscovered bugs to work out. It’s gone through extensive testing and I’ve not found anything that results in catastrophic failures (if I had, it wouldn’t have be in open beta). As with everything, there’s plenty of room for improvements, particularly with instructions. This is what I’ll be working on going forward so feel free to post questions as I can use that as an indicator of where better instructions/clarity is needed. I will be out of town for a few days, so “support” might be a bit sporadic, but I’ll respond as soon as I can. If you find issues, please report them in the github repo.
And as a final note, I’d like to give a special thanks to @johnboiles for helping me through this project. Without his work, there would be no awesome dockers. And also a special thanks to @castoker for really putting webcontrol through its paces… great tester!
This is G.R.E.A.T. Mr. Grizzle. Thanks for putting this out there. I’m looking at setting up remote monitoring with a camera and auto/semi auto shutdown while I’m on the loo, etc. This and a web cam or three, along with a few other bits like a tilt alarm and router rpm monitor, etc might do the trick perhaps?
Just a quick plug here. WebControl has totally changed the way I use my Maslow. It’s hard for me to imagine using a Maslow without being able to move the sled or make Z adjustments from my phone while I’m standing at the sled. And my laptop no longer needs to be tethered to the Maslow meaning I can safely work on my next design while the Maslow is cutting without worrying that I’m going to crash the computer somehow and mess up my in-progress cut (Fusion360 caused a kernel panic on my Mac last Friday, for example). One click firmware updates and webcontrol updates make maintenance really easy.
If you haven’t tried this out yet I can’t recommend it enough. @madgrizzle has done some really fantastic work on this.
thanks to @madgrizzle@johnboiles for putting this together. I look forward to trying it.
Since it is a headless system, does that mean that the GC GUI won’t be available from the rPi? I am envisioning setting it up wired to my workshop router by ethernet cable, mounted next to the arduino, but then also having an HDMI monitor connected for visual cues next to the Maslow during the cut or during setup. This may be easy enough to answer once I take a look at it, but figured I’d ask anyway in case someone has a quick answer or pictures of a similar setup.
Right now I have a laptop next to the maslow, but I don’t like having it in that dusty environment, and putting it in an enclosure is more effort and space than I care to expend.
As far as I know, there’s no reason this won’t work in a “headed” environment. You would just open whatever browser you have and browse to local host. However, since I haven’t tested it, I don’t know how it would perform (speed wise). I might be able to try it out in the next few weeks though.
The pi image I made doesn’t have a desktop environment but you could apt install one if you’re comfortable on raspberry pi. Then you could set up a kiosk browser pointing to localhost:5001 and ideally in another tab localhost:5000. I don’t see any reason that wouldn’t work. Instructions on how to do that would be a great contribution. Perhaps we could even distribute a larger pi image as well that supports this out of the box.
I am definitely on board with this. However, I just want to clarify how it works, as a non-savvy person.
The Maslow is set up as normal, with the exception that now there is an additional Raspberry pi and wireless connection required.
The Raspberry Pi takes the form of a very simple web-server, capable of serving Web Control as a webpage.
To use it, use the browser on a normal PC, and connect to it through a wireless network connection.
When you wish to cut from a *.nc file, upload the file onto the Raspberry Pi. On one of the web-pages, click “Go”
At this point, as long as there is no need to intervene, due to an emergency or other, the wireless connection is no longer required. The machine will run, whether you are connected or not.
Is this correct? Is there anything I missed?
(edit)
I am trying to think through the whole safety issue of connecting through wireless. The only problem as I see is if something goes wrong with the machine at the same time that a wireless connection is lost. For example, if there is a need to do an emergency-stop, while simultaneously you’ve lost wireless connection.
The resolution is to have a mechanical E-Stop somewhere on the machine, so you can execute the emergency-stop without a connection.
Would there be anything else that could happen, like something went wrong, it is an emergency, but I want to do something other than an e-stop. For example, I have to jog the machine up by 20 cm, and it is an emergency. I see this as a stretch, but I am just trying to think through it. Does anyone else have any thoughts?
I was just trying to think about this in the context of a worst-case scenario. You loose your connection and something goes wrong on the machine, that is an emergency, and requires you to jog by 20 cm, rather than hit the e-stop. I don’t even know if this is worth thinking about.
I was just trying to prove to myself that I am comfortable with the wireless connection
Ah, gotcha. I guess in that case you would only have the option to hit the e-stop. My earlier posting about being able to add a monitor to the rPi might be of interest to you in that case since you could conceivably operate the Maslow with a mouse and monitor connected to the rPi. Since the rPi is not running GC (at least I don’t think it is), you only need access to the web page.
Take all this with a grain of salt, though, as I don’t actually know what I am talking about with regard to how the WebControl works.
Wireless is not mandatory. You can plug a computer into the RPi’s Ethernet port (via a switch or crossover cable) and communicate wiredly with Webcontrol.
The RPi is running Webcontrol, which is a complete replacement of ground control. It has almost all functions of ground control and a few helpful new ones. But to provide an analogy about the difference in how it works is that ground control is to Microsoft word as webcontrol is to google docs… or ground control is to Outlook as webcontrol is to webmail. Ground control runs on your computer and you interface directly with it… webcontrol runs on a webserver and you interface with it via a browser. Hope that helps.