Getting GRBLWeb up and running on an x86 laptop

A project log for Servicing and Upgrading a Harbor Freight Mini Mill

Years ago, I converted a Harbor Freight mini mill to a CNC using a CNCFusion kit and stepper controllers from HobbyCNC. Time to fix it!

james.moranjames.moran 02/24/2015 at 06:070 Comments

*NOTE* All of this was done several weeks ago, so I'm going to update this post piecemeal as I go through my notes and logs to re-create exactly what I had to do.

GRBLWeb is a web-based CNC controller designed for use on Raspberry Pi systems.The idea behind it is that you install this on your RPi and connect a GRBL device (an Arduino of some flavor) through USB to create a CNC control machine accessible from anywhere on your local network. I don't have a Rapberry Pi but I do have an old Acer laptop running Fedora Linux so I figured I'd use that instead.

There's nothing special about the laptop - it's a 32-bit Celeron M processor running Fedora 20 with kernel 3.17. Stock install, nothing unusual to start with.

Since I can't use the pre-built RPi image I'll have to install from source. GRBLWeb provides instructions right on their site:

git clone
cd grblweb
npm install
Simple enough, right? Well, it failed during the install because you need node.js. If you've already got that installed, cool! You're ahead of where I was. This wound up being the only part that caused me any difficulty - getting the right node.js packages installed was oddly complicated, although I suspect that someone who actually uses it on a more regular basis would get it immediately.***TBD: Actual instructions for node.js installation ***

Once node.js is set up the GRBLweb install should succeed with no other issues. I don't want to have this running constantly on my laptop so I just use the standalone start up when I need to use GRBLWeb:

node server.js
At this point by opening a web browser on my laptop and going to I can see the GRBLWeb control page. Huzzah! Now let's try it on another PC on my network by going to $laptop_ip:8000....


Ah, right - firewall's probably blocking it. Opening up port 8000 (protocol: TCP) in my firewall config did the trick (the port can be changed in the config.js file located in the grblweb install directory). Now I can get to it from any machine on my network.

At this point all I've verified is that GRBLWeb is installed and accessible. I haven't set up GRBL itself on my Arduino yet to check that communication - that'll come soon.