Releases: cncjs/cncjs
v1.9.14
v1.9.13
What's New
This release contains several enhancements and usability improvements for connection, console, and axes widgets. See below for details:
Connection Widget
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.
Console Widget
Adds color schemes and fixed a copy/paste issue in CNCjs 1.9.12.
Axes Widget
Usability improvements for jogging and quick access buttons
Custom Commands
Now you can go to Axes Settings to add custom commands and enable manual data input (MDI) support.
Toggle MDI mode
Change Logs
Enhancements
- Adds support for enabling hardware flow control (776c836, #243)
- Adds context menu support for editable content and selectable text with Undo, Redo, Cut, Copy, Paste, and Select All actions (55a3350, 50a3318, #241)
- Console widget enhancements (753abec, #241)
- Support for custom MDI commands (2dc9480)
- 6-axis (B and C) support (8100d0d)
Improvements
- Constancy with Axes menu order (1ccc359)
- [Electron] Remember window size and position (221bab9, #230)
- Support for validating dataBits, stopBits, parity, and flow control settings (rtscts, xon, xoff, xany) (39c5b3a)
- M2 and M30 do not pause workflow (97d778d, PR #248 by @MitchBradley)
- Improves usability of Axes widget (99946d0)
- Reloading commands and macros when the config file has been changed (dfac6bc)
Bug Fixes
- Fixed an issue where RTS/CTS must be turned on for certain controller boards when connecting to Windows host (1f97f89, #243)
- Convert line endings from LF to CRLF for the pasted text (#241)
Others
- Drops support for armv7l target as it is currently broken (2a0a776)
- Improves naming conventions (80739ef)
Translations
- Updates German translation
- Updates Japanese translation
- Updates Simplified Chinese translation
- Turkish (Türkçe) language support
v1.9.12
Major Update
-
Support for Marlin 3D printer firmware
Bug Fixes
-
Fixed a bug that may cause blank screen due to incorrect widget settings (0a8a924)
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 (88d4dec, #232) -
[Grbl][Marlin][Smoothie][TinyG] Fixed a bug that will not continue program execution after the %wait command (a5f86d9)
-
Fixed a bug introduced in CNCjs 1.9.11 that will accidentally trigger
feeder.hold({ data: "M0" })
orsender.hold({ data: "M0" })
when parsing lines containing variables (af60e47)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 (1f7bae4, #234)
-
Fixed a bug that sender may emit the 'end' event multiple times (1aa9625, PR #235)
-
Fixed a bug that caused browser crash if filename contains double-byte characters (232307a)
Enhancements
-
Adds support to listen on specific address and port by passing command line options to Electron application (56ad797)
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 (485bc7c, #233)
-
Support for proxying requests starting with a mount path to an external url (a1cbada)
cnc -vv -p 8000 \ --mount /tinyweb:/path/to/tinyweb/src/ \ --mount /widget:https://cncjs.github.io/cncjs-widget-boilerplate/v1/
Improvements
-
Uses ResizeObserver to detect DOM changes (2bf0e2c)
-
Redirects URL path without a trailing slash to URL with a trailing slash (dff47b0)
-
Implements serial connection library for serial port communication (74700aa)
-
Removes comments that start with a semicolon
;
(a108668) -
Uses babel-polyfill for Node.js app (ed5667d)
-
Allows pasting commands into the terminal (b038cbc)
-
Passes context as second parameter
connection.write(data, context)
(cdc6d87) -
Runs CI with Node.js v8 (f4a2c7c)
-
Improves usability when signing in from a pendant UI (25c8dd8, 1b06d45)
-
Replaces "clusterize.js" with "react-tiny-virtual-list" (6927d0b)
v1.9.11
This update contains M6 tool change support, various enhancements and bug fixes, including:
Tool Change
See the wiki page at https://github.com/cncjs/cncjs/wiki/Tool-Change
Breaking Changes
- No longer control workflow state (i.e.
workflow.pause()
andworkflow.resume()
) when performing a "Feedhold" or "Cyclestart" action (c02c28d) - [Modal state] Renamed
coordinate
towcs
(699f9b5) - Remove the socket parameter from the controller command (bf83165)
- Before:
controller.command(socket, cmd, ...args)
- After:
controller.command(cmd, ...args)
- Before:
- Pause execution when the CNC milling controller detects an error in the G-code program (d16264a, #175)
Enhancements
- Google Analytics tracking (07c8db3)
- Unit tracking enhancement (6f11c9a, #206)
- Support for pausing gcode execution with M0, M1, M2, M6, and M30 (c61299b, #118, #212)
- Show notification message on Program Pause (M0, M1), Program End (M2, M30), and Tool Change (M6) (2546e05, #118, #212)
- Pop up a confirmation message asking for resuming program execution after M6 tool change (6c95bc8)
- Show a modal window asking user to continue for M0, M1, M2, M30, and M6 commands when executing a macro (e8e431e)
- New controller commands
- "feeder:feed" - Append new commands to the feeder queue
- "feeder:start" - Start
- "feeder:stop" - Stop
- Spindle and coolant enhancements (c2ad073)
- Feeder enhancements for better processing M0/M1/M2/M30/M6 commands among multiple browsers (a707c62)
- Sender enhancements for processing M0, M1, M2, M30, M6, and %wait commands (3141966)
- Support for using modal group variables in a macro (d858ca7)
modal.motion modal.wcs modal.plane modal.units modal.distance modal.feedrate modal.program modal.spindle
- Use the new line character to separate M7 and M8 to avoid modal group violation (a6aa326, gnea/grbl#289)
Bug Fixes
- Move the
stripComment
function from sender to controllers (88ccccd, #210) - Fixed a bug that causes authentication failure with the download link (0cb6c1a, #211)
- Fixed a bug that cannot check for updates (02738a7)
New Language
- Dutch (Netherlands) language (@dutchpatriot)
v1.9.10
Enhancements
-
Multiple mount points (a1bc674)
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 (5fa5110, b366a8c, #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 (8eac37b, #199)
Bug Fixes
Translations
- Spanish translations (@yeyeto2788)
v1.9.9
Recommended update for the desktop application built with Electron
Bug Fixes
- [Electron] Fixed a bug that may break workspace settings due to asynchronous file writing (3ddb776, #185)
- Fixed an issue that
G10 L20 P0
is not currently implemented in TinyG and G2core (7da19b0, #191)
Enhancements
- Electron build process enhancements
- Homing support for TinyG and g2core (673b5af, #194)
- Prompt the user for the corrupted workspace settings (55b7947, #185)
- Ability to import and export workspace settings
Improvements
- Concurrent execution among multiple browsers without the need of manually refresh browser window (#195)
- [Performance] Use a debounced function to persist settings only if 100ms have passed without it being called (3ddb776)
- [UX] Improvements for primary and secondary widget toolbar (1073e5c)
Other Changes
- Renamed cncjs to CNCjs
v1.9.8
Important Notice
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.
Bug Fixes
- Resolved a critical issue that ay consume all available receive buffer on Grbl (or Smoothieware) when running a G-code program (0148f35, #176, #186)
- Fixed an issue that may stop sending lines if the G-code sender is in the hold state (%wait) and a buffer overflow is being occurred (c091ec1)
Enhancements
-
Workspace toolbar enhancements (7ea3ffe)
-
A new option to toggle the visibility of grid line numbers (708cc38, #182)
-
Go To Work Zero and Go To Machine Zero buttons are now configurable (4fb3b0e, #181)
Other Improvements
v1.9.7 (unstable release)
v1.9.6 (unstable release)
Important Notice
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.
Bug Fixes
- Resolves crash and stability issues by rolling back socket.io to 1.7.4 (038d870, closes #161)
- Grbl: Fixed a bug that cannot return verbose settings information to the client (44b7759)
- Accepts dropping file to the workspace only when workflow state is idle (0f8feb6)
- The override control commands should be properly handled in accordance with the firmware version (b96c51d, resolves #160)
Improvements
- Common baud rates: 250000, 115200, 57600, 38400, 19200, 9600, 2400 (2b13276)
- Console widget improvement with terminal history support (f045d1b, d8a0c8d, closes #149)
- Prompt user if the server has stopped working due to an unexpected error (973eb6d, resolves #161, #169)
- Refine realtime status view for each controller (2011554)
- TinyG widget: Power management support (closes #166)
- TinyG widget: Support energizing motors for up to 30 minutes (258a5fc, baf2c86, closes #166)
v1.9.5 (unstable release)
Important Notice
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.
Code Signing 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.
Improvements
-
Display fork icon for a forked widget (b73899c)
-
Widget configuration improvements (200e989)
-
Add g2core as an alias for TinyG (122bb2c)
-
Support for custom baud rates (b0bfd3f, resolves #159)
Configuration file: ~/.cncrc
{ "ports": [ { "comName": "/dev/ttyAMA0", "manufacturer": "" } ], "baudrates": [250000] }
-
Laser intensity control for TinyG/g2core (08b690f, resolves #107 and #160)
-
Support for TinyG and g2core override control (017b9d8, closes #160)
-
Specify the maximum value of S for
M3 Snnn
with laser test (39291aa) -
Preliminary ARMv7 support (6a8bcb9)
Bug Fixes
- Fix z-index issue when other components use bootstrap input-group and form-control class (6bba9bd, JedWatson/react-select#1076, #159)
- Fixed a bug of incorrectly using stylus variable in calc (fixed 9ba87b1)