RiceCNC Changelog

What's new in RiceCNC 11.15

Oct 25, 2017
  • Adds tool vector rotation to support 5-axis machining. The tool vector can be rotated by one or two angular axes linked to the vector. The vector is rotated around the tool position. If tool length compensation is applied, then an arc to compensate for the tool tip rotation is automatically inserted into the movement block.
  • Tool radius compensation changed to use the tool vector set by M06 and the tool diameter set by the “D” parameter. G code 38 to set up tool radius compensation is removed.
  • Improved compile error checking. No firmware update.

New in RiceCNC 11.14 (Oct 22, 2017)

  • Adds tool length compensation using persistent “H” parameter offsets. The M06 command is implemented to support an Automatic Tool Changer (ATC) and enabling the tool vector to be given any orientation in 3D space.
  • User guide is consolidated from separate documents with the addition of Bookmark navigation.
  • Bug fixes:
  • Fixture position
  • program absolute coordinates made relative to the tool position
  • Note: Tool length compensation was temporarily removed for release 11.1 as it needed to be updated for vector-based machining.

New in RiceCNC 11.13 (Oct 10, 2017)

  • Adds optional units specifications to follow length or angle constants. Unit specifications are: “in”, “mil”, “mm”, “cm”, “deg”, “rad” and “milrad”. Unit specifications override the program modal setting for either inch units (G20) or millimeter units (G21). A command line can now contain constants with differing units. More efficient compile and execution, especially for constants.
  • Example: G01 X 1.0 mm Y 0.5 cm
  • Added addition performance parameters for motor speed PID.
  • Bug fixes:
  • Metric coordinate mode with vectors and drill cycles
  • Improved motor speed control
  • CNC document pause and abort button enable.
  • Motor speed configuration

New in RiceCNC 11.12 (Oct 5, 2017)

  • Adds cutter radius compensation, i.e., offset path generation. Cutter radius compensation can generate and render an offset path for any contour path consisting of any combination of straight and curved segments and given any spindle orientation in 3D coordinate space, i.e., X, Y and Z axes. Cutter radius compensation uses the standard G codes 38, 40, 41 and 42. However, the format for G code 38 is modified to support any spindle orientation.
  • The offset path is automatically trimmed to prevent gouging in inner corners and arcs. There is no limit to the look-ahead distance and the offset path will not enter a crevice too narrow for the cutter. Arcs are added to offset path to bridge outer corners of the target contour.
  • Restores the Fixture Position window. Add fixture selection to Machine Status Scroll View.
  • Bug fixes:
  • G code o4 and M code crashes
  • Program not completed at program end
  • Absolute position adjusted for selected fixture offset
  • Fixture setup not showing offset units
  • Metric mode positioning incorrect

New in RiceCNC 11.11 (Sep 27, 2017)

  • Bug fix release:
  • Firmware download not working,
  • Initialization bugs.

New in RiceCNC 11.10 (Sep 25, 2017)

  • Adds program defined surface area rendering patterns. Surface areas can be rendered from lines at any angle and any length that does not exceed the bounds of the bridged surface area. This makes it possible to engrave text onto contoured surfaces.
  • Adds a Table Of Contents to the user guide.
  • Bug fixes:
  • Multi-threading issues,
  • Autonomous operation,
  • Motor setup pole count,
  • Display unit change,
  • CNC control buttons not enable,
  • fixture selection automatically adjusting position.

New in RiceCNC 11.9 (Sep 16, 2017)

  • Adds support for machines using a common limit switch for both high and low axis limits, e.g., Tormach PNC.

New in RiceCNC 11.8 (Sep 13, 2017)

  • Bug fix release. Variable spindle speed selection table initialization.
  • Performance: More efficient host/server serial communications.

New in RiceCNC 11.7 (Sep 7, 2017)

  • Bug fix release.
  • Improved performance and precision - Fixed point calculations eliminate floating point rounding errors.
  • More efficient path encoding.

New in RiceCNC 11.6 (Sep 4, 2017)

  • Surface patches can now be bridged into continue loops. Up to 3 bridge patches can be derived from a single patch from defined control points. Surface vectors can be rendered as independent paths.
  • Two new surface area rendering patterns can render all patches in an area provided the area shape is rectangular with no voids. Forthcoming releases will add “smarter” patterns to render irregularly shaped surface areas. Rendering patterns can now be referenced by name.
  • Documentation is expanded with additional examples of surface patterns.
  • No firmware update.

New in RiceCNC 11.5 (Aug 30, 2017)

  • Adds quadratic Bezier splines and bridge surface patches.
  • Quadratic Bezier splines are less flexible than the cubic Bezier splines already supported by RiceCNC but render faster and can more accurately represent parabolic curves. They are also used by outline fonts that will be added in forthcoming releases to support engraving.
  • Surface areas can be defined to an arbitrary resolution using an array of surface patches, however, it would be difficult to define patches in CNC programs such that they would join seamlessly without creating edges.. A new command defines a surface patch that will seamlessly bridge two already defined patches either horizontally of vertically. Bridge patches can be rendered just as patches defined directly from surface vectors.

New in RiceCNC 11.4 (Aug 25, 2017)

  • Introducing Cubic Bézier Surface Patches!
  • Cubic Bézier Surface Patches define an undulating surface area using a small number, i.e., 16, of control points. Patches enable rendering wavy surface areas at high resolution whereas a large dataset might otherwise be required.
  • Patches can be combined to describe complex surfaces. Patches areas are usually square or rectangular but can be distorted into other shapes. Patches can be wrapped around an angular axis to describe generally cylindrical shapes. Flat surface patches can be useful for milling flat surface ares.
  • No firmware update.

New in RiceCNC 11.3 (Aug 21, 2017)

  • Continues support for 5-axis vector based machining. Vector references are now properly rotated by polar transforms. This enables a circular pocket mill to be done using only three CNC commands with the vector expanding the radius of the circle into a spiral..
  • Additional example files. No firmware update.

New in RiceCNC 11.2 (Aug 16, 2017)

  • Continues development for 5-axis machining. Adds support for nutated axes. Polar transforms can produce circular motion about any axis orientation even while the axis vector is being rotated by another polar transform.
  • Adds isometric and other orthogonal views to the Path preview view.
  • Context help documentation is converted from text scrollviews to PDF documents.
  • Updated example files.
  • Several bug fixes. No firmware update.

New in RiceCNC 11.1 (Aug 8, 2017)

  • This is a major release adding preliminary support for 5-axis machining.
  • To prevent the PDF documentation file from becoming large and unwieldy, the documentation has been divided into several smaller documents. PDF documents can be opened from the main menu help menu which furthers acts as an index. The html documentation of supported G and M codes has been removed from the CNC document in favor of the PDF versions.
  • RiceCNC has long supported up to nine independent axes, however, 5-axis machining generally refers to the ability of a machine and software to bring a cutting tool to any point on a object at any angle. There are excellent illustrated guides to 5-axis machining available on the internet, so only a brief introduction is provided here.
  • Five axis machining generally requires the machine to have three linear axes, usually the three orthogonal machine axes, plus two rotational axes to change the angle of the cutter relative to the work. The rotational axes may be fixed to the table, e.g., a cradle and turntable, or on the spindle axis, or a combination of the two.
  • As the relative angle of of the cutter is changed, the machine position must be moved to maintain the position of the cutter relative to the workpiece. Generally the computations to do this would be too complex for CNC programs. Therefore, 5-axis software needs to have some knowledge of the machine configuration, i.e., the kinematics.
  • This release adds vector and polar transforms to support machine kinematics. The transforms can describe the interactions of the five axes. Both vector and polar transforms can be configured interactively or by CNC programs. Refer to other guides for more information on this configuration.
  • The new vector and polar transforms duplicates and obsoletes much of the functionality provided in previous releases. Some of the obsoleted functionality has been removed, other functionality is deprecated by maintained for compatibility. Other functionality has been temporarily removed but will reappear in future releases in a different form.
  • In particular, the “Coordinate Transformation Matrix” has been removed effectively being replaced by vector rotations. Vector transforms are both more flexible and more intuitive to use. C codes for manipulating the CTM have been removed being replaced by G codes for configuring and rotating vectors.
  • The Path Wizards have also been removed for this release. The pocket machining wizard functionality may reappear in a different form, i.e., Bézier surfaces.
  • Vector transforms enable drill cycles to drill at any angle rather than being restricted to an orthogonally aligned axis. The orthogonal plane selection G codes remain supported for compatibility but are now deprecated.
  • The “Program Position Mode” has been removed effectively being replaced by vector transform positions. The new non-modal solution enables CNC programs to reference vector transforms and axis names directly in the same move or feed command.
  • Polar transform can calculate cartesian coordinates given a polar center and polar coordinates and vice versa. However, polar transforms can also generate circular arcs and are easier and more flexible to use than the circular arc G codes G02 and G03. These G codes remain supported for compatibility but are now deprecated. Polar transforms can generate circular arcs with any axis orientation.
  • Axis, vector and polar transform references can be freely mixed on move (G00) and feed (G01) commands. This added flexibility makes relative coordinate addressing mode more convenient and it is now the default.
  • The path view now displays a grid to indicate scaling and also displays Bézier control points and path direction.

New in RiceCNC 10.15 (Jun 20, 2017)

  • UI: Adds a Path View child window to the CNC document window. The view is an orthogonal view of the X and Y coordinate tool movements and is redrawn automatically by the "Dry Run" or "Run" document buttons. Other path view contents and view angles will be added in future releases.
  • Performance: Faster host command interpretation. More compact XML files.

New in RiceCNC 10.14 (Jun 13, 2017)

  • Major UI update: Deprecated NSDrawers are replaced by child windows. Child windows move and hide with the parent document window to indicate the logical association. Separate windows are easier to arrange enabling more efficient screen area usage.
  • Bug fix: Auxiliary controls not working.

New in RiceCNC 10.13 (Jun 9, 2017)

  • UI: Moved auxiliary control buttons to a more accessible StackView on main window.
  • Autonomous: Autonomous extended to LED control applications. Pause is now recordable. Added a repeat counter for stored program execution.

New in RiceCNC 10.12 (May 26, 2017)

  • UI: Numerous contextual help buttons are added to the UI. Pressing a help button will add a scrollable textview below or near the button. The information duplicates much of the information available in the PDF documentation but is presented in a more convenient manner.
  • Bug fixes: Spindle configuration, analog pin assignment, reset timer.

New in RiceCNC 10.11 (May 16, 2017)

  • Autonomous operation: The desktop client can now monitor the progress of a program being run from internal memory.
  • An idle timeout reset is added as a power saving feature to stop motor power when the system is left idle for a period of time.
  • Startup initialization bug fixes.

New in RiceCNC 10.10 (May 8, 2017)

  • Autonomous Operation: You can now store up to 16 CNC programs in processor internal memory. Each program is stored in a block along with the machine configuration at the time of the recording. Once stored, programs can be selected and run multiple times using only the switches on the µP board with no computer connection required. The 6 KB EEProm remains available as block zero, but other blocks are each stored in a 64 KB flash memory sector. Four blocks are reserved for CNC program storage in the smaller TM4C123GXL.
  • A watchdog reset timer is added to automatically reset the processor in the event of a crash.
  • A drawer initialization bug is fixed.

New in RiceCNC 10.9 (May 1, 2017)

  • Autonomous Operation: You can now store a CNC program along with the machine configuration in EEProm. Once stored, the program can be run multiple times using only the switches on the µP board with no computer connection.
  • Prior versions could run only in a desktop client and µP server mode. Future version will enable multiple CNC programs to be stored on the board.

New in RiceCNC 10.8 (Apr 10, 2017)

  • UI/Usability: Simplified drawer opening for the main window. PopOvers are replaced with three labels, Jog, Setup and Path Wizard, that can be dragged in the direction of a window edge to open a drawer on that edge.
  • Added a "Abort and reset" option to firmware error handling upon loss of communication from the host. This will decelerate motors before resetting the µP.
  • Added "fine tuning" parameter settings for the new interpolation algorithm. Users can safely use the defaults or experiment for improved performance.
  • Bug fixes: Group slave addressing for NXP I2C extenders. Periodic reporting interval.

New in RiceCNC 10.7 (Apr 5, 2017)

  • Performance: I2C device communication is now accelerated using interrupts, burst mode (hardware FIFO registers) and round-robin dispatch. This enables all ten I2C modules to be communicating simultaneously and it enables devices on the same module to keep the bus busy. This will be especially useful for LED light array applications.
  • Miscellaneous bug fixes.

New in RiceCNC 10.6 (Mar 28, 2017)

  • Performance: More accurate interpolation algorithms reduce off-tracking on curved paths especially at higher feed-rates. The previous algorithm allowed motors to lag the interpolated target positions sufficiently to stop without overrunning the target if the interpolation stops suddenly. The new algorithms couple the motor positions to the targets much more closely. To stop the motors, the interpolation is decelerated synchronously with the motor deceleration.

New in RiceCNC 10.4 (Mar 18, 2017)

  • CNC programs can now address I2C slaves directly. This enables the application to be used as an LED lighting array controller. The EK-TM4C1294XL µP has 10 I2C modules each supporting up to 62 PWM slave extenders. With each extender having 16 outputs, the total number of proportional outputs controllable by one µP is 9,920.
  • Group slave addressing is now supported for the PCA9685 and PCA9635 PWM extenders. Group pin addressing is now supported for the PCF8575 and MCP23017 binary output extenders.
  • Fixes a bug closing drawers.

New in RiceCNC 10.3.1 (Mar 11, 2017)

  • Bug fixes: Fixed new Machine document initialization. Improved window handling. Removed debug messages from firmware.
  • Features: Changed Pins window from an outline view to a view based table. Changed SPI setup and firmware to support all SPI pin and daisy-chain configurations.

New in RiceCNC 10.1 (Mar 3, 2017)

  • Adds support for I2C connected slave devices. Initially six slave ICs are supported: The TI DRV10983 is a 24V 2A sensorless 3-phase motor driver; The TI DRV10975 is a 12V 1.5A sensorless 3-phase motor driver; The PCF8575 is a I/O extender with 16 quasi-bidirectional pins - outputs are open-collector only; The MCP23017 is a I/O extender with 16 bidirectional pins - output is bi-polar or open-collector; The PCA9685 is an output only extender with 16 pins either On/Off or 12 bit PWM at 1500 Hz. The PCA9635 is an output only extender with 16 pins either On/Off or 8 bit PWM at 97 KHz.
  • The TI DRV10983 and DRV10975 have a EEPROM to save motor parameters. RiceCNC can be used to configure and test motor parameters, then the chips can be moved to a different system. I/O extenders are convenient for system design by requiring only a 4 wire connection to µP board, i.e., clock, data, power and ground. They can also boost output voltage from 3.3V to 5V. The PCA9635 may be fast enough to use for motor commutation.

New in RiceCNC 9.37 Beta (Mar 25, 2016)

  • Bug fixes:
  • Motor overrunning target position, optional execution, spindle speed.
  • Efficiency:
  • Improved 3-phase spindle driver. Still preliminary but able to run at 1000 rpm while performing circular interpolation.

New in RiceCNC 9.36 Beta (Mar 24, 2016)

  • Bug fixes:
  • Improved algorithm to stop motors at target interpolation position without overrun or oscillation.
  • Efficiency:
  • Added support for the high speed Quadrature Encoder Input (QEI) counter.
  • Three-phase motor driver logic is improved but still preliminary.

New in RiceCNC 9.35 (Mar 17, 2016)

  • Bug fixes and performance improvements.
  • Spindle controls can now be linked to any positioning axis.
  • Adds preliminary support for 3-phase BLDC motors running open-loop or with optical encoder feedback. BLDC motors will be better supported following the upgrade to the new and faster TI "C2000 LaunchPad" µP board.
  • Price change: The multi-axis subscription period is extended to either two months or to two years effectively reducing the price retro-actively for current customers.

New in RiceCNC 9.35 Beta (Mar 15, 2016)

  • Bug fixes and efficiency improvements.
  • Adds preliminary support for 3-phase motors with optical feedback but his support targets the new and much faster “C2000 LaunchPad”. Hall sensor logic is deprecated as the sensors lack the accuracy required of a position feedback device.

New in RiceCNC 9.34 Beta (Feb 17, 2016)

  • UI: Improved pin assignments
  • Improved hall sensor phasing.
  • Efficiency improvements.

New in RiceCNC 9.33 Beta (Jan 31, 2016)

  • This release extends the license period for the 1 month subscription to 2 months and extends the license period for the 1 year subscription to 2 years. This effectively reduces the annual subscription cost for a three axis machine to $19.99. This change will apply retroactively to current subscribers. The product descriptions will be updated with the next iTunes release.
  • Adds to option to connect the spindle controls to any positioning axis. This is particularly useful when the spindle is a BLDC motor.
  • Misc bug fixes.

New in RiceCNC 9.32 (Jan 15, 2016)

  • Improved support for Pulse Width Modulated (hardware timer driven) outputs.
  • Removed requirement for separate installation of the open-source lm4flash flasher utility. Flasher code is now built into the application.
  • Increased BLDC motor micro-step resolution to 1/64.
  • Improved WatchDog timer handling fixes bug with µP resetting if main thread UI is held busy.
  • Improved efficiency of serial monitor window.

New in RiceCNC 9.32 Beta (Jan 14, 2016)

  • Bug fixes:
  • Initializing limit switches.
  • Initializing spindle pins.

New in RiceCNC 9.30 Beta (Jan 13, 2016)

  • Fixes prior bug requiring separate installation of libusb.

New in RiceCNC 9.29 Beta (Dec 30, 2015)

  • Improved WatchDog time handling. Fixes bug with µP resetting if main thread is held busy.
  • Improved efficiency of serial monitor window.

New in RiceCNC 9.28 Beta (Dec 22, 2015)

  • Removed requirement for separate installation of the open-source lm4flash flasher utility. Coding based upon lm4flash is now built into the application.
  • Increased BLDC motor micro-step resolution to 1/64.

New in RiceCNC 9.27 Beta (Dec 22, 2015)

  • Improved support for Pulse Width Modulated (hardware timer driven) outputs.
  • Increased BLDC motor micro-step resolution to 1/32.

New in RiceCNC 9.25 (Dec 7, 2015)

  • Adds preliminary support for three phase BLDC motors using the new TI BOOST-DRV8305EVM high power driver board. This release will run BLDC motors open-loop with 1/16 micro-stepping or, for motors having hall sensor feedback, Space Vector Sinusoidal Commutation (SVSC) is supported for maximum efficiency.
  • A "Soft PFM" algorithm generates analog output on any GPIO pin overcoming the shortage of hardware supported PWM outputs.
  • Note: This release reformats the machine document XML file. You will need to reenter setup information. Save a prior copy for reference.

New in RiceCNC 9.21 Beta (Oct 24, 2015)

  • This release reformats the Axis portion of the Machine XML document. You will need to reconfigure axis parameters and pin assignments.
  • Additional preliminary UI coding for both brushed and brushless DC servo motor support.

New in RiceCNC 9.20 Beta (Oct 18, 2015)

  • UI improvements.
  • Preliminary UI coding for both brushed and brushless DC servo motor support.
  • Bug fix: axis enable.

New in RiceCNC 9.19 Beta (Oct 18, 2015)

  • Adds support for open loop three phase motors and for hall sensored motors. This is preliminary to upcoming support for closed loop three phase motor control.

New in RiceCNC 9.18 Beta (Oct 6, 2015)

  • Adds support for closed loop stepper motors.
  • Bug fixes:
  • µP memory leaks when changing configurations.

New in RiceCNC 9.17 (Oct 6, 2015)

  • El Capitan update,
  • Adds "Slave Input Mode" enabling control from another motion control system following initialization of drivers using RiceCNC.
  • Improves handling of user "Pause" and "Abort" events. Pause will now stop Spindle and Coolants (if running) and restart on continue.
  • Improves limit switch handling. Logic will now slowly back off of limit switch and set the machine position.
  • Adds "Door Ajar" switch input.
  • Adds GPIO drive and input bias current selection.
  • Adds alarm output.
  • Several bug fixes and UI improvements.

New in RiceCNC 9.9 (Aug 25, 2015)

  • Documentation includes DIY instructions for the above pictured machine upgrade;
  • Added support for the Seeed Studio "Grove Base". This inexpensive board attaches to either LaunchPad BoosterPack connector providing 4 pin connectors each with two BoosterPack signal pins, power and ground. In addtion to providing convenient connections for step/direction outputs, limit switch inputs, etc., a wide variety of Grove modules are available to adding flexibility to your machine configuration;
  • More efficient µP - host communications;
  • Motor power supply relate configuration;
  • Easier pin configuration;
  • A spinning progress indicator prevent "App Nap" from causing periodic µP resets.

New in RiceCNC 3.20.22 (Aug 13, 2013)

  • Adds polar coordinate mode (G codes 15 and 16).
  • Adds Grand Central Dispatch multi-threading to improve host software performance.
  • Program modals sheet changed to table layout.

New in RiceCNC 3.18.22 (Aug 2, 2013)

  • Adds CNC document colorization and a wizard for pocket milling.
  • The wizard generates a CNC program that can be edited, run, saved or copied into another program.
  • Also adds exact stop mode (G codes 61 & 64), configurable host timeout and bug fixes.

New in RiceCNC 3.13.20 (Jul 18, 2013)

  • Interpolation drawer split into separate "wizard drawers" for linear interpolation, circular interpolation and drill cycles. Bug fixes.

New in RiceCNC 3.12.19 (Jul 9, 2013)

  • Added axis scaling (G codes 50 & 51)
  • Added enable/disable tool length compensation (G codes 43 & 49)
  • Improved documentation and bug fixes
  • Axis scaling is applied to circular interpolation commands (G codes 2 & 3) such that the commands can be modified to cut ovals

New in RiceCNC 3.11.19 (Jun 25, 2013)

  • Significant improvements to fixture, tool and program offset logic.
  • Fixture and tool setup and selection moved from drawers to sheets.
  • Rotational diameter enables rotational axes to participate in feedrate calculations.
  • Machine OK input is displayed for machine sending this signal.
  • Speed control ranges support spindle "gearing", e.g., stepped pulleys.

New in RiceCNC 3.4.14 (Jun 8, 2013)

  • Firmware performance improvements provide faster and smoother motor stepping. Default interpolation rate is raised from 500 to 4,000 per second. Fixed bug with M4 (CCW spindle rotation).

New in RiceCNC 3.1.12 (May 18, 2013)

  • Spindle speed control operates in either frequency or PWM modulation mode for compatibility with Tormach and Digispeed controllers. Several bug fixes and efficiency improvements.

New in RiceCNC 2.0.8 (Mar 14, 2013)

  • Adds continuous jogging of one or two axes using multi-touch trackpad finger dragging.
  • The functionality is similar to that provided by a joystick or trackball machine controller.
  • This is useful for freehand machining such as to follow a pencil line but with the safety of not using a handheld tool.
  • Movement can also be feedrate limited to avoid overheating cutters.

New in RiceCNC 1.17.7 (Mar 2, 2013)

  • Removes restriction on running unsaved CNC document.