CNCjs
MIT
- Platform
- Web Docker Linux macOS Windows
- Licence
- MIT Open source
CNCjs is a full-featured web-based interface for CNC controllers. Where OctoPrint is built around 3D printers, CNCjs targets mills, routers and other machines running Grbl, Grbl-Mega, Marlin, Smoothieware, TinyG or g2core: it sends the G-code, shows the tool path, and reports the machine’s position while it cuts.
Key Features
- Broad controller support — Grbl, Grbl-Mega, Marlin, Smoothieware, TinyG and g2core are all supported, which covers most of the hobby and prosumer CNC controller boards in use.
- Desktop apps and a web server — there is a desktop application for Linux, macOS and Windows, and the same interface can be run as a Node.js server and opened in any browser, including from a phone.
- Tool path visualisation — renders the job in 3D so you can see the shape of the cut and follow progress through it before committing material.
- 6-axis digital readout — live position readout per axis, which is the core instrument when setting up a workpiece or jogging to an origin.
- Multiple simultaneous clients — several browsers can watch and control the same machine at once, useful in a shared workshop.
- Customisable workspace and widgets — panels can be arranged to suit the machine, and custom widgets can be written against a boilerplate to add controls the core does not provide.
- Custom MDI command buttons — frequently used manual commands become one-click buttons instead of typed G-code.
- Practical machine controls — tool change support, Z-probe support, keyboard shortcuts, Contour ShuttleXpress jog wheel support, a watched directory that picks up new G-code files automatically, and multi-language support.
- Pendants — the project documents a pendant API with existing implementations for keypads, Raspberry Pi touch displays, game controllers and even voice control.
Why use CNCjs?
It gives a CNC machine the same conveniences a 3D printer has had for years: you send a job from a browser, watch the tool path, and stop it without scrambling for an emergency stop on a control box. Because it runs as a server, the machine can be headless — a small computer next to the router, controlled from a laptop — and because it is MIT licensed, it can be extended or embedded in commercial work without copyleft obligations.
Use cases
- Driving a hobby CNC router or mill on a Grbl controller from a browser.
- Retrofitting an older machine with a modern control interface without replacing its electronics.
- Running a headless Raspberry Pi next to the machine and controlling it from a tablet.
- Setting up jog and probe buttons tailored to one specific machine.
Requirements
Node.js for the server build, or the prebuilt desktop application for Linux, macOS or Windows; a serial connection to a supported controller board. A Raspberry Pi is a common host for permanent installations.
Alternatives
- LinuxCNC — real-time machine control for mills, lathes and routers, with a much heavier and more capable motion-control stack.
- OctoPrint — the equivalent web interface for 3D printers.
Views: 4