office (314) 521-8808
fax (314) 218-4945

  US toll-free (877) 230-5270


Peter Norberg Consulting, Inc.

NCStepper Firmware

The NCStepper firmware is designed to allow our controllers to operate dual-axis stepper motor systems, wherein the intent is to control the pair of motors as one unit. It supports "perfect line" drawing, wherein the firmware controls the relative X,Y stepping rates needed to cause straight (linear) motion between specified pairs of X,Y addresses. Additionally, the code provides a simplified arc/circle (actually, a polygon) drawing tool, which permits easy drawing of near-circles and similar figures.

In order to perform the linked-motor operations, the firmware makes the assumption that one "step" on the X motor generates the same distance of motion as one "step" on the Y motor. It also assumes that the gear system has no "windup" required when the direction of rotation is changed. That is to say, location 1245 is physically the same when approached from location 2047 as it is from 999 (zero backlash).

The following table summarizes the currently released stepper motor control product key capabilities when operated using the NCStepper firmware.

Product Unipolar Bipolar Current/Winding with 2 motors Motor Voltages
SS0705 x   0.5 Amp 7-26
SS0705USB x   0.5 Amp 5-26
SS0710USB x   1.0  Amp 5-26
BiStepA06 x x 1.0 Amp 5-34
BiStep2A x x 2.0 Amp 3-43

The NCStepper firmware shares many of the features of the GenStepper dual-motor controller firmware. The PWM control of the motors is identical, as is the general method of sending numeric parameters for commands. Many of the commands which configure the system are also identical (such as setting the step rate); however, the fundamental control theory is different. The NCStepper firmware explicitly controls both motors at the same time, from a single command (such as Goto or Arc), with automatic step-rate ratioing in order to generate straight lines; while GenStepper explicitly controls the two motors independently, so that one motor may be performing a "slew" operation, while the other is executing a "goto".

The current version (using Adobe format) of the common NCStepper manual for all of our products is available by clicking here.  Hint: If you want to save your own copy of the manual, right click on the above link, and then select the 'Save Target As...' option which appears. Tell the system where to save the manual, and then you will be able to browse it at your leisure.

Short Feature Summary

  • Two stepper motors are to be controlled at one time.
  • Each motor may be either Unipolar or Bipolar for the BiStep series; they must both be Unipolar for the SimStep series.
  • Limit switches may be used to automatically request stop of motion if either motor reaches a limit in either direction.
  • Rates of 1 to 62,500 microsteps per second are supported.
  • Step rates are changed by linearly ramping the rates. The rate of change can be from 1 to 62,500 microsteps per second per second.
  • All motor coordinates and rates are always expressed in programmable microunits of up to 1/64th step. Changing stepping modes between half, full and micro-steps does not change any other value other than which winding pairs may be driven at the same time, and how the PWM internal software is operated.
  • Motor coordinates are maintained as 32 bit signed values, and thus have a range of -2,147,483,647 through +2,147,483,647.
  • Both GoTo and Arc (actually, multi-line-segment) actions are fully supported.
  • Arc vertex locations are calculated to a precision of about 1:10,000,000
  • Four modes of stepping the motor are supported:
    • Half steps (alternates 1 winding and two windings enabled at a time),
    • Full power full steps (2 windings enabled at a time)
    • Half power full steps (1 winding enabled at a time)
    • Microstep (programmable to as small as 1/64th steps, using a near-constant-torque PWM algorithm)
  • A TTL "busy" signal is available, which can be used to see if the motors are still moving. This information is also available from the serial connection.
  • Complete control of the motors, including total monitoring of current conditions, is available through the 2400 or 9600 baud serial connection.
  • Any number of motors may be run off of one serial line, when used in conjunction with one or more SerRoute controllers.

Click here if you need to download the current version Adobe Acrobat Reader from Adobe's site.

Click here if you prefer to use Foxit Reader as is available from the Foxit Software site.