WebControl Open Beta

Thanks @dlang, at last got it working and it’s great


Hello everyone,

Maybe someone can send me in the right direction, I got WebControl up, and it looks like its connecting but it will not move the motors.

I’ve installed the latest Raspbian, (i just couldnt get the image version to connect to the internet), i was installed webcontrol and ssh through a lot of trial and error and was able to get it up and running, along with VNC and a second monitor.

I think its probable something simple that i’m missing but after hours of reading i am not sure if i overlooked something. i installed the arduino IDE just in case it need it to connect to the board, but that has not fix the issue.

Thank you in advance

There are two connections, one is between the browser and webcontrol on the rpi… that’s what the left “Connected” represent (in the top right of your screenshot) The next is between webcontrol and the Arduino controller… that’s what the right “Not Connected” represents. I do not believe you are connected to the Arduino. Go to settings, maslow settings, and select the Com Port for the Arduino. The little refresh symbol you will see will query the comports on the rpi and populate the list for you.

Awsome, Thank you madgrizzle, I tried that and was able to get 4 ports, i tested and it does connect but still no movement, ill test more tomorrow.

Be aware that some ports give ‘false connections’… Which port did you end up using? Most of the time, I end up on /dev/ttyACM0. Did you see the messages coming in from the controller?

Look at this thread for some more information:

The default Raspberry Pi combination works.
username: pi
password: raspberry

1 Like

TLDR Don’t trust the IP address being reported as the IP address of the webcontrol server.

One of the recent improvements was to report the host IP address on the screen so you know what IP address to use to reach webcontrol on your phone/tablet/whatever. This was added for the Windows 10 version since you might not readily know your IP address. For the RPI, in a headless implementation, you probably do know the address since you’ll be stuck otherwise. The problem on the RPI is that the address being reported is the docker container’s internal IP address, not the one that is accessible to the outside. I have a solution from stackoverflow, but to make it work requires a modification of the startup script of the pre-built image. I don’t know that the juice is worth the squeeze just to make it consistent. So unless I find a better way, I’ll probably just disable that in docker implementations. But in the meantime, don’t trust the IP address being reported if you are using an RPI.

1 Like

I will admit, I’m still setting up my Maslow CNC and I am using Web Control on it’s own to prevent getting used to software that may not work when Python 2.7 goes into the abyss. I am having a problem calibrating the machine using it’s own stuff. I’ve used a tape measure to the best of my ability, but I have a feeling I’m going to end up with a system that can’t cut straight. Can you put some resources into developing the calibration functions that are in ground control? An example, I can’t find where I can cause one motor to extend by a particular amount. I can get the tooth to go straight up for each motor. Maybe on that page, add the extend/ retract features for each motor too, as well as the measure the distance between motors feature.

Or…someone please reply to me with specific instructions how to do this operation in Web Control 1.27.

I’m not sure which part you are having problems with. With webcontrol the procedure for starting from scratch is:

  1. Actions->Quick Configure
  2. Actions->Set Sprockets Vertical
  3. Actions->Triangular Calibration (… or Actions->Holey Calibration if you are using Holey Calibration firmware)

Which step are you having issues with?

After you set sprockets vertical, you press ‘Define Zero’. This tells the controller that the chains are at zero length. Then the ‘Extend Left to xxxx mm’ and ‘Extend Right to xxxx mm’ will enable and you can press them to extend the chains the particular amount. xxxx is the value that is in Advanced Settings->Extend Chain Distance. Default is 1651 mm for a 10-foot beam. I use 2032 mm for a 12-foot beam. I’m thinking I need to include something in webcontrol to determine this value automatically.

As for measure distance between motors, I’m not a fan of that process. Besides leading to an enormous amount of confusion during the guided calibration process in ground control, its been my experience that the distance measured is not as accurate as the distance measured by hand.

I can certainly understand the frustration. I do not plan to mimic ground control’s guided calibration process. My hope is that documenting the process clearing would be sufficient. And yes, the documentation is lacking… it’s not hard to put together documentation, just time consuming.

Please note that I’m in no way affiliated with Maslow CNC and this project is completely open-sourced.
This started as a project to allow me to use a phone to control ground control in order to set sprockets vertical (I got tired of going back and forth between computer and sprockets). It evolved into what you see today… a complete alternative to ground control. Besides some help early on from @johnboiles, webcontrol has been a one-man development show. Please don’t take these comments the wrong way, I greatly appreciate people testing it, using it, finding bugs, and providing feedback (such as your post). Just realize that it’s an entirely voluntary project.


Thanks for your help @madgrizzle. I do think Webcontrol will be much more convenient than using Ground Control and I appreciate the work you are putting into it. I hit the define zero and that made it so I could extend the chains. Now that I understand the difference, I’m going to continue with the build.


Great news!

1 Like

The RPI Zero W works with webcontrol single directory release. It is distinctly slower than the RPI 3B+ when it comes to file operations. Uploading and opening gcode files (which does a lot of processing) is longer. But it seems to work fine after that. I used a 6-year old microSD card I had lying around, so not sure if the speed of the card was a factor.

… and I loaded buster on the RPI Zero W so webcontrol is apparently compatibility with the latest OS. I don’t have a Pi 4 to test, but I assume it will work just as well. There’s nothing special going on that I think wouldn’t work on a 4.

1 Like

is there a new Pi image to use (as opposed to the old docker based one), or is it just take a stock raspian image and install the webcontrol app on it?

No new pi image. I’ve only started looking into how @johnboiles created the one for docker. I suspect downloading the image, burning it, and doing a wget for the release you want is all that’s needed.

I’d still like to come up with a good solution to get an rpi connected to the internet in a headless environment. I’m thinking maybe making an image with it defaulting to ap mode, then connecting to it using your phone, and entering the ssid and password might be the simplest.

1 Like

Yes, that is the way to do it.

David Lang

Before figuring out how to generate a new image, I need to figure out how to update the pyinstalled files.

It looks like, in webcontrol, I can call a script to run using subprocess.Popen and then exit webcontrol and the script will continue to run. So I’m thinking the process would be:

  1. Within webcontrol:
    a) Check to see if upgrade file exists (maybe do this every hour or something)
    b) Notify user of upgrade availability (maybe do this as a badge to Actions menu)
    c) Give user option to download and update via a new Action
    d) Download file and verify checksum
    e) Call subprocess.Popen to execute an upgrade script while passing the filename of the new file and type of file (single directory or single file)
    f) Exit webcontrol
  2. Within the upgrade script:
    a) Wait a few seconds (to give time for webcontrol to shutdown)
    b) upgrade/replace files as appropriate for the file type
    c) Restart webcontrol

Thoughts? Anyone know if this will/won’t work?

I worry about automation clobbering a previously working installation. What is the recovery/rollback approach?

Well, it will be user initiated to upgrade. I’m not proposing automatic upgrade.

To fix an installation I think would be relatively easy assuming someone has console/ssh or gui access. I’d like to make it foolproof, but I don’t know how.