A web-based interface for CNC milling controller running Grbl, Marlin, Smoothieware, or TinyG.
MIT License
Published by cheton over 6 years ago
Published by cheton over 6 years ago
This release contains several enhancements and usability improvements for connection, console, and axes widgets. See below for details:
Since CNCjs 1.9.12, the node-serialport library has been upgraded from v4 to v6, however, it caused a breaking change to the default hardware flow control option where RTS/CTS will be disabled by default on Windows, and it may lead to unexpected result for certain boards connecting with Windows devices. The "Enable hardware flow control" option is added in 1.9.13 for addressing this issue, you can turn on this option if you ran into trouble on connecting to the board while using Windows devices.
Adds color schemes and fixed a copy/paste issue in CNCjs 1.9.12.
Usability improvements for jogging and quick access buttons
Now you can go to Axes Settings to add custom commands and enable manual data input (MDI) support.
Toggle MDI mode
Published by cheton almost 7 years ago
Upgrades to serialport v6 (eec27be42fec762950d337b42610d890e8f2b5e5, #217)
Support for Marlin 3D printer firmware
Fixed a bug that may cause blank screen due to incorrect widget settings (0a8a92479664b6afeaab8599e4059fc248cea67d)
Note: For CNCjs 1.9.11 and earlier versions, if it always shows a blank screen, try clearing the Local Storage using browser's Developer Tools to fix the problem.
localStorage.clear()
Fixed a compatibility issue that the includes()
method is not available in Node.js v4 and v5 (88d4dec4a48787af32b7307f952e107fc87d72b7, #232)
[Grbl][Marlin][Smoothie][TinyG] Fixed a bug that will not continue program execution after the %wait command (a5f86d92ec230cdca83fa16c9e4ccce08f86997e)
Fixed a bug introduced in CNCjs 1.9.11 that will accidentally trigger feeder.hold({ data: "M0" })
or sender.hold({ data: "M0" })
when parsing lines containing variables (af60e4774e0c9a7c1381dc368c82d97715e0b4cc)
The following line
G0 X[xmin] Y[ymin]
will become
G0, X0, X0, M0, I0, N0, Y0, Y0, M0, I0, N0
[Security] Fixed a security issue that one can use an unauthorized token to access the server (1f7bae4449db63bc937f8143dd8b065b88f83b4b, #234)
Fixed a bug that sender may emit the 'end' event multiple times (https://github.com/cncjs/cncjs/pull/235/commits/1aa9625d542ec1e13fbd7c2428738dc85d24359e, PR #235)
Fixed a bug that caused browser crash if filename contains double-byte characters (232307a2c6d9a2504741d9ff2491b239b9245127)
Adds support to listen on specific address and port by passing command line options to Electron application (56ad797f557c487db47bc970e51b98d595513ee2)
Note: For Electron macOS app, use the open command to pass arguments to the application:
open -a /Applications/CNCjs.app --args -p 8000
Adds an "ignoreErrors" option that allows continuing program execution on errors (485bc7cdbfa63225692d3014e2f225b1719d0b05, #233)
Support for proxying requests starting with a mount path to an external url (a1cbadaf28f2af18793318b18d1f8d66e083c201)
cnc -vv -p 8000 \
--mount /tinyweb:/path/to/tinyweb/src/ \
--mount /widget:https://cncjs.github.io/cncjs-widget-boilerplate/v1/
Uses ResizeObserver to detect DOM changes (2bf0e2c966d2e599175a238eae34e1c45cfbd809)
Redirects URL path without a trailing slash to URL with a trailing slash (dff47b007e9ddfb5d00ebfa6ffe7b5a87588f736)
Implements serial connection library for serial port communication (74700aafc248145a6e5f63cc9f911e48baf019c2)
Removes comments that start with a semicolon ;
(a108668c198b9dbe70908d70af1b44e7070607b2)
Uses babel-polyfill for Node.js app (ed5667df3845ef8ba3bfda084cefb60d3933e16a)
Allows pasting commands into the terminal (b038cbc46d5a6309abbb302a7e13276b60917c9d)
Passes context as second parameter connection.write(data, context)
(cdc6d8799b1059a6f195543906056eb33dec0091)
Runs CI with Node.js v8 (f4a2c7cf1ca97bb698888e8c994bc5aab546d67c)
Improves usability when signing in from a pendant UI (25c8dd8f4aa291e36c6a6d873789159c6820f303, 1b06d4582a3609122cfa09ea1b3cb6987e38f827)
Replaces "clusterize.js" with "react-tiny-virtual-list" (6927d0b798d1cd8921731b3fcae8f19024b2455e)
Published by cheton about 7 years ago
This update contains M6 tool change support, various enhancements and bug fixes, including:
See the wiki page at https://github.com/cncjs/cncjs/wiki/Tool-Change
workflow.pause()
and workflow.resume()
) when performing a "Feedhold" or "Cyclestart" action (c02c28d08b396f7b003ab5283ea9514c18ad2b91)coordinate
to wcs
(699f9b58de30978e30c2cfdd58bb2630bc866aff)controller.command(socket, cmd, ...args)
controller.command(cmd, ...args)
modal.motion
modal.wcs
modal.plane
modal.units
modal.distance
modal.feedrate
modal.program
modal.spindle
stripComment
function from sender to controllers (88ccccd3b35c694efb7b5b4f5d55063d1f8e8c65, #210)Published by cheton about 7 years ago
Multiple mount points (a1bc6740d867b2b78e8ddf6e7af5a550553e22bd)
cnc -vv -p 8000 \
--mount /static:/path/to/static \
--mount /widget:/path/to/cncjs-widget-boilerplate/dist
For Electron macOS app, you can use the open command to pass arguments to the application:
open -a /Applications/CNCjs.app --args --mount /widget:/path/to/cncjs-widget-boilerplate/dist
Custom widget support (5fa51104a90e6ec5e109a3796937b2d5a955c80a, b366a8c78fb56b11e636b6a741a43070c801a834, #85)
See development guide and boilerplate code at https://github.com/cncjs/cncjs-widget-boilerplate
[Electron] Support for adding mount paths to the applcation menu (8eac37be9b4946ac99cf77ae848f02800c15b62e, #199)
[Grbl] Support for gCarvin firmware (113553ac20ca4610cd0530227f2414b64024a85b, #203)
Axes labeled in cm in mm mode (3c7b6ba3be77df13dada67f0cfb723c139bc43a4, #205)
Published by cheton about 7 years ago
G10 L20 P0
is not currently implemented in TinyG and G2core (7da19b0faa487eca56f6745c6e44af9bd38ac3b1, #191)gcode:load
and gcode:unload
events to all connected browsers (e7e7147bc40668a3e8499e3c90f1eed4c7d99b86)serialport:change
event listener to detect port changes (a591533b28bb8fee04f2d796039c1281e336d4fe)Published by cheton about 7 years ago
This is a recommended update for CNCjs 1.9.3 to 1.9.7. It resolves a critical issue that may consume all available receive buffer on Grbl especially when running a G-code program with slow feed rate.
If you're using CNCjs between 1.9.3 and 1.9.7, please update to 1.9.8 to have the latest stability fixes.
Workspace toolbar enhancements (7ea3ffea7c4bdbeac034118ea76a593136488d2b)
A new option to toggle the visibility of grid line numbers (708cc3848c22b4ba4d8a35f2be3376c49b2840b9, #182)
Navigation button for the A-axis (4fb3b0e55e177478eea473ff85a7e7fe0a83fdc3, #122)
Go To Work Zero and Go To Machine Zero buttons are now configurable (4fb3b0e55e177478eea473ff85a7e7fe0a83fdc3, #181)
Published by cheton over 7 years ago
Published by cheton over 7 years ago
This is a recommended update for CNCjs 1.9.5. It resolves a critical issue that the server may suddenly crash with an unexpected abort caused by Socket.IO 2.0, especially when performing keypad jogging repeatedly.
Published by cheton over 7 years ago
The Node.js server of CNCjs 1.9.5 may suddenly crash with an unexpected abort error caused by Socket.IO 2.0, especially when doing keypad jogging. Rolling back Socket.IO to 1.7.x will resolve this issue.
In this moment, please downgrade CNCjs to 1.9.4 if you encountered this issue.
The desktop app for Mac and Windows was not signed with a code signing certificate because the certificate has expired recently. If you encountered an issue that cncjs-1.9.5-win-x64.exe
or cncjs-1.9.5-mac-x64.dmg
is blocked by Windows Defender or GateKeeper during installation, you can bypass it to complete the installation. Sorry for the inconvenience in this moment.
Add dropdown menu support (15323f02176df66700e9cfc1a4f463be3bbfbbfb, bf355bb783e278c2b847cd82913a1c3345394c1e)
Add support for forking widgets (f65a55bdb42f974397dd0a30e0e25637ae7b9e05, resolves #158)
Display fork icon for a forked widget (b73899c990b7d275b38aee525828f4240ef786ba)
Widget configuration improvements (200e9892c9bbc761c3e2229920f11e39e0b0cee7)
Add g2core as an alias for TinyG (122bb2ca6baa33642ef6714170176434eccd7ac6)
Support for custom baud rates (b0bfd3f92d19c9d7e5cc1353ed597053f53d7183, resolves #159)
Configuration file: ~/.cncrc
{
"ports": [
{
"comName": "/dev/ttyAMA0",
"manufacturer": ""
}
],
"baudrates": [250000]
}
Laser intensity control for TinyG/g2core (08b690f6402370c8935f158a5c6ac3b93cd228b5, resolves #107 and #160)
Support for TinyG and g2core override control (017b9d8167ab1e8dec7850085cba8112243ffddf, closes #160)
Specify the maximum value of S for M3 Snnn
with laser test (39291aa2ba0bd10f40c15c8b061cbcac4d8e354a)
Preliminary ARMv7 support (6a8bcb9392c3c328ecbad4286b614a7e6e0ee45c)
Published by cheton over 7 years ago
Support for evaluating expression after the % symbol (b3d393470ddaadfd98c9c31968c384728bb9473d). This enables preliminary support for Manual Tool Change (#118)
Example:
G90
%wait ; Wait for the planner queue to empty
%x0=posx,y0=posz,z0=posz ; Save work position to x0, y0, and z0
%zsafe=10
G0 Z[zsafe] ; Go to zsafe
G0 X200 Y200
%wait ; Wait for the planner queue to empty
G0 X[x0] Y[y0] ; Rapidly move to x0 and y0
G1 Z[z0] F10 ; Slightly move to z0
New macro variables (9655a7fc7897d8962cc3a958e6686bc7305f7582)
%wait
%xmin=0,xmax=100,ymin=0,ymax=100
%x0=posx,y0=posy,z0=posz
G0 X[x0] Y[y0]
New command line option for specifying CNC controller (322f1a066021473886edde77a03d929b428aa92b):
cnc --controller Grbl
cnc --controller Smoothie
cnc --controller TinyG
.cncrc
with current versions (3e1d0d8fd4d6e0c717df5adf68ddd011a21c493a, resolves #156)
{
"ports": [
{
"comName": "/dev/ttyAMA0",
"manufacturer": ""
}
]
}
Published by cheton over 7 years ago
Published by cheton over 7 years ago
Using html-webpack-plugin-after-html-processing without returning a result is deprecated.
(c9f610dd15a219b17cc5e8e4f226359e575759e7)Published by cheton over 7 years ago
Note: The project now renamed from cnc to cncjs, and will drop Node.js v0.12 support in a future release
This update contains improvements and bug fixes, including:
Published by cheton over 7 years ago
cncjs | electron | electron-builder |
---|---|---|
1.8.14 | ~1.4.14 | ~11.2.4 |
1.8.15 | ~1.4.14 | ~11.2.4 |
1.8.16 | ~1.4.14 | ~11.2.4 |
1.8.17 | ~1.4.14 | ~11.2.4 |
1.9.0-alpha | ~1.4.14 | ~12.2.0 |
1.9.0-alpha.1 | ~1.4.14 | ~13.5.0 |
1.9.0-alpha.2 | ~1.4.14 | ~13.5.0 |
1.9.0-alpha.3 | ~1.4.14 | ~13.5.0 |
1.9.0-alpha.4 | ~1.4.15 | ~14.5.1 |
1.9.0-alpha.5 | ~1.6.2 | ~15.1.1 |
1.9.0-beta | ~1.6.2 | ~15.4.2 |
1.9.0-beta.1 | ~1.6.2 | ~15.5.1 |
1.9.0-rc | ~1.6.2 | ~15.6.2 |
1.9.0-rc.1 | ~1.6.2 | ~15.6.2 |
1.9.0-rc.2 | ~1.6.2 | ~16.0.1 |
1.9.0-rc.3 | ~1.6.2 | ~16.0.1 |
1.9.0-rc.4 | ~1.6.2 | ~16.3.0 |
1.9.0-rc.5 | ~1.6.2 | ~16.3.0 |
Note. Electron 1.5.x ~ 1.6.x are running on upgraded versions of Chrome and Node and may have some instability. See electron-v1.5.0 for details.
Published by cheton over 7 years ago
Published by cheton over 7 years ago
Published by cheton over 7 years ago
This update contains a critical bug fix for 1.9.0-rc, 1.9.0-rc.1, and 1.9.0-rc.2
Published by cheton over 7 years ago
const re = new RegExp(//, 'g')
is not supported on Node.js v4 and earlier versions