Maslow Home Maslow Community Garden Newsletter

WebControl Open Beta


There’s an area that I still need to spend some time addressing and that’s switching units to/from metric and imperial. Most of the time it works, but in certain situations the client can get out of sync with webcontrol, mostly when you have multiple browsers running (i.e., phone and desktop both connected to webcontrol) and one of the goes to sleep. For instance, you have have a browser on your phone connected, but your phone goes to sleep and you change units on the desktop, the phone may miss that unit change command and when you wake the phone up, it will still be using the old units (i.e., it doesn’t refresh the webpage). I’m working on tweaking that so, but not sure exactly how to handle it.

Generally, I recommend sticking with one unit or another.

Feel free to ask for any improvements or additions you can think of… I’m pretty open to doing most anything I’m capable of … insofar as I have the time to do it…



Yeah I’ve experienced that once or twice.

1 Like


I ran webcontrol on a pi 3 and used the built-in browser. It worked fine, but was somewhat lagging. Now I use a Chromebook to access the server and it’s very responsive. Running on a pi3b+ might make it more useable if the pi is also hosting the browser.



I found a way to slim down the python install for Windows 10 to run WebControl. By using the Conda package manager for Python to install the requirements, you will not have to do separate downloads from Microsoft for the VisualStudio C++ libraries. the compiled modules can be downloaded directly from the Anaconda servers. You could install Anaconda Python to do this, but it will install a lot of extras (Juypter Notebook, Spyder IDE, etc.), which maybe of interest if you code or are in the science or math fields. I chose to just download the Conda package manager with Python.

Download Miniconda Python 3.7, from here
Install it and you should now have an Anaconda Prompt in your Windows start menu. After I had all the dependencies downloaded and WebControl working, I made a copy of my working environment. The environment.yml (459 Bytes) can be copied to your unzipped WebControl folder or cut and paste the text below into text editor and save it. The YAML file is used to clone the python build on your PC.

name: webcontrol
  - defaults
  - Python=3.7.2
  - Click=7.0
  - Flask=1.0.2
  - Flask-SocketIO=3.0.2
  - gevent=1.3.7
  - greenlet=0.4.15
  - itsdangerous=0.24
  - Jinja2=2.10
  - MarkupSafe=1.0
  - numpy=1.15.2
  - pyserial=3.4
  - python-engineio=2.3.2
  - python-socketio=2.0.0
  - six=1.11.0
  - Werkzeug=0.14.1
  - pip:
    - flask-mobility==0.1.1
    - opencv-python==
    - schedule==0.5.0

Once you’ve copied the environment.yml file to the WebControl-master directory, launch the Anaconda Prompt from the Windows start. This will open up a command prompt for Python. CD to the WebControl-master directory and run the following commands to create and activate the python environment.

conda env create -f environment.yml
conda activate webcontrol

You should now be in the virtual python environment with all the dependencies.
In the 64-bit Anaconda for Windows I had trouble with 3 packages not installing from PIP inside the environment.yml file that need to be installed manually as shown below.

pip install flask-mobility==0.1.1
pip install opencv-python==
pip install schedule==0.5.0

Note - With the 32-bit Miniconda installation in Windows 10 and in Linux I did not have this problem. All package dependencies were resolved when running conda env create.

With all dependencies taken care of just start up WebControl with


and open your browser to http://localhost:5000/

Is this easier than installing VisualStudio C++ libraries and on a Windows 10 PC?
Will this be helpful to someone who can’t meet the graphics requirements to run kivy and GroundControl?



I have a raspberry pi and a smartphone but I figure that since I’m challenged enough with a regular pc maybe it’s not such a good idea? One of the main reasons I consider this is because of the last comment about the graphics requirements on Windows 10. I may be having a similar issue no one seems to know, yet, what my issues are but I would sure love to have the webcontrol going for sure!



Would anyone in this thread be willing to write a quick blurb about Web Ground Control with a few screenshots in the wiki newsletter (which I will then email out) here:

Perhaps @madgrizzle or @johnboiles?

We introduced the concept of web ground control a few updates back, but I think there are a lot of folks out there not reading the forums who would benefit from an update about what it is and how it works :slightly_smiling_face:… because its AWESOME!!



Happy to do it unless @madgrizzle wants to! When do you need it?



It’s easy to be excited about this project. Webcontrol could potentially be for DIY CNC what OctoPrint is for 3d printing



Would today be too soon? :grin:



@madgrizzle might already have something. Otherwise soonest I can write something up would be tonight!

1 Like


How do you want the writeup? Do I just add a post to your thread or do you want me to edit your thread to include it?



I am trying to install WebControl Beta to my Windows 10 laptop to solve my first-world problem of repeatedly moving between my laptop and the workpiece for setting home, adjusting sprockets to 12’O clock etc.

At the final step:
I get a the following error:
“Python: can’t open file ‘’ : [Errno2] no such file or directory”.

Did I forget to install something?



You need to run Python from the Anaconda Prompt. Do you hav it installed?

Once it launched, you will be presented with a prompt, and have access to the Python interpreter and can run the conda commands.


Did you already create the python environment for webcontrol with the environment.yml (459 Bytes)



Yes, I did:



Ok, good you are in the webcontrol conda env.

Also ’ you enter this all on one line by it self:



Entering it all in one line doesn’t solve it.

I changed the directory of Anaconda before installing. Could that be the issue?




Does your Directory look like this, I assumed you unzipped the WebControl .zip file into your working dir?

(WebControl) C:\Users\mcgui\Maslow\WebControl-master>dir
 Volume in drive C is Windows
 Volume Serial Number is DC4E-9340

 Directory of C:\Users\mcgui\Maslow\WebControl-master

03/04/2019  05:49 PM    <DIR>          .
03/04/2019  05:49 PM    <DIR>          ..
03/04/2019  05:11 PM                66 .gitattributes
03/04/2019  05:11 PM               188 .gitignore
03/04/2019  05:11 PM    <DIR>          Actions
03/04/2019  05:11 PM               169
03/04/2019  05:11 PM    <DIR>          avr
03/04/2019  05:11 PM    <DIR>          Background
03/04/2019  05:11 PM    <DIR>          config
03/04/2019  05:11 PM    <DIR>          Connection
03/04/2019  05:11 PM    <DIR>          DataStructures
03/04/2019  05:11 PM            33,342 defaultwebcontrol.json
03/04/2019  05:11 PM             4,940 Dockerfile
03/04/2019  05:20 PM               459 environment.yml
03/04/2019  05:11 PM    <DIR>          File
03/04/2019  05:11 PM             4,432 GETTINGSTARTED
03/04/2019  05:11 PM            32,005 LICENSE
03/04/2019  05:11 PM            13,853
03/04/2019  05:11 PM             9,221
03/04/2019  05:11 PM               290 requirements.txt
03/04/2019  05:11 PM    <DIR>          scripts
03/04/2019  05:11 PM    <DIR>          settings
03/04/2019  05:11 PM    <DIR>          static
03/04/2019  05:11 PM    <DIR>          templates
03/04/2019  05:11 PM    <DIR>          tools
03/04/2019  05:11 PM    <DIR>          WebPageProcessor
03/04/2019  05:49 PM    <DIR>          __pycache__
              11 File(s)         98,965 bytes
              16 Dir(s)  402,148,323,328 bytes free
(WebControl) C:\Users\mcgui\Maslow>conda env list
# conda environments:
base                     C:\Users\mcgui\Anaconda3
WebControl            *  C:\Users\mcgui\Anaconda3\envs\WebControl


How’d you go about downloading webcontrol? The <!doctype html> is indicative of downloading it wrong. Try either use git or download the zip file and extract it.

1 Like


Also I’m not sure if it’d make things easier for y’all, but we could make a Docker image for x86 processors that could be run from Docker for Windows. Then it won’t matter what sort of environment you have. The same Docker image would work on Linux also.

I think it’d be easier overall. But I haven’t used Windows in a while so it’s hard for me to reason about.

I really recommend just picking up a $30 Raspberry Pi. It makes everything so much simpler.

1 Like


Looks like you beat me to it! Great writeup and I enjoyed the narrative at the beginning of how the project got started. If you wanted to slim it down I’d suggest limiting the features discussed to

  • Multiple, simultaneous displays (maybe mention responsive as a part of that)
  • 3D gcode preview - This has save me from a bad cut more than once since I can easily visualize the tabs! This is a huge improvement over GroundControl. I sometimes will just upload gcode to WebControl from my living room, just to be able to have a simple 3d visualization of the paths.
  • One-click updates for both WebControl and Firmware
  • Runs from a RaspberryPi - For me this was huge, as I was always anxious about doing things on my computer while doing cuts (I’ve had Fusion 360 cause a kernel panic before!). Also no need to track down obscure Windows tablets, you can just use a commodity $30 RaspberryPi instead!

I think this is the best web-based CNC software out there right now. I’m helping a friend build an MPCNC and it’s hard for me to imagine CNC-ing without WebControl. I think we’re not far from turning WebControl into a project that could positively affect the whole DIY CNC community. Not sure if it makes sense to include something about this. We have the potential here to affect the greater community beyond just Maslow owners.

@bar is it ok that it’s not written in first person from your point of view? Happy to help refactor into something with a voice consistent with the rest of the newsletter. LMK if that’d be helpful