Peter Norberg Consulting BS1010 User manual

Peter Norberg Consulting, Inc.
Professional Solutions to Professional Problems
P.O. Box 10987
Ferguson, MO 63135-0987
(314) 521-8808
Information and Instruction Manual for
BS1010, BS1010W and SS1010
Stepper Motor Controllers
By
Peter Norberg Consulting, Inc.
Matches GenStepper Firmware Revision 5.51
Copyrights 2002-2014 by Peter Norberg Consulting, Inc. All Rights Reserved.
Authored in the United States of America. Manual published May 8, 2014 3:51 AM

Table Of Contents Page 2
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Table Of Contents
Table Of Contents...................................................................................................... 2
Disclaimer and Revision History................................................................................... 6
Product Safety Warnings ............................................................................................ 7
LIFE SUPPORT POLICY .................................................................................... 7
Introduction and Product Summary ............................................................................. 8
Notes on the BS1010 and SS1010 USB Power and Ground Isolation ..................... 9
Short Feature Summary .................................................................................. 10
Default Firmware Configuration: Power-On (and reset) Defaults ...................................... 11
Cooling Requirements ................................................................................................ 11
USB Driver Installation Under Windows for the BS1010 and SS1010 ................................ 12
Base Driver Installation Under Windows XP, Vista and Windows 7 ........................ 12
Initial testing of the board after driver installation –TestSerialPorts ..................... 13
Adjusting Default COM port properties for best operation .................................... 14
TTL Mode of operation................................................................................................ 15
TTL Input Voltage Levels: Schmitt-Triggered ..................................................... 15
Input Limit Sensors, lines LY- to LX+ ................................................................ 16
Motor Slew Control: Y- to RDY ......................................................................... 17
Potentiometer Rate Control ............................................................................. 18
Analog Input Signals.................................................................................................. 18
Serial Operation ........................................................................................................ 19
Routing Serial to ‘Child’ Boards ........................................................................ 20
Connecting your ‘Child Board’ ............................................................... 20
Routing the Serial Data ........................................................................ 20
‘<’ – Start Binary Route ............................................................ 21
‘>’ – Stop Routing.................................................................... 21
‘{xxx}’ – Select SerRoute compatible Route Mode........................ 21
Serial Commands ........................................................................................... 23
Serial Command Quick Summary .......................................................... 23
General Commands .................................................................. 23
Motor Control Configuration....................................................... 23
Motor Selection........................................................................ 23
Motor Motion Configuration ....................................................... 23
Motor Motion Control ................................................................ 23
TTL and Analog I/O .................................................................. 23
0-9, +, - –Generate a new VALUE as the parameter for all
FOLLOWING commands ....................................................................... 24
A –Select the Auto-Full Power Step Rate ............................................... 24
a –Read A/D channel .......................................................................... 25

Table Of Contents Page 3
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
B –Select both motors ........................................................................ 25
b –Select the communications baud rate ............................................... 26
C –Set TTL Lines high that are ‘1’ in ‘x’ ................................................. 27
D –Set TTL lines to requested values .................................................... 28
E –Enable or Disable Remote Direct Pulse Control .................................. 29
e –Write EEProm data ......................................................................... 32
Writing User data ..................................................................... 32
Saving the current firmware settings .......................................... 33
Firmware settings that are saved by “123456789e” 33
Restoring firmware settings to Factory Default values................... 34
G –Go to position x on the current motor(s) .......................................... 35
H –Operate motors at ½ power............................................................ 35
I –Wait for motor ‘Idle’ ....................................................................... 36
K –Set the "Stop oK" rate..................................................................... 36
L –Latch Report: Report current latches, reset latches to 0...................... 37
M –Mark location, or go to marked location. .......................................... 37
O –step mOde –How to update the motor windings ............................... 38
P –sloPe (number of steps/second that rate may change) ....................... 39
R –Set run Rate target speed for selected motor(s) ................................ 40
r –Set rate scaling parameters for X, Y motor rate control ....................... 41
S –start Slew. .................................................................................... 43
T –limit, slew switch control and motor driver enable.............................. 44
t –Configure all I/O port directions and use ........................................... 45
Bits 0-2: RDY I/O configuration.................................................. 45
Bits 3-5: NXT I/O configuration.................................................. 45
Bits 6-7: AN2 I/O configuration.................................................. 46
Bits 8-11: SI2, SO2, IO2 I/O configuration.................................. 46
Bit 12: reserved for future use................................................... 46
Bits 13-15: Motion control configuration: Instant Stop and
Double Current Modes .............................................................. 47
Bit 16 (+65536): Configure 'instant step' mode of operation on
new motion request.................................................................. 47
Bit 17 (+131072): Configure TTL input sense level for NXT-
based instant stop.................................................................... 47
Common ‘t’ settings to match prior firmware options .................... 48
Manufacturing shipment default: 4065t 48
Original GenStepper: 4057t 48
GenStepper configured for double current mode: 36825t 48
PotStepper: 4089t 48
PotStepper, dual potentiometer mode: 4085t 48
U –Set TTL Lines low that are ‘1’ in ‘x’ .................................................. 49
V –Verbose mode command synchronization and processor clock
control ............................................................................................... 50

Table Of Contents Page 4
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Changing the processor clock rate using the 'V' command ............. 51
W –Set windings power levels on/off mode for selected motor ................. 52
X –Select motor X .............................................................................. 52
Y –Select motor Y............................................................................... 52
Z –Stop current motor. ....................................................................... 52
! –RESET –all values cleared, all motors set to "free", redefine
microstep. Duplicates Power-On Conditions! ........................................... 53
= –Define current position for the current motor to be 'x', stop the
motor ................................................................................................ 55
? –Report status................................................................................. 56
The special reports which are understood are as follows................ 57
0: Report reportable items -1 through -11 57
-1: Report current location 57
-2: Report current speed 57
-3: Report current slope 58
-4: Report target position 58
-5: Report target speed 58
-6: Report windings state 58
-7: Report stop windings state 59
-8: Report current step action (i.e., motor state) 59
-9: Report step style (i.e., micro step, half, full) 59
-10: Report run rate 60
-11: Report stop rate 60
-12: Report current software version and copyright 60
-13: Report I/O configuration (‘t’ command data) 60
-14: Report microstep size 61
-15: Report the maximum step rate supported by this firmware
61
-16: Report A/D based (POT control) minimum rate value 61
-17: Report A/D setting at minimum rate 61
-18: Report A/D based (POT control) maximum rate value 61
-19: Report A/D setting at maximum rate 62
Other report values .................................................................. 62
5: Report LIMIT inputs 62
6: Report SLEW and IO inputs 62
16384 to 16415: Report User EEProm data 63
16416 to 16447: Report fixed firmware configuration data 63
other –Ignore, except as "complete value here" ..................................... 63
Additional notes on Direct TTL Step Control .................................................................. 65
StepperBoard.dll –An ActiveX controller for StepperBoard products ................................ 67
Board Connections..................................................................................................... 68
Board Size..................................................................................................... 68
Mounting Requirements-BS1010 ...................................................................... 69
Mounting Requirements-BS1010W.................................................................... 69
Mounting Requirements-SS1010 ...................................................................... 69
Connector Signal Pinouts, BS1010 and SS1010 .................................................. 70
Connector Signal Pinouts, BS1010W ................................................................. 70
Debugger connector ....................................................................................... 71
Firmware Factory Reset –Short PGD and PGC together ........................... 71

Table Of Contents Page 5
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
TTL Limit Input and Reset ............................................................................... 72
TTL Motor Direction Slew Control...................................................................... 72
Board status and TTL Serial ............................................................................. 73
BS1010W 19 Pin SIP Header............................................................................ 74
USB-B Serial (AR-BS1010 and AR-SS1010) ....................................................... 74
BS1010 and SS1010 Power Connector (labeled here top-to-bottom) And Motor
Voltages........................................................................................................ 75
BS1010W Power Connector (labeled here top-to-bottom) And Motor Voltages........ 76
BS1010 and SS1010 Power Option Jumper Configuration .................................... 76
Board mounting and cooling considerations ....................................................... 77
Calculating Current And Voltage Power Supply Requirements.......................................... 78
1. Determine the individual motor winding current requirements......................... 78
2. Determine current requirement for actually operating the motor(s) ................. 78
3. Determine the voltage for your motor power supply....................................... 79
4. Determine the logic supply requirements ...................................................... 79
5. Determine the power supplies you will be using............................................. 80
Board Jumpers .......................................................................................................... 81
Power Selection Jumper - SS/DS/5VO/USB....................................................... 81
Wiring Your Motor...................................................................................................... 82
Stepping sequence, testing your connection ...................................................... 83
Determining Lead Winding Wire Pairs .................................................... 84
Sequence Testing................................................................................ 86
Single motor, double current mode of operation ............................................................ 88
Wiring a Unipolar motor for double current mode ............................................... 88
Wiring a Bipolar motor for double current mode ................................................. 89
Motor Wiring Examples .............................................................................................. 90
Unipolar Motors.............................................................................................. 90
Jameco 105873 12 Volt, 0.150 Amp/winding, 3.6 deg/step ...................... 90
Jameco 151861 5 Volt, 0.55 Amp/winding, 7.5 deg/step .......................... 91
Jameco 155432 12 Volt, 0.4 Amp/winding, 2000 g-cm, 1.8 deg/step......... 91
Jameco 162026 12 Volt, 0.6 Amp/winding, 6000 g-cm, 1.8 deg/step......... 91
Jameco 169201 24 Volt, 0.3 Amp/winding, 1.8 deg/step .......................... 92
Jameco 173180 12 Volt, 0.060 Amp/winding, 0.09 deg/step geared .......... 92
Jameco 174553 12 Volt, 0.6 Amp/winding, 7.5 deg/step .......................... 92
Bipolar Motors................................................................................................ 93
Jameco 117954 5 Volt, 0.8 Amp, 7.5 deg/step........................................ 93
Jameco 155459 12 Volt, 0.4 Amp, 2100 g-cm, 1.8 deg/step..................... 94
Jameco 163395 8.4 Volt, 0.28 Amp, 0.9 deg/step ................................... 94
Jameco 168831 12 Volt, 1.25 Amp ........................................................ 95

Disclaimer and Revision History Page 6
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Disclaimer and Revision History
All of our products are constantly undergoing upgrades and enhancements. Therefore, while
this manual is accurate to the best of our knowledge as of its date of publication, it cannot be
construed as a commitment that future releases will operate identically to this described.
Errors may appear in the documentation; we will correct any mistakes as soon as they are
discovered, and will post the corrections on the web site in a timely manner. Please refer to
the specific manual for the version of the hardware and firmware that you have for the most
accurate information for your product.
This manual describes artworks BS1010, BS1010W and SS1010. The firmware release
described is GenStepper version 5.51. The manual version shown on the front page normally
has the same value as the associated GenStepper version. If no manual has yet been
published which matches a given firmware level, then the update is purely one of internal
details; no new features will have been added.
As a short firmware revision history key points, we have:
Version
Date
Description
5.28
August 14, 2011
Upgraded to new assembler and linker;
improves detection of illegal interrupts.
Enabled automatic firmware support for use of
external precision oscillator as clock source.
5.30
February 19, 2012
Enhanced serial buffering, to allow for fully
buffered I/O (see the 'V' command)
5.40
November 20, 2012
Extensively modified 'step-and-seek' mode to
improve its behaviors when incoming pulse
rates are less than the target run rate
5.43
April 23, 2013
Correct error in the "regoto" functionality. If
you issue a 'z' command on a targeted goto
('G') command, and then re-issue a 'G'
command to the same location, the second 'G'
command could be ignored.
5.46
August 21, 2013
Added 't' configuration option to control
whether the first step on a new motion request
occurs 'instantly' or after a delay of one step
cycle. By default, it operates in the delay
mode, for compatibility with existing
applications. This update invalidates any
saved settings.
5.47
August 23, 2013
Added capability of user specifying sense level
(high or low) for the NXT-based instant-stop
operation (controlled by the 't' command).
September 5, 2013
Corrected a/d input command documentation
5.48
October 14, 2013
Added optional separate ramp rate for use
during a limit event (extension to 'P' command)
5.51
June 8, 2014
General bug fixes, correct 'L' documentation to
include 'motor is blocked from motion' bit
The microstep functionality is generated by a PWM (Pulse-Width-Modified)-like algorithm, and
is non-feedback based. Although the software has a demonstrated maximum resolution of
1/64th of a full-step, in practice most inexpensive stepping motors will not reliably produce
unique positions to this level of precision. Mainly, the microstep feature gives you a very
smooth monotonic motor action, with the capability of requesting step rates as slow as 1/64th
of a full step per second. We strongly suggest use of the default 1/16th of a full step microstep
size; this seems to give the best performance on most motors that we tested. Most non-
microstep enabled stepper motors will experience “uneven” step sizes when microstepped
between their normal full step locations; however, the steps are monotonic in the correct
direction, and are usually consistently located for a given position value.

Product Safety Warnings Page 7
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Product Safety Warnings
The BS1010 and SS1010 series of motor controllers have components that can get hot enough
to burn skin if touched, depending on the voltages and currents used in a given application.
Care must always be taken when handling the product to avoid touching these components:
The 2940 5 volt regulator (located directly beside the USB serial connector, next to
a tall electrolytic capacitor)
On the BS1010 series, the two SN754410 power drivers (both located near the
center of the board)
On the BS1010 series, the PCB board under the SN754410 power drivers and
under the 2940 regulator
Always allow adequate time for the board to “cool down” after use, and fully disconnect it from
any power supply before handling it.
The board itself must not be placed near any flammable item, as it can generate heat.
Note also that the product is only protected against static electricity when it is correctly
connected to a grounded power supply, with the GND power input truly connected to earth
ground. Its components can be damaged simply by touching the board when you have a
“static charge” built up on your body. Such damage is not covered under either the
satisfaction guarantee or the product warranty. Please be certain to safely “discharge”
yourself before handling any of the boards or components.
If you attempt to use the product to drive motors that are higher current or voltage than the
rated capacity of the given board, then product failure will result. It is quite possible for
motors to spin out of control under some combinations of voltage or current overload.
Additionally, many motors can become extremely hot during standard usage –some motors
are specified to run at 90 to 100 degrees C as their steady-state temperature.
The board must be adequately cooled based on your intended use -- please see the separate
section describing board mounting and cooling (Board mounting and cooling considerations).
LIFE SUPPORT POLICY
Due to the components used in the products (such as National Semiconductor Corporation,
and others), Peter Norberg Consulting, Inc.'s products are not authorized for use in life
support devices or systems, or in devices which can cause any form of personal injury if a
failure occurred.
Note that National Semiconductor states "Life support devices or systems are devices which
(a) are intended for surgical implant within the body, or (b) support or sustain life, and in
whose failure to perform when properly used in accordance with instructions or use provided
in the labeling, can be reasonably expected to result in a significant injury to the user". For a
more detailed set of such policies, please contact National Semiconductor Corporation.

Introduction and Product Summary Page 8
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Introduction and Product Summary
Please review the separate “First Use” manual before operating your stepper controller for
the first time. That manual guides you through a series of tests that will allow you to get your
product operating in the shortest amount of time.
The BS1010 and SS1010 microstepping motor controller from Peter Norberg Consulting, Inc.,
have the following general performance specifications:
BS1010
BS1010W
SS1010
Unipolar Motor
Yes
Yes
Yes
Bipolar Motor
Yes
Yes
No
Maximum Motor supply voltage (Vx and
Vy)
34V
15V
26V
Maximum Logic supply voltage (Vc)
15V
15V
15V
Quiescent current (all windings off)
150 mA
150mA
150mA
Maximum winding current (per motor
winding, requires external fan to
operate)
1.0A
1.0A
1.0A
Board size, BS1010
2.25” x 3.0”
2.4" x 2.5"
1.75" x 3.0"
Dual power supply capable
Yes
No
Yes
Each board can be controlled simultaneously via its TTL input lines and its USB serial interface
(the BS1010W does not have USB, however). If the TTL inputs are used alone, then simple
pan, tilt, and rate of motion are provided via 5 input switch closures-to-ground; additional
lines are used as limit-of-motion inputs. When operated via the serial interface, full access to
the controller’s extreme range of stepping rates (1 to 57,600 microsteps per second), slope
rates (1 to 57,600 microsteps per second per second), and various motor motion rules are
provided. Additionally, a special mode may be enabled which allows an external controller to
provide its own step pulses, allowing for up to 57,600 microsteps per second of operation.
The boards have a theoretical microstep resolution of 1/64 of a full step, and use a constant-
torque algorithm when operating in microstep mode. Please note that, although 1/64th
resolution is theoretically available, most real use should be restricted to 1/16th or 1/8th step
due to limitations of the non-current feedback PWM stepping methodology used by the code.
The boards themselves allow for user upgrades of the firmware via the USB interface, by
running an update application which is available from the Stepperboard.com web site.

Introduction and Product Summary Page 9
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Notes on the BS1010 and SS1010 USB Power and Ground Isolation
The BS1010 and SS1010 artworks optionally provide for some ESD protection to most of the
TTL input signals (except for the RST ‘reset’ input line), as well as for either optional isolation
of the USB signals from the rest of the board (to avoid potential ground loops), or for optional
use of the USB cable as a power source for the logic portion of the board (NOT to run motors).
This ESD protection is not available on the current BS1010W artwork.
BS1010 artwork SS1010 artwork
The ESD protection consists of special protection diodes connected between most of the TTL
input signals and the board ground. This means that the protection only works if the board
ground (the GND signals on the PWR connector) is connected to a power supply that can
absorb the ESD event. If the board is not connected to a power supply, or if the supply does
not redirect the GND to real earth ground, then the board ESD protection may not be
adequate.
The signals that are ESD protected are:
LIM: LY-, LY+, LX-, LX+
SLEW: Y-, Y+, X-, X+
IO: NXT, RDY, SI, SO, AN2, SI2, SO2, IO2
USB: All signals
Optionally, the USB signals can be digitally isolated from the rest of the board (order option).
This means that there is no longer a potential for a ground loop to occur between the power
supplies that you use to power the motors and the computer –they are fully isolated from
each other.
Alternatively, you may request that the logic portion of the board be capable of being powered
off of the USB cable. In this case, the USB cannot be digitally isolated; since power and
ground for the board comes from the USB system, isolation is not meaningful.

Introduction and Product Summary Page 10
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Short Feature Summary
One or two stepper motors may be independently controlled at one time.
Each motor may be either Unipolar or Bipolar (Unpolar only for the SS1010).
Each motor may draw up to 1.0 amps/winding (0.5 to 1 amp, depending on order
options, for the SS1010). Note that an external cooling fan must be used when
your motor draw exceeds 0.6 amps.
If only a single motor is connected to the board, then you can configure the board
to operate in DOUBLE POWER mode. This allows the board to operate a single
motor at twice the rated current for the board. For example, the BS1010 1 amp
product can operate a single 2 amp motor, when this feature is enabled (assuming
that the board is adequately cooled). On the SS1010 series, the 0.5 amp version
fully supports double power mode; however, the 1 amp version only supports this
mode to the extent that it allows for simultaneous identical motion between
motors.
Limit switches may optionally be used to automatically request motion stop of
either motor in either direction.
Rates of 1 to 57,600 microsteps per second are supported.
Step rates are changed by linearly ramping the rates. The rate of change is
independently programmed for each motor, and can be from 1 to > 1,600,000,000
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 Slew actions are fully supported.
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 normally available, which can be used to see if the motors
are still moving. This information is also available from the serial connection.
Simple control of the motors may be done by switch closure. Each motor can be
told to slew left or right, or to stop by grounding the relevant input lines.
Similarly, the rate of motion can be controlled via stepping through a standard set
of rates via grounding another input.
Complete control of the motors, including total monitoring of current conditions, is
available through the USB serial connection.
An additional mode is available which allows an external computer to directly
generate step sequences on the motor control lines. Up to 57,600 steps per
second may be requested.
Runs off of a single user-provided 6.5 to 15 volt DC power supply, or two supplies
(6.5-15V for the logic circuits and 5-34V for the motors).
Any number of motors may be run off of one serial line, when used in conjunction
with one or more SerRoute controllers.
Direct support on board for ‘daisy chaining’ boards using a subset of the SerRoute
system
3 of the pins may be individually reprogrammed as 12 bit A/D inputs, TTL inputs,
or as TTL outputs. Additionally, you may reprogram one or two of those pins to be
used as voltage-based rate controls for the motors (such as using a potentiometer
to set the rate)

Default Firmware Configuration: Power-On (and reset) Defaults Page 11
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
All of the slew inputs may be reprogrammed for use as generic TTL inputs
On the BS1010, the AN2, SI2, SO2 and IO2 pins may be fully reprogrammed for
use as generic digital I/O pins. The BS1010W does not support these extra pins.
Optionally, a precision oscillator may be used to allow for exact rates
Default Firmware Configuration: Power-On (and reset) Defaults
All of the default settings on the board (such as microstep size, ramp rates and so on) may be
reprogrammed by you to be remembered after a power cycle event (see the ‘e’ command for
EEProm operations). However, all of those features have a ‘factory default’ value which is
used whenever an EEProm reset is done or when a ‘reboot using factory default’ command is
given (“-1!”).
4! –Set the microstep size to 1/16 (4/64ths) of a step per logical step.
3072A –Set the Automatic Full Step rate to be >=3072 microsteps/second
B–Select both motors for the following actions
9600b –Set the communications baud rate to 9600 baud
0E –Operate in normal (non-step-and-direction) mode
0=–Reset both motors to be at location 0
0H –Set motors to full power mode
80K –Set the “Stop OK” rate to 80 microsteps/second
3O –(three-oh) Set the motor windings Order to “microstep”
8000P –Set the rate of changing the motor speed to 8000
microsteps/second/second
800R –Set the target run rate for the motor to 800 microsteps/second
‘r’ settings –Set the POT rate scales such that 0 volts maps into a rate of 1, and
5 volts maps into a rate of 57,600 for both motors
0T –Enable all limit switch detection
4065t –Set all I/O ports to our defined default settings
1V –Set <CR><LF> sent at start of new command, no transmission delay time,
normal 29.5 MHz system processor speed.
0W –Full power to motor windings
Cooling Requirements
If you are operating motors that require more than 600 mA of current per winding on the
BS1010 (or 200 mA per winding on the SS1010), or if your motor voltage exceeds 15 volts
then you must provide for fan-based cooling of the board. We suggest at least 8-10 CFM,
directed either across the top of the board, or downward towards the board (so that both the
2940 and the driver chips are in the direct path of the airflow). You may need to provide fan
cooling even if the current is less than 900 mA, depending on the ventilation you provide in
your enclosure.
If you intend to leave the power windings on (via the variations of the 'W' command), or if you
are not providing for any air flow in your enclosure (i.e., you are using a sealed box), then you
are very likely to have to cool the board, even if the current is under 600 mA (or 200 mA on
the SS1010)/winding.

USB Driver Installation Under Windows for the BS1010 and SS1010 Page 12
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
USB Driver Installation Under Windows for the BS1010 and SS1010
The BS1010 and SS1010 boards (not the BS1010W) use a USB driver chip for communications
with your hosting computer. FTDI (http://www.ftdichip.com) provides drivers for operation
under Windowstm, Linux, and Mac/OS.
For use under Windows XP and Vista, our installation disk includes modified copies of their
Windowstm drivers; our boards normally are shipping using a unique ID code which prevents
them from being recognized by the default FTDI drivers.
All Linux and Mac/OS customers must download their drivers directly from the
http://www.ftdichip.com site, as we have no support capability for those platforms. They will
also have to special-order the boards from us such that we configure them to respond to the
standard FTDI drivers. Look for the drivers and documentation that relate to their FT232RL
device.
A short summary of the installation of the drivers under Windows XP or Vista follows. For
installation under Linux or on the Mac, please refer to the FTDI documentation available from
their web site.
Base Driver Installation Under Windows XP, Vista and Windows 7
With the new drivers (as of December 5, 2009), the installation of the USB drivers has been
heavily streamlined and simplified. Normally, the installation is done as one of the
intermediate steps of installing the documentation package (from the SetUpStepperBoard.exe
installation application provided on our CD or as a download from our web site). If you elect
to not do the installation at that time, the actual current version of the installer is installed in
your programs menu, under:
Start->Programs->StepperBoard->USB Support Tools->Install FTDIStepperBoard USB Drivers
This tool requires that you are logged on as an administrator: it will not correctly install the
drivers if you are a ‘standard user’. The process normally is:
1. If you have not already done so, log on as an administrator to your computer. If you
are not logged on as an administrator, then the following procedure will be blocked as
soon as you attempt to install the drivers!
2. Make sure that none of our boards are plugged in.
3. Run the installer to completion, and exit any remaining “completion” panels.
4. Insert the small square end of the A-B USB cable into the stepper motor control board.
Insert the large flat end into a free USB port into your computer. Please make
certain that the cable fully “snaps” into our connector – this can take a
noticeable amount of force. If it is not properly “seated”, then Windows will not
correctly recognize the board.
5. Once the installation process completes, the code will automatically add a new “COM”
serial port which is “attached” to the board when it is plugged into the same USB port
on your computer. The system will automatically add a new COM port each time you
attach a new board to any other USB port on your computer or hub. It may also
create a new COM port if you receive a repaired board back from us (if we have had to
replace the USB driver chip).

USB Driver Installation Under Windows for the BS1010 and SS1010 Page 13
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Initial testing of the board after driver installation –TestSerialPorts
The easiest way to test the board (and to identify which COM port is being used for board
communications) is to run our “TestSerialPorts” application (found under ‘StepperBoard’ on
your ‘Start’ menu). This application will scan all of the potential COM ports on your system
(from COM1 through COM255), and will identify every port that has a connected StepperBoard
product powered and attached.
The test assumes that the board is correctly powered in order to ‘talk’ to the com port: in the
case of the AR-BS1010 board, you either have to correctly power the board with your own
power supply (as described under power connectors), or you have to configure the power
jumper on the board to the ‘USB’ power position in order to allow the logic portion of the
board to be powered off of the USB cable (this is an optional feature and may not be present
on your particular board).
When TestSerialPorts starts, simply press the “Scan Serial Ports” button (you may safely
ignore the other buttons). The application will then perform its scan, and will identify every
COM port on your system. It will also attempt to identify the baud rate for each connected
board, assuming that the board is set to a baud rate that it recognizes.
If TestSerialPorts does not locate your board, please contact us for additional tests to perform.
Remember that the board must be connected to your computer and powered on, and the FTDI
USB drivers must be correctly installed for TestSerialPorts to be able to locate the board.
Please note that the TestSerialPorts application will locate our board even if you have not
adjusted the default USB COM port properties, as described in the next section.

Page 14
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Adjusting Default COM port properties for best operation
Once the system has created the COM port for the board, you may need to change the system
defaults to match the requirements of our motor controllers. If you installed from the
‘FtdiStepperBoard’ subdirectory, then these changes will normally have been done for you.
Otherwise, you will need to perform the following procedure:
1. Under Windows 2000 or XP, go to your “system properties” page. Do this by
a. Right-click on your “System” icon
b. Select “Properties”
c. Select “Hardware devices” (it might just be called “Hardware”)
d. Select “Device Manager”
2. Under Windows Vista and Windows 7, log in as an administrator, and then get to your
“device manager” page by:
a. Go to your ‘Start’ menu, and click on the ‘Computer’ button
b. On the ribbon that appears at the top of the resulting window, click on
“System Properties”
c. On the task pane on the left of the new window, click on “Device Manager”
d. The system may ask for your permission to continue. Press the “Continue”
button.
3. Look under “Ports (COM and LPT)”, and select the COM port that you just added (it will
normally be the highest-numbered port on the system, such as “COM6”), and edit its
properties. Note that the ‘TestSerialPorts’ application (described in the prior section)
will have identified this COM port for you as part of its report.
4. Reset the default communication rate to:
a. 9600 Baud,
b. No Parity,
c. 1 Stop Bit,
d. 8 Data Bits,
e. No Handshake
5. Select the “Advanced Properties” page, and set the:
a. Read and Write buffer sizes to 64 (from their default of 4096).
b. Latency Timer to 1 millisecond
c. Minimum Read Timeout to 0
d. Minimum Write Timeout to 0
e. Serial Enumerator to checked
f. Serial Printer to unchecked
g. Cancel If Power Off to unchecked
h. Event On Surprise Removal to unchecked
i. Set RTS On Close to unchecked
(that is to say, only the Serial Enumerator is checked in the set of check boxes on the display)

TTL Mode of operation Page 15
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
TTL Mode of operation
The TTL input control method provides for nine input signals and one output signal. TTL based
control operates at the same time as serial control; therefore, any of the actions listed below
may be requested at any time that the board is not in its special “direct computer control”
mode of operation.
All external connections are done via labeled terminal block connections on the left and right
hand sides of the boards, and one USB serial port on the “bottom” of the board. All of the
input and control signals are on the left side, while all of the motor and power connections are
on the right side.
TTL Input Voltage Levels: Schmitt-Triggered
All TTL input signals are treated as TTL inputs using Schmitt-triggering. This means that a
logic “0” is generated at any time that the input voltage drops to <= 1 volt, and a logic “1”
is generated when the input voltage is above 4 volts.
Note also that the LIM and SLEW TTL inputs are tied to +5 via a 1K resistor. This permits
you to use switch-closure-to-board-ground as your method of generating a “0” to the
board, with the “1” being generated by opening the circuit. Unless you special-order the
board from us without the pullup installed, you may rely on this resistance value as being
valid for a current-based driver.
For the extended TTL signals of RDY, NXT, AN2, SIO2, SO2 and IO2, there are no pull-ups
or similar signal conditioners mounted on the board. All of these signals can be
programmed as being either inputs or outputs, and adding board-based pull-ups would
cause unnecessary heating of the microprocessor. This means that for any of those
signals which are used as inputs, you must either provide a true voltage source, or you
must actively tie the signal to our +5V using an appropriate resistor (1 to 10 K ohm).

TTL Mode of operation Page 16
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Input Limit Sensors, lines LY- to LX+
Lines LY- through LX+ are normally used by the software to request that the motors stop
moving when they reach a hardware-defined positional limit. Enabled by default at power
on, the firmware also supports the ‘T’ command, which may be optionally used to enable
or disable any combination of these switches.
The connections are:
Signal
Limit Sensed
LY-
-Y
LY+
+Y
LX-
-X
LX+
+X
The connections may be implemented as momentary switch closures to ground; on the
connector, a ground pin is available near the LY- pin. They are fully TTL compatible;
therefore driving them from some detection circuit (such as an LED sensor) will work. The
lines are “pulled up” to +5V with a 1K resistor.
The stop requested by a limit switch normally is “soft”; that is to say, the motor will start
ramping down to a stop once the limit is reached –it will not stop instantly at the limit
point (unless a special firmware option is ordered). You may use the ‘t’ command to
reconfigure this behavior to be an instant stop, if that is needed.
Under the ‘soft’ stop, if a very slow ramp rate is selected (such as changing the speed at
only 1 microstep per second per second), it can take a very large number of steps to stop
in extreme circumstances. It is quite important to know the distance (in microsteps)
between limit switch actuation and the hard mechanical limit of each motorized axis, and
to select the rate of stepping (“R”), rate of changing rates (the slope, “P”), and the stop
rate (“K”) appropriately.
As the most extreme example possible:
if for some insane reason the motor is currently running at its maximum rate of
57,600 microsteps per second,
and the allowed rate of change of speed is 1 microstep per second per second,
and the stop rate was set to 1 microstep per second,
then the total time to stop would be 57,600 seconds (about 16 hours -- groan!),
with a distance of ½ v^2, or ½ (57,600)^2, or 1,658,880,000 microsteps.
Note that this same amount of time would have been needed to get up to the
57,600 rate to begin with…
Therefore, it is strongly recommended that, if limit switch operation is to be used, these
extremes be avoided. By default, the standard rate of change is initialized to 8000
microsteps/second/second, with the stop rate being set to 80 microsteps/second.
Also note that use of the “!” emergency reset command, or the “1E” followed by “0E”
sequence will cause an immediate stop of the motor, regardless of any other actions or
settings in the system. Please be aware that, in some designs, damage to gear
systems can result when such a sudden stop occurs. Use this feature with care!
If you configure the system for ‘instant stop’ using the ‘t’ command, please be aware
that, in some designs, damage to gear systems can result when such a sudden
stop occurs. Use this feature with care!

TTL Mode of operation Page 17
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Motor Slew Control: Y- to RDY
Lines Y- through RDY are used to control stepping of the motors, and the rate of steps.
The slew inputs are designed to operate via a microswitch closure to ground. NXT does
not have a pullup resistor, so it requires a true voltage source if it is used in its optional
‘Next Rate’ configuration.
The connections are:
Signal
Action Requested
Y-
-Y
Y+
+Y
X-
-X
X+
+X
NXT
Rate Control (configurable)
RDY
Motors Ready, or rate control (configurable)
When operated normally, the indicated motor is “slewed” in the requested direction at the
current rate, as long as the indicated signal is at ground level. Illegal combinations (such
as Y- and Y+ both being low at the same time) are treated as “stop”, to avoid confusion.
As with all other operations of the system, each motor is accelerated to the current rate
using the ramp rate defined within the code (which defaults to 4000
microsteps/second/second).
The ‘NXT’ input can be configured by you to accept a TTL input signal to request a new
rate (using the ‘t’ command). The “Change Rate” action simply selects the “next” rate
from its standard internal table of rates, and sets that rate as the requested rate for both
motors. The standard rates currently provided after power on reset are:
16 microsteps (1 full step)/second
40 microsteps (2.5 full steps)/second
80 microsteps (5 full steps)/second
160 microsteps (10 full steps)/second
400 microsteps (25 full steps)/second
800 microsteps (50 full steps)/second (this is the power-on default)
1600 microsteps (100 full steps)/second
4000 microsteps (250 full steps)/second
8000 microsteps (500 full steps)/second
Be forewarned that there is no way for the software to tell that a motor cannot operate at
a given rate. On power-on, the default microstep is 1/16th of a full step; therefore, the
default rates range from 1 to 500 full steps/second. Changing the microstep size does
change the above real “full step” rates – see the ‘!’ command for more details.
The RDY output signal is normally configured by you to indicate that motor motion is still
being requested on at least one of the motors. When HIGH, then all motion is stopped.
When LOW, at least one motor is still moving. This signal is LOW when the system is
running under “remote pulse control” operation.
As a set of extended operations, both NXT and RDY can be configured by you to accept a
0-5 volt analog input signal, which can be used by the firmware to select the rate for one
or both motors. See the ‘t’ command for more details.

Analog Input Signals Page 18
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Potentiometer Rate Control
Through use of your own 1K potentiometer (or pair of potentiometers), you may optionally
control the rates of the motors by setting a pot. For both the NXT and RDY inputs (if
selected by you through use of the ‘t’ command), the schematic appears as follows (note:
R1 is a 1K potentiometer):
All of the board connections (+5V, NXT, RDY and GND) are available on the IO connector
on the BS1010. Capacitor C1 is optional; it may be needed if you get too much variance
in the rates generated by the circuit (due to noise on the analog input data).
Once you have wired the above circuit to the board, you may use the ‘t’ command to tell
the board that the NXT and/or POT inputs are to be treated as analog sources of rate for
the X and/or Y motors (the firmware supports complete flexibility here: either input may
control either or both motors). If you do not use the ‘r’ command to set the rate scales,
then the system is configured such that 0 volts maps into 1 microstep/second, and 5 volts
(A/D value 4095) maps into the maximum supported board rate of 57,600
microsteps/second. You may use the ‘r’ command to independently set the scalings of the
analog inputs for each motor, with the added flexibility of allowing the values to be
inverted (for example: you may map 5 volts into a rate of 1, while mapping 0 volts into a
rate of 20,000, if this works better in your application).
Please be forewarned: there is only marginal protection in the system for a broken wire
on the analog input. The code attempts to see if the input is flying around by performing
a simple least-squares calculation: however, it still can misinterpret a disconnected wire as
being valid, thus giving you random rates.
Analog Input Signals
Three of the input signals (NXT, RDY and optional AN2) may be configured through use of the
‘t’ command to act as analog inputs. When they are configured this way, they accept 0 to 5
volt positive voltages, which map into A/D readings of 0 to 4095 (respectively).
The input system requires less than 2.5K of input impedance: this means that your signal
sources need to be somewhat ‘hard’ (higher current), otherwise you may get more noise on
the input than you would prefer.
You may also find that you get better results by placing a small capacitor (0.01 to 1 uF)
between the selected input (such as NXT) and GND, as a simple filter for the input. If you do
this, you will get better results having the capacitor being close to the actual input connector
than if the capacitor is at your voltage source, since it will help to reduce induced noise picked
up by your wires running from your signal source to the board.
You use the ‘a’ command to read the signals, as is described here.
Variable Resistor Circuit for use with
GenStepper firmware on the BS1010 board
NXT or RDY
GND
R1
+5V
0.01 to 1 uF
C1

Serial Operation Page 19
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Serial Operation
The USB serial control of the system allows for full access to all internal features of the
system. It operates at almost any legal baud rate from 2400 to 115,200, no parity, and 1
stop bit. Any command may be directed to the X, Y or both motors; thus, each motor is fully
independently controlled. Note that you should wait about ¼ second after power on or reset
to send new commands to the controller; the system does some initialization processing which
can cause it to miss serial characters during this “wake up” period. You may use the ‘b’
command to select the baud rate: it will accept almost any rate, although only a few will be
‘perfect’. The suggested rates to use would be 2400, 4800, 9600, 19200, 38400, 57600 or
115000.
Actual control of the stepper motors is performed independently for each motor. A "goto"
mode is supported, as is a simple "go in a given direction". The code does support ramping of
the stepping rate; however, it does NOT directly support changing the ramp rate, step rate, or
“goto” target while a "goto" is under way. The behavior is either that the motor will first stop
and then perform the new request, or that the new parameter value will be used on the next
action. If button control is performed while a goto is underway, the goto gets changed to a
direction slew, and the state of actions is reset.
Serial input either defines a new current value, or executes a command. The current value
remains unchanged between commands; therefore, the same value may be sent to multiple
commands, by merely specifying the value, then the list of commands. For example,
1000G
would mean “go to location 1000”
0G?
would mean “go to location 0, and while that operation was pending, do a diagnostic summary
of all current parameters”.
The firmware actually recognizes and responds each new command upon completion of receipt
of the stop bit of the received character. This means that the command normally starts being
processed within 16 microseconds of completion of the character bit stream. In most designs,
this will not be a problem; however, since all commands issue an ‘*’ upon completion, and
they can also (by default) issue a <CR><LF> pair before starting, it is quite possible to start
receiving data pertaining to the command before the sending processor is ready for it! In
microprocessor, non-buffering designs (such as with the Parallax, Inc.tm Basic Stamp tm series
of boards), this can be a significant issue. The firmware handles this via a configurable option
in the ‘V’ command. If enabled, the code will pause for about 1 millisecond after receipt of a
new command character; for the Basic Stamptm this is quite sufficient for it to switch from
send mode to receive mode.

Serial Operation Page 20
BS1010 Motor Controllers Peter Norberg Consulting, Inc.
Routing Serial to ‘Child’ Boards
The BS1010 and SS1010 series of boards support optional “Serial Routing” of data to and from
other boards via the “SI2” and “SO2” TTL-Serial connectors. This permits “daisy-chaining” of
the boards, so that more than 2 motors may be easily operated off of one serial port.
Additionally, GenStepper version 5.0 and later supports “binary” serial transmissions – that is
to say, it allows communication with a “child” board which includes non-visible characters,
thus permitting communication with other products not supplied by Peter Norberg Consulting,
Inc. This routing behavior will not work on the BS1010W, since the signals are not available.
Connecting your ‘Child Board’
The SI2 and SO2 signals on the BS1010 and SS1010 are normally used as the TTL-Serial
connections to the child board. These are NOT RS232-level signals; instead, they are
standard TTL signals, 0 to 5 volt in value. The signals are:
SI2: TTL-Serial Input received from child board
SO2: TTL-Serial Output sent to child board
You also need to make certain that both boards have the same ground potential: they
both need to have their logic supplies run off of the same power supply. Ground should be
done via a “star” ground, which means that all grounds are tied to a common point (NOT
“daisy-chained”!).
Routing the Serial Data
At power on, the board is configured to directly interpret and execute all incoming serial
data, and to leave the SI2/SO2 serial echo lines idle. This mode means that the board is
under control of the serial data stream from the host. There are two methods of exiting
this mode, and switching to serial-routing operation (wherein data is routed from the serial
port to and from the SI2/SO2 pins as needed).
One method, the “Binary Route” technique, allows single-character entry into route mode,
and is the preferred method when controlling only one child board or when controlling a
child board which is not provided by Peter Norberg Consulting, Inc. (and therefore does
not match our normal communications protocol).
The other method, the “SerRoute compatible” technique, allows the BS1010 or SS1010
board to operate as both a router and a motor controller within a subset of the rules of the
“SerRoute” system (see the separate “SerRoute” manual for complete SerRoute
specifications –GenStepper version 5.0 supports just the ‘{xxx}’ style of routing).
This manual suits for next models
2
Table of contents
Popular Controllers manuals by other brands

Beckhoff
Beckhoff BC7300 manual

Mitsubishi Electric
Mitsubishi Electric ALPHA2 Quick start manual

Honeywell
Honeywell D6 PRO quick guide

Danfoss
Danfoss AMV 610 instructions

Mitsubishi Electric
Mitsubishi Electric FX3U SERIES Hardware manual

RKC INSTRUMENT
RKC INSTRUMENT FB400 Series Communication quick manual