CNCjs is a piece of Software developed in Node.js which enables you to send GCode from a Computer to an attached CNC Router. Within the CoMakingSpace, we have tried several G-Code Senders for their usability and finally decided for CNCjs.
Unfortunately, CNCjs did not provide all needed features out of the box. Luckily, it is open source, so we created our own fork of it with a small enhancement. This enhancement was needed in order to solve Issue 57. The code can be found on GitHub as well.
In order to enable the control of our CNC-Router without the need of using a Computer, we created a panel, which is basically a HAT for the Raspberry Pi.
From a Software perspective, you can find the code on GitHub. If you are interested in the process of creating the panel, please take a look at Issue 67.
It basically uses socket.io to connect to CNCjs running on the same host. When the user presses a button, it sends the needed GCode to CNCjs, which then sends it to the Router.
The core functionality of CNCjs is to send GCode to machines which accept the same. You can find a detailed description over on their wiki.
In order to do so, it provides a webinterface. In this webinterface, you can directly control the router, see the picture of the attached camera or upload GCode files for sending them to the Router.
In general, please open  in your browser in order to access CNCjs.
Once you are connected, you need to select the serial connection CNCjs should use. Please use /dev/ttyUSBxx as the serial device. When the connection is successful, the console should indicate the same. In addition, CNCjs immediately sends a
$$ to the router, which ansers with its current configuration:
- Unlock (
- Home (
- Use the buttons to move the X and Y Axis to your desired position
- Set X0 and Y0
- Use the Buttons to move the Z-Axis to the top of your workpiece (put a piece of paper between your bit and the workpiece: it should not move)
- Set Z0