Machine Control

for Macintosh

RiceCNC is a Mac desktop application primarily for controlling CNC milling machines (subtractive manufacturing) but also can be used for control of LED arrays. The application contains embedded firmware for cost-effective but powerful TI LaunchPad micro-controller boards.  The integrated solution controls CNC machines with high precision with the dedicated µP board relieving the host processor of real-time processing considerations.

For LED array control, the TI EK-TM4C1294XL has 10 I2C modules. Up to 62 PCA9685 or PCA9635 LED slave extenders can share each module bus and each extender has 16 PWM output pins. This results in a total of 10 * 62 * 16 = 9,920 LEDs that can be proportionally controlled by RiceCNC.

As micro-controller boards continue to become more powerful and less expensive, cost effective solutions can use multiple µP boards to support virtually large machine configurations. The host computer has unlimited capacity for program storage and now have wireless capabilities to communicate with mobile (iPad) controllers.

The system supports stepper motors using several interface methods. It also supports fixed or variable speed spindle motor interfaces. The firmware supports most motor driver board interfaces having either a step/direction, quadrature or discrete 4 wire interface. The signal levels may be either voltage mode or current-loop. Intelligent 3-phase servo motors having a stepper compatible interface, e.g., thy Teknic “Stepper Killers” can also be used.

The LaunchPad boards use 40 pin BoosterPack connectors that can adapt to motor driver boards having DB25F PC parallel port input or industry standard discrete, e.g., step/direction, inputs. However, some newer motor driver boards using a Serial Peripheral Interface (SPI) are now supported and may be preferable due to the added software configuration and status monitoring capabilities provided by the 2-way communication.

Macintosh Software:

The Apple “Cocoa” document user interface enables a powerful and easy to use machine controller. CNC programs are coded in an RS274-D compatible syntax with extensions to support human readability, program control, math functions and conditional execution. Programs can read and conditionally branch using both digital and analog inputs.

The current iTunes Store release is an inexpensive download using In-App Purchases to support more complex machine configurations.


     1.     Easy to use Mac desktop user interface. Child windows move and hide with the document main window to indicate the window association. In combination with Mac OS X window restoration, the child window usage provides flexible screen customization.

     2.     Document architecture saves information in standard ASCII text files. The machine configuration files have standard XML file format. The CNC program files are easily exported and imported to/from other applications.

     3.     Up to nine independent axes of interpolation,

     4.     Vector transformations obsolete the path wizard used in prior releases for interactive coordinated linear, circular, drill cycles and pocket milling. Vector transform positions obsolete the program coordinated mode used in prior releases. Vector rotation obsoletes the multi-axis coordinate transformation matrix used in prior releases to support scaling, skewing, rotation. Vector transforms can link axes for threading and tapping operations in combination with drill cycles.

     5.     Polar transformations obsolete the polar coordinate mode used in prior releases to calculate position relative to a polar center and vice versa. Polar transformations further generate circular interpolation with any 3D orientation to obsolete the orthogonal arc G codes 2 and 3. Polar transforms further define machine kinematics for 5-axis machining.

     6.     Cubic Bézier Surface Patches define an undulating surface area using a small number, i.e., 16, of control points. Patches enable machining wavy surface areas at high resolution whereas a large dataset would otherwise be required. Surface Patch Bridges connect surface patches in an array to define large areas at arbitrary resolution.

     7.     Quadratic and cubic Bézier spline interpolation can follow any path in multi-axis space,

     8.     Mouse and trackpad jogging for axes and vectors,

     9.     Dry run mode previews a CNC program to a 3D graphic view.

     10.     Variable speed spindle control,

     11.     Slave mode motor control enables operation from other CAD-CAM software,

     12.     LED Array Control leverages the µP capability to drive many I2C extender cards in support of LED lighting array control applications,

     13.     Autonomous operation enables CNC programs to be recorded, along with the machine configuration, in µP internal memory. Once recorded, the program can be rerun multiple times using only the switches on the µP board, i.e., with no computer connection.

     14.     In-App Purchase reduces cost-of-entry for hobbyists and new users.

Thanks for your interest!

Bob Rice