RiceCNC is an integrated hardware/software system for controlling Computer Numeric Control (CNC) milling machines using stepper motors for axes positioning. Several motor controller interfaces are supported, including industry standard step/direction, discrete, quadrature and now ST Microelectronics "dSpin" SPI. The firmware performs position interpolations for any combination of linear and multi-dimensional cubic Bezier curves for up to nine axes. The host application automatically converts circular paths to cubic Bezier curves. The system also supports spindle speed control.