A web-based interface for CNC milling controllers running Grbl, Marlin, Smoothieware, or TinyG firmware.

CNCjs screenshot 1

CNCjs is an open-source web application that provides a graphical interface for CNC milling controllers. It acts as a server that communicates with machine hardware, allowing users to control their equipment through a web browser. The software is typically deployed on a server or a single-board computer like the Raspberry Pi to manage the connection between the computer and the CNC hardware via serial communication.

The application supports several common firmware types, including Grbl, Marlin, Smoothieware, and TinyG. Users can upload G-code files, monitor machine status in real time, and manage the milling process from any device with a compatible browser. It includes a responsive design to accommodate small screens and tablets used in workshop environments, ensuring that operators can monitor their machines without needing a full desktop workstation.

Key features

  • 6-axis digital readout for position tracking
  • 3D visualization of tool paths
  • Support for multiple simultaneous client connections
  • Customizable workspace with custom widgets
  • Z-Probe and tool change functionality
  • Watch directory for automatic file detection
  • Multi-language support for global accessibility
  • Custom MDI command buttons

The software is built using Node.js and can be configured via a JSON file or command-line arguments. It supports a variety of external pendants, including options for USB keyboards, numpads, and Raspberry Pi GPIO controls. For production environments, a simplified tablet UI is available to optimize the interface for shop floor use. The system allows for the creation of custom widgets and pendants through provided boilerplate code, enabling users to extend the functionality of the interface to meet specific hardware requirements.

Deployment is handled via npm, and the server can be configured to allow remote access or specific mount points for serving static files. The architecture allows the server to remain connected to the CNC controller while multiple clients view the status or send commands. This makes it suitable for environments where the controller is located in a noisy or dusty area and the operator prefers to work from a remote terminal.

CNCjs serves as a centralized control panel for hobbyists and professionals operating CNC machinery with compatible firmware.

Last Modified
Software TypeWeb App / Server
Platform
Last Activity1 month ago
Repository Age10 years
LicenseMIT
Open Source Alternative to
Open Source Software.io

Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.