How we started operating our CNC machines remotely

How we started operating our CNC machines remotely


Not only COVID-19 has brought many challenges to our daily lives, but it also has inspired a lot of change in how we work and do things. Some professions transitioned to remote work more easily than others. Factory workers and machine operators have been less lucky in this regard and that also applies to us in our CNC-based micro-factory.

Allowing more people to work remotely opens up many opportunities for businesses. Not only you can bring talent from anywhere in the world, but also you have more choices where to house the hardware allowing to optimise on cost. Furthermore, reaction times can be reduced if travel to the worksite can be eliminated. Quite a few IT professionals have been doing a good job from spectacular locations and we should strive to let more people experience that.

Another important aspect of structuring work such that it can be done remotely is that it is the first step to automating it. Local to remote, and remote to autonomous allows for a smoother transition than local to autonomous straight away. In the future, we plan on coupling our remote system to AI so if you’re interested, make sure to follow us on LinkedIn or Facebook!

WARNING! Running machinery unsupervised is dangerous and must be avoided. This article is elaborating on how to operate machines more efficiently with more staff working remote, but does not suggest running machines without supervision or people on-site.

How Corona showed us an opportunity

Before the COVID-19 hit our workflow for a CNC job has been as follows:

  1. Make CAD/ CAM in the office;
  2. Finalise CAM in the shop;
  3. Run CNC jobs in the shop.

However, during the quarantine at times it has become difficult to proceed this way because of the travel restrictions ( our CNC lab and office are based in different districts and district travel is cumbersome during quarantine ). We took up this challenge and used it as an opportunity to do the first step towards our micro-factory automation by doing more of the shop work remotely.

The CNC lab problem

Running a CNC job required:

  1. Prepare the CAD/CAM files;
  2. Setup the CNC machine for the job;
  3. Loop: place the material, run the program, take out the cut parts, clean the table

In our team, a single person has been doing all of these things. However, is it wise to use a skilled designer/ operator to be in charge of moving material and parts? Not really, because those skills could be invested in something with a much better return on investment (ROI).

Why don’t we have an unskilled person doing that work? Because CNC jobs are prone to small and costly mistakes, so to ensure high quality and safe operation, that person has to have some skills. Those skills need to either be brought in or be taught and as soon as a person has those skills we are back at having a skilled person doing a large amount of unskilled work.

Iteration 1

Our first step towards a solution was finding an unskilled person to be at the shop while we remote into the PC which controls the CNC machine. This has greatly improved our ROI and created a truly win-win situation because not only we are more efficiently using our time resources, but also created a new job position.

Still, there were issues to be solved. Coordination was done by phone and in order to operate the machine safely, we had to do multiple repeated questions making sure that it is safe to run the machine. Setup was particularly tricky because misunderstandings led to tool breakage and material waste. Lastly, making sure that the operation is proceeding smoothly was tricky as well since it required experienced evaluation and experience we did not have on-site.

Iteration 2

Having drawn conclusions from iteration 1, we’ve decided to upgrade the CNC lab with a camera for more efficient and higher quality feedback. And it is surprising how much easier work became then!

Figure 1. CNC shop camera

Much less coordination was required and we were much more confident operating the CNC machine knowing that the site was safe for operation. Setups became easier because we could verify that the right measurements were made.

Soon enough we’ve found many things that could be improved:

  • Running cameras in one window and remoting in on another tended to be inconvenient on a single screen workstation;
  • Although monitoring was much better, the single-camera setup did not allow to evaluate the quality of the finish or how smoothly the work was progressing;
  • When we were executing tool adjustments (eg. changing a bit in the tool chuck ) it was still hard to be sure that the right tool was where it needed to be;
  • It has become very apparent that some of the tasks could be semi-automated using feedback from the on-site worker. For example, at the beginning of each session, the machine needs to be initialised by moving it to reference and calibrating all the tools which involved checking if the site was clear for action and then going through a sequence of clicks;
  • Measurements still took a while to explain and then took a while to do properly.

Iteration 3

Taking into account the inefficiencies we’ve identified, we’ve decided to work on a cohesive platform with an intuitive dashboard which would merge all the systems we have and provide the base for automation to be built upon.

First, was the network setup. We needed to merge multi-site networks into a mesh topology network where all the nodes could be interconnected which was solved using a hub and spoke topology VPN. Although, it does have its own drawbacks it had a good cost-benefit ratio when it comes to setup and deployment and is working for us for now.

Next, was building the dashboard which not only required the making of the UI but required figuring out how we’re going to expose and manage resources in our shop network. We decided to build the backend in the spirit of Kubernetes, so it is easy to manage at scale with the addition of new sensors, machines and full-blown sites themselves.

Figure 2. CNC shop dashboard prototype

For the GUI we choose to go with Python’s Tkinter package in order to be able to rapidly iterate and once it reaches a stable state we’re planning to move it into a web app for easy access from any device. The dashboard is set up such that one could interface with the embedded CNC software by just doing the relevant actions on the dashboard.


Based on our experience using the shop dashboard, it has helped us improve our process in the CNC shop by a mile. We are significantly more confident running remote jobs, have more oversight and control and the process is much more efficient with time.

It has also opened the possibility to (semi)-automate processes involved in running a CNC shop, which we are continuing to work with and will be posting later. We have a few ideas on how to couple the camera and control system with AI and that is an exciting prospect!

One key feature that the system requires is being able to remotely access the CNC control software. We are lucky to have it running on a PC which we can easily remote-in, but in case of embedded software, some middleware might be needed to control it remotely.

Allowing the machine operator to work remote adds value to our business as we could easier relocate the shop to cheaper areas, further from the cities or have talented engineers from nearly anywhere in the world away from work with us. That is why we will continue on this journey and will share it with you as we go!

Check out more:

  1. Welcome to CNC Lab
  2. Simplifying CAM workflow with Fusion 360
  3. Unique products at scale with AI-infused CAD

and more in our blog


At we’re excited about the potential of AI to improve businesses and people’s lives. CAD and CAM are two of the largely unexplored territories we’re invested in. If you think you can benefit from a decade-long experience of applying machine learning to business processes, get in touch!