NCRouter2D, NCRouter4D and NCRouter6D Firmwares

The NCRouter2D, NCRouter4D and NCRouter6D series of firmware (as implemented by the dsPicNCRouter2D, BC2D20NCRouterBC4E20NCRouter and BC6D20NCRouter firmwares) are designed to allow certain of our controllers to operate multi-axis stepper motor systems, wherein the intent is to control the set of motors as one unit. It supports "perfect line" drawing, wherein the firmware controls the relative X,Y (or W, X, Y Z, if operating 4 axes, or W, X, Y, Z, A, B if operating 6 axes) stepping rates needed to cause straight (linear) motion between specified pairs of X,Y addresses. Additionally, the code provides a powerful arc/circle (actually, a polygon) drawing tool, which permits easy drawing of arcs, circles and polygon figures.  The arc system supports degree measurements down to 1/1,000,000 of a degree, and is accurate to +/- 1 step with radii of up to 100,000,000 steps on the 2 and 4 motor systems, and +/- 1 step with radii of up to 5,000,000 steps on the 6 axis systems.

In order to perform the linked-motor operations, the firmware makes the assumption that one "step" on the any motor generates the same distance of motion as one "step" on any other motor. It also supports gear system "backlash", as may be required when the direction of rotation is changed.

The NCRouter2D/NCRouter4D/NCRouter6D firmware series shares many of the features of the GenStepperBC2D20PotRouter dual-motor controller and BC4E20PotRouter four-motor firmwares. The current 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 NCRouterxD firmware explicitly controls all 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 motors independently, so that one motor may be performing a "slew" operation, while the other is executing a "goto".  

The motion control is queue oriented: that is to say, it maintains a moderate size queue of pending actions (at least 50 elements are available), and allows queue elements to "chain" into each other (to allow complex motion without having to stop and restart the motors).

Short Feature Summary

  • Two to six stepper motors are to be controlled at one time.
  • Limit switches may be used to automatically request stop of motion if either motor reaches a limit in either direction.
  • An additional separate TTL input may be used to request an 'instant stop' of motion if triggers, as an emergency abort action.
  • Rates of 1 to 51,200 microsteps per second are supported on the 2 axis systems, 40,960 for 4 axis systems, 250,000 for the six axis systems.
  • Ramping of the motors follows a simple trapezoidal profile; however, the ramp rate is effectively unlimited (i.e., you can go from the start rate to the target rate in one step cycle).
  • 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:100,000,000 on the 2 and 4 axis systems, and to a precision of about 1:5,000,000 on the 6 axis system
  • Arc angles may be specified down to 1/1,000,000th of a degree.
  • 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 serial interface system.
  • Any number of motors may be run off of one serial line, when used in conjunction with one or more SerRoute controllers.
  • The 5.23 update for the two and four motor systems now supports reading of phase-encoders for the motors (note that there is no feedback control; the reading is report only, and is not used to automatically adjust the motor position).

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.