Pololu Simple User Manual

Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
Pololu Simple Motor Controller
User's Guide
http://www.pololu.com/docs/0J44/all Page 1 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. 18v7 Included Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2. 18v15 and 24v12 Included Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3. 18v25 and 24v23 Included Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Supported Operating Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2. Contacting Pololu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3. Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1. Installing Windows Drivers and Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Installing Linux Drivers and Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3. Understanding the Control Center Status Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4. Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5. LED Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4. Connecting Your Motor Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1. Connecting Power and a Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2. Connecting a Serial Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3. Connecting an RC Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4. Connecting a Potentiometer or Analog Joystick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5. Configuring Your Motor Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.1. Input Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.1.1. Configuring a Limit or Kill Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.2. Motor Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3. Advanced Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.4. Upgrading Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6. Using the Serial Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.1. Serial Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.2. Binary Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.2.1. Binary Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.3. ASCII Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.3.1. ASCII Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.4. Controller Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.5. Cyclic Redundancy Check (CRC) Error Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.6. Daisy Chaining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.7. Sample Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.7.1. Arduino Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.7.2. Orangutan Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.7.3. Cross-platform C Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.7.4. Windows C Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.7.5. Bash Script Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.7.6. CRC Computation in C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7. Writing PC Software to Control the Simple Motor Controller . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Page 2 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

1. Overview

The Pololu Simple Motor Controllers are versatile, general-purpose motor controllers for brushed, DC motors. A wide operating range of up to 5.5–40V and the ability to deliver up to several hundred Watts in a small form factor make these controllers suitable for many motor control applications. With a variety of supported interfaces—USB for direct connection to a computer, TTL serial for use with embedded systems, RC hobby servo pulses for use as an RC-controlled electronic speed control (ESC), and analog voltages for use with a potentiometer or analog joystick—and a wide array of configurable settings, these motor controllers make it easy to add basic control of brushed DC motors to a variety of projects. Although this motor controller has many more features than competing products, a free configuration utility (for Windows 8, 7, Vista, Windows XP, and Linux) simplifies initial setup of the device and allows for in-system testing and monitoring of the controller via USB.
For 24 V applications, we recommend the 24v12 or 24v23 versions. We strongly recommend against using the 18v7, 18v15, or 18v25 with 24 V batteries, which can significantly exceed 24 V when fully charged and are dangerously close to the maximum voltage limits of these lower-voltage controllers. Using a 24 V battery with an 18vX Simple Motor Controller makes the device much more susceptible to damage from power supply noise or LC voltage spikes.

Key Features

• Simple bidirectional control of one DC brush motor.
• 5.5 V to 30 V (18v7, 18v15, and 18v25) or 40 V (24v12 and 24v23) operating supply range.
• 7 A to 25 A maximum continuous current output without a heat sink, depending on controller model
• Four communication or control options:
1. USB interface for direct connection to a PC.
2. Logic-level (TTL) serial interface for direct connection to microcontrollers or other embedded controllers.
3. Hobby radio control (RC) pulse width interface for direct connection to an RC receiver or RC servo
controller [http://www.pololu.com/category/12/rc-servo-controllers].
4. 0–3.3 V analog voltage interface for direct connection to potentiometers and analog joysticks.
• Simple configuration and calibration over USB with free configuration program (Windows 8, 7, Vista, Windows XP, and Linux compatible).
Simple High-Power Motor Controller 18v25 or 24v23 simplified
connection diagram.
1. Overview Page 3 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
Note: A USB A to mini-B cable [http://www.pololu.com/product/130] (not included) is required to connect this controller to a computer.

Additional Features

• Adjustable maximum acceleration and deceleration to limit electrical and mechanical stress on the system.
• Adjustable starting speed, maximum speed, and amount of braking when speed is zero.
• Optional safety controls to avoid unexpectedly powering the motor.
• Input calibration (learning) and adjustable scaling degree for analog and RC signals.
• Under-voltage shutoff with hysteresis for use with batteries vulnerable to over-discharging (e.g. LiPo cells).
• Adjustable over-temperature threshold and response.
• Adjustable PWM frequency from 1 kHz to 22 kHz (maximum frequency is ultrasonic, eliminating switching­induced audible motor shaft vibration).
• Error LED linked to a digital ERR output, and connecting the error outputs of multiple controllers together optionally causes all connected controllers to shut down when any one of them experiences an error.
• Field-upgradeable firmware.
USB/Serial features: ◦ Controllable from a computer with native USB, via serial commands sent to the device’s virtual serial (COM) port, or via TTL serial through the device’s RX/TX pins.
◦ Example code in C#, Visual Basic .NET, and Visual C++ is available in the Pololu USB Software
Development Kit [http://www.pololu.com/docs/0J41]
◦ Optional CRC error detection to eliminate communication errors caused by noise or software faults.
◦ Optional command timeout (shut off motors if communication ceases).
◦ Supports automatic baud rate detection from 1200 bps to 500 kbps, or can be configured to run at a fixed baud rate.
◦ Supports standard compact and Pololu protocols as well as the Scott Edwards Mini SSC protocol and an ASCII protocol for simple serial control from a terminal program.
◦ Optional serial response delay for communicating with half-duplex controllers such as the Basic Stamp.
◦ Controllers can be easily chained together and to other Pololu serial motor and servo controllers to control hundreds of motors using a single serial line.
1. Overview Page 4 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
RC features: ◦ 1/4 µs pulse measurement resolution.
◦ Works with RC pulse frequencies from 10 to 333 Hz.
◦ Configurable parameters for determining what constitutes an acceptable RC signal.
◦ Two RC channels allow for single-stick (mixed) motor control, making it easy to use two simple motor controllers in tandem on an RC-controlled differential-drive robot.
◦ RC channels can be used in any mode as limit or kill switches (e.g. use an RC receiver to trigger a kill switch on your autonomous robot).
◦ Battery elimination circuit (BEC) jumper can power the RC receiver with 5 V or 3.3 V.
Two Pololu Simple Motor Controllers
enable mixed RC-control of Dagu Wild
Thumper 4WD all-terrain chassis.
Analog features: ◦ 0.8 mV (12-bit) measurement resolution.
◦ Works with 0 to 3.3 V inputs.
◦ Optional potentiometer/joystick disconnect detection.
◦ Two analog channels allow for single-stick (mixed) motor control, making it easy to use two simple motor controllers in tandem on a joystick-controlled differential-drive robot.
◦ Analog channels can be used in any mode as limit or kill switches.

Simple Motor Controller Comparison Table

The Simple Motor Controllers are available in several input voltage ranges and output current ranges:
18v7 18v15 24v12 18v25 24v23
Absolute max voltage:
Recommended max voltage
Max continuous current w/o heat sink:
Width: 1.1" (2.8 cm) 1.1" (2.8 cm) 1.1" (2.8 cm) 1.2" (3.1 cm) 1.2" (3.1 cm)
Length: 2.1" (5.3 cm) 2.1" (5.3 cm) 2.1" (5.3 cm) 2.3" (5.8 cm) 2.3" (5.8 cm)
Weight
Available with connectors installed?
1
We do not recommend using the 18v7, 18v15, or 18v25 versions with 24 V batteries, which can significantly exceed 24 V when fully charged. The 24v12 and 24v23 are the much more appropriate controller for 24 V applications.
(1)
:
(2)
: 7 g 7 g 7 g 12 g 12 g
30 V 30 V 40 V 30 V 40 V
24 V 24 V 34 V 24 V 34 V
7 A 15 A 12 A 25 A 23 A
Yes Yes Yes No No
1. Overview Page 5 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
2
This is the weight of the board without header pins, terminal blocks, or through-hole power capacitor.
Warning: Take proper safety precautions when using high-power electronics. Make sure you know what you are doing when using high voltages or currents! During normal operation, this product can get hot enough to burn you. Take care when handling this product or other components connected to it.

1.1. 18v7 Included Hardware

Simple Motor Controller 18v7, partial
kit with included hardware.
Simple Motor Controller 18v7, fully
assembled.
The lowest-power controller version (18v7) is available with the power capacitor and connectors included but not soldered in (as shown in the left picture above) or with the power capacitor and connectors pre-installed (as shown in the right picture above).
The power capacitor has a significant effect on performance; the included capacitor is the minimum size recommended, and bigger ones can be added if there is space. A bigger capacitor might be required if the power supply is poor or far (more than about a foot) from the controller.
Simple Motor Controller 18v7 bottom view with dimensions.
1. Overview Page 6 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

1.2. 18v15 and 24v12 Included Hardware

Simple High-Power Motor
Controller 18v15 or 24v12,
partial kit with included
hardware.
Simple High-Power Motor
Controller 18v15 or 24v12,
fully assembled.
Simple High-Power Motor
Controller 18v15 or 24v12,
partial kit with custom
power and motor connectors
(NOT included).
The medium-power controller versions (18v15 and 24v12) are available with the power capacitor and connectors included but not soldered in (as shown in the left picture above) or with the power capacitor and connectors pre­installed (as shown in the middle picture above).
The terminal blocks are only rated for 15 A. For higher-current applications we recommend soldering thick wires directly to the connector-free version of the board and using higher-current connectors [http://www.pololu.com/product/
925] (as shown in the right picture above). Another benefit of the connector-free version is flexibility in placement of
the power capacitor (e.g. on the other side of the board) to accommodate compact installations or to make room for a heat sink.
The power capacitor has a significant effect on performance; the included capacitor is the minimum size recommended, and bigger ones can be added if there is space. A bigger capacitor might be required if the power supply is poor or far (more than about a foot) from the controller.
Simple High-Power Motor Controller 18v15 or 24v12 bottom view with
dimensions.
1. Overview Page 7 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

1.3. 18v25 and 24v23 Included Hardware

Simple High-Power Motor
Controller 18v25 or 24v23
with custom power and motor connectors (NOT
included).
Simple High-Power Motor
Controller 18v25 or 24v23
with included hardware.
Simple High-Power Motor
Controller 18v25 or 24v23
with included hardware
installed.
The highest-power controller versions (18v25 and 24v23) are sold without the power capacitor and connectors installed (no fully assembled version is available). They ship with a 40×1 straight 0.1" male header strip
[http://www.pololu.com/product/965], a 5mm-pitch, 4-pin terminal block [http://www.pololu.com/product/2440], and a power
capacitor as shown in the left picture above. For applications under 15 A, these pieces can be soldered to the board as shown in the middle picture above; higher current applications should use thick wires soldered directly to the board or higher-current connectors [http://www.pololu.com/product/925], such as those shown in the right picture above.
Simple High-Power Motor Controller 18v25 or 24v23 bottom view with
dimensions.

1.4. Supported Operating Systems

The Simple Motor Controller USB drivers and configuration software work under Microsoft Windows XP, Windows Vista, Windows 7, Windows 8, and Linux.
We do not provide any software for Mac OS X, but the controller’s USB virtual COM port is compatible with Mac OS X 10.7 (Lion) and later. As a result, the Simple Motor Controller can be controlled from a Mac, but a Windows or Linux computer is required if you need to change any of the configuration parameters.
1. Overview Page 8 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
Mac OS X compatibility: we have confirmed that the Simple Motor Controller works on Mac OS X
10.7 and we can assist with advanced technical issues, but most of our tech support staff does not use Macs, so basic support for Mac OS X is limited.
1. Overview Page 9 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

2. Contacting Pololu

You can check the Pololu Simple Motor Controller pages
[http://www.pololu.com/category/94/pololu-simple-motor-controllers] for additional
information. The “Resources” tab on each product page contains links to this users guide as well as other valuable resources, such as drivers and the Simple Motor Control Center software.
We would be delighted to hear from you about any of your projects and about your experience with the Simple Motor Controller. You can contact us
[http://www.pololu.com/contact] directly or post on our forum [http://forum.pololu.com/]. Tell us what we did well, what we could improve,
what you would like to see in the future, or anything else you would like to say!
2. Contacting Pololu Page 10 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

3. Getting Started

3.1. Installing Windows Drivers and Software

If you are using Windows XP, you will need to have Service Pack 3 [http://www.microsoft.com/downloads/
details.aspx?FamilyId=68C48DAD-BC34-40BE-8D85-6BB4F56F5110] installed before installing the drivers for the
Simple Motor Controller. See below for details.
Before you connect a Simple Motor Controller to a computer running Microsoft Windows, you should install the drivers:
1. Download the Simple Motor Controller Windows Drivers and Software [http://www.pololu.com/file/download/
smc-windows-121204.zip?file_id=0J408] (5MB zip)
2. Open the ZIP archive and run setup.exe. The installer will guide you through the steps required to install the Simple Motor Control Center, the Simple Motor Controller command-line utility (SmcCmd), and the Simple Motor Controller drivers on your computer. If the installer fails, you may have to extract all the files to a temporary directory, right click setup.exe, and select “Run as administrator”.
3. During the installation, Windows will ask you if you want to install the drivers. Click “Install” (Windows 7, 8, and Vista) or “Continue Anyway” (Windows XP).
4. After the installation is finished, your start menu should have a shortcut to the Simple Motor Control Center (in the Pololu folder). This is a Windows application that allows you to configure, control, and get real-time feedback from the Simple Motor Controller. There will also be a command-line utility called SmcCmd which you can run at a Command Prompt.
Windows 8, Windows 7, and Windows Vista users: Your computer should now automatically install the necessary drivers when you connect a Simple Motor Controller. No further action from you is required.
Windows XP users: Follow steps 5–9 for each new Simple Motor Controller you connect to your computer.
5. Connect the device to your computer’s USB port. The Simple Motor Controller shows up as two devices
in one so your XP computer will detect both of those new devices and display the “Found New Hardware Wizard” two times. Each time the “Found New Hardware Wizard” pops up, follow steps 6-9.
6. When the “Found New Hardware Wizard” is displayed, select “No, not this time” and click “Next”.
3. Getting Started Page 11 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
7. On the second screen of the “Found New Hardware Wizard”, select “Install the software automatically” and click “Next”.
3. Getting Started Page 12 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
8. Windows XP will warn you again that the driver has not been tested by Microsoft and recommend that you stop the installation. Click “Continue Anyway”.
9. When you have finished the “Found New Hardware Wizard”, click “Finish”. After that, another wizard will pop up. You will see a total of two wizards when plugging in a Simple Motor Controller. Follow steps 6–9 for each wizard.
3. Getting Started Page 13 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
If you use Windows XP and experience problems installing or using the serial port drivers, the cause of your problems might be a bug in older versions of Microsoft’s usb-to-serial driver usbser.sys. Versions of this driver prior to version 5.1.2600.2930 will not work with the Simple Motor Controller. You can check what version of this driver you have by looking in the “Details” tab of the “Properties” window for usbser.sys in C:\Windows\System32\drivers. To get the fixed version of the driver, you will need to install Service Pack 3 [http://www.microsoft.com/downloads/details.aspx?FamilyId=68C48DAD-
BC34-40BE-8D85-6BB4F56F5110]. If you do not want Service Pack 3, you can try installing Hotfix
KB918365 instead, but some users have had problems with the hotfix that were resolved by upgrading to Service Pack 3. The Simple Motor Control Center and SmcCmd will work even if the serial port drivers are not installed properly.
After installing the drivers, if you go to your computer’s Device Manager and expand the “Ports (COM & LPT)” list, you should see the Command Port for the Simple Motor Controller. In parentheses, you will see the name of the port (e.g. “COM5” or “COM6”). If you expand the “Pololu USB Devices” list you should see another entry for the Simple Motor Controller.
3. Getting Started Page 14 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
Windows Vista or Windows 7 device manager showing a Simple Motor Controller.
Windows XP device manager showing a Simple Motor Controller.
Some software will not allow connection to higher COM port numbers. If you need to change the COM port number assigned to your USB device, you can do so using the Device Manager. Bring up the properties dialog for the COM port and click the “Advanced…” button in the “Port Settings” tab. From this dialog you can change the COM port assigned to your device.
3. Getting Started Page 15 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

3.2. Installing Linux Drivers and Software

You can download the Pololu Simple Motor Control Center (SmcCenter) and the command-line utility (SmcCmd) for Linux here: Simple Motor Controller
Linux Software [http://www.pololu.com/file/download/smc-
linux-101119.tar.gz?file_id=0J411] (115k gz).
Unzip the tar/gzip archive by running “tar -xzvf” followed by the name of the file. After following the instructions in
README.txt, you can run the programs by executing SmcCenter and SmcCmd.
The Simple Motor Controller’s virtual serial port can be used in Linux without any special driver installation. The virtual serial port is managed by the cdc-acm kernel module, whose source code you can find in your kernel’s source code drivers/usb/class/cdc-acm.c. When you connect the Simple Motor Controller to the PC, the virtual serial port should appear as a device with a name like
/dev/ttyACM0 (the number depends on how many other
ACM devices you have plugged in). You can use any terminal program (such as kermit) to send commands and receive responses on those ports.
The Pololu Simple Motor Control Center running
under Linux.

3.3. Understanding the Control Center Status Tab

After installing the software and drivers for the Simple Motor Controller, it is a good idea to run the Pololu Simple Motor Control Center and look at the Status tab. The Status tab lets you monitor the status of your motor controller in real time and control the speed of the motor. The Status tab also shows what errors and limits are affecting your motor controller so it can help you quickly troubleshoot any issues you are having.
To use the Status tab, you should connect your Simple Motor Controller to your PC using a USB cable (not included) and run the Pololu Simple Motor Control Center. This is what the Status tab should look like initially, before you have modified any settings or connected anything to the Simple Motor Controller (besides USB):
3. Getting Started Page 16 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
The Status tab in the Simple Motor Control Center should look like this when you first connect
the controller to the PC.

Target Speed and Current Speed

The Target Speed is the speed that the motor controller is trying to achieve. The Target Speed source is determined by the settings in the Input Settings tab, and can come from serial/USB commands, analog voltages, or RC signals.
The Current Speed is the speed at which the controller is currently your driving your motor. There are several reasons why the Current Speed might be different from the Target Speed: errors, acceleration limits, deceleration limits, brake duration, maximum speed limits, starting speed limits, and gradual temperature-based speed limiting. If any of these things are affecting the Current Speed, the appropriate part of the Status tab will be highlighted to let you know. Anything that is stopping the motor completely will be highlighted in red. Anything that is limiting the speed of the motor will be highlighted in yellow.
The Simple Motor Controller represents speeds internally as a number from -3200 (full reverse) to 3200 (full forward). However, by default the speeds in the Status Tab are displayed as percentages so -3200 (full reverse) is shown as -100.00% and 3200 (full forward) is shown as 100.00%.
Below the Target Speed label is a two-dimensional diagram that represents the values of the inputs that are used to set the Target Speed. This diagram is especially useful in RC or Analog mode with Mixing enabled because it graphically shows you the value of both input channels and makes it easier to tell how well the Simple Motor Controller is calibrated for your controller is.
3. Getting Started Page 17 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

Motor Limits

The Motor Limits box in the Status tab shows the current limits on the movement of the motor. These limits will be equal to the hard motor limits specified in the Motor Settings tab, unless you have temporarily changed the motor limits using the command-line utility (SmcCmd) or a serial command. For more information on these limits, see the section that documents the Motor Settings tab.

Input Channels

The Input Channels box in the Status tab shows the current status of the RC or Analog input channels of the device.
The Raw Value is the raw, unscaled value of the input channel. For RC channels, the Raw Value is the width of pulses received on the input line (RC1 or RC2). It is typically between 1000 μs and 2000 μs, and it is stored internally as an integer in units of quarter-microseconds (6000 corresponds to 1500 μs). For Analog channels, the Raw Value is the average voltage measured on the input line (A1 or A2). It is always between 0 mV and 3300 mV, and it is stored internally as a 12-bit integer (0 corresponds to 0 mV while 4095 corresponds to 3300 mV).
The Scaled Value is a number between -3200 and 3200 that is determined entirely by the Raw Value and the scaling parameters in the Input Settings tab. If the scaling parameters are set up correctly, then the Scaled Value should be 0 when the input is in its neutral position (if it has a neutral position), and they should be ±100 % (±3200 internally) when the input is moved to either extreme.
The Status column summarizes the state of each channel. Here are the different things you might see in the Status column:
Valid: There is an RC or Analog input connected to this channel and it is working.
Invalid (disconnected): This message is shown for Analog channels when the controller detects that they are disconnected. If you do not intend to use this channel, you do not need to worry about this message. Otherwise, to correct this situation, make sure that all three pins of your potentiometer or analog joystick are connected correctly to the three analog interface pins (see Section 4.4). The controller toggles the power supply on the Analog + pins in order to detect when your potentiometer is disconnected. This feature can be turned off in the Advanced tab, in which case you will not see the “Invalid (disconnected)” message.
Invalid signal: This message is shown for RC channels when the controller detects no signal or a bad signal on the RC input. If you do not intend to use this channel, you do not need to worry about this message. Otherwise, to correct this situation, make sure that your RC receiver is powered and connected correctly (see Section 4.3), and check your RC pulse detection settings in the Advanced tab.
Invalid (too high) and Invalid (too low): These messages are shown for Analog channels when the voltage read on the A1 or A2 pin is outside of the normal range, as specified by the Error min and Error max parameters for that channel in the Input Settings tab. To correct this error, you can re-configure the range of your analog input by clicking the “Learn…” button for that channel, or you can manually adjust the scaling parameters.
Invalid (high signal) and Invalid (low signal): These messages are shown for RC channels when the pulse width measured on the RC1 or RC2 pin is outside of the normal range as specified by the Error min and Error max parameters for that channel in the Input Settings tab. To correct this error, you can re-configure the range of your RC input by clicking the “Learn…” button for that channel, or you can manually adjust the scaling parameters.

Conditions

The Conditions box in the Status tab shows miscellaneous information about the current state of the controller:
VIN: This is the voltage of your power supply, measured on the VIN line. When your power supply is disconnected, this should read 0.0 V. This reading is continually compared to the VIN thresholds in the
3. Getting Started Page 18 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
Advanced Settings tab and will generate an error and shut down the motor if it passes these thresholds. This allows a properly configured controller to avoid over-discharging your batteries.
Temperature: This is a measurement of the temperature of the device. This reading is used prevent damage to the device by shutting down the motor when the board gets too hot (the over-temperature threshold is can be adjusted in the Advanced Settings tab). Please note that this product can get hot enough to burn you during normal operation. Take care when handling this product or other components connected to it. Parts of the board be significantly hotter than this reading, so you should not rely on this temperature reading when deciding whether it is safe to touch the board.
Up Time: This is the total amount of time that the controller has been running since its last reset or power-up. The Up Time reading can be used to help identify if the controller has reset unexpectedly. You can determine the cause of a reset by looking at the pattern of the yellow LED (see Section 3.5), or you can look in the Device Information window, available from the Device menu. The Up Time reading will overflow back to zero after
49.7 days.
Baud Rate: This is the current baud rate that the device is using on the TTL serial interface (RX and TX lines) in units of bits per second (bps). By default, the device is in Auto-detect baud rate mode, so this value will be “N/A” until the baud rate is detected. After a 0xAA byte is received on the RX line, the device will detect the baud rate and you can see it here. Please note that the Baud Rate display in the Status tab has nothing to do with the USB virtual COM port (it doesn’t matter what baud rate you use when connecting to the virtual COM port).
RC Period: This is the period of the RC signal on the RC1 input channel. You can use this reading to help you make the RC period settings in the Advanced Settings tab more strict so that the controller can better identify bad RC signals. If the signal on RC1 is invalid, this reading is reported as “N/A”.

Manually set speed (Serial/USB mode only)

The Manually Set Speed box in Status tab allows you to control the speed of your motor over USB by using a scrollbar or by typing in a speed. To use this feature, the Input Mode (configured in the Input Settings tab) must be USB/Serial, and there must be no errors currently stopping the motor. You will need to press the Resume button if you have not disabled Safe Start or if you previously pressed the Stop Motor button.
3. Getting Started Page 19 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

3.4. Errors

The Simple Motor Controller has several features that stop the motor when something is going wrong. These are called errors, and they can help protect your project from damaging itself. Whenever you are having an issue with the controller, you should first check to see what (if any) errors are occurring. You can get information about the errors by:
• Checking the Errors box in the Status tab of the Simple Motor Control Center. This is recommended because it gives you the most information, including a running count of how many times the error has been reported.
• Running the command-line utility (just type
SmcCmd -s at the command line).
• Looking at the red LED on the device. It will be lit if there are any errors stopping your motor.
• Writing PC software or using a microcontroller to send the Get Errors serial command.
• Using a microcontroller to measure the voltage on ERR pin. This pin is linked to the red LED so it should go high (3.3 V) when there is an error stopping your motor and low (0 V) otherwise.
The Errors box in the Status tab of the Pololu Simple
Motor Control Center reveals problems that are stopping
your motor.
All the errors are explained below:
Safe start violation: Safe Start is a feature that helps prevent the motor from starting up unexpectedly. This feature is enabled by default, but can be disabled in the Advanced Settings tab. The behavior of Safe Start depends on what Input Mode you are using.
In Serial/USB input mode, the Safe start violation error occurs whenever any other error is stopping the motor. After all the other errors have been fixed, you can clear the Safe start violation error by pressing the Resume button (which issues a native USB command) or using a serial command.
In Analog or RC input mode, the Safe start violation error occurs whenever the motor is stopped because of an error AND the inputs that control the speed of the motor are not near their neutral positions. This helps prevent the situation where there might be an error stopping your motor (such as a disconnected battery), and the motor starts running at a high speed when you fix the error. To clear the Safe start violation error, move all the inputs that control the speed of the motor to their neutral positions (the sum of the absolute values of their scaled values must be less than 8 %).
Required channel invalid: This error occurs whenever any required RC or Analog channel is invalid. This error helps ensure that your motor will stop if you accidentally disconnect your joystick, potentiometer or RC receiver. A channel is invalid if it is disconnected, or has a value that is out of range. A channel is required if it controls the speed of the motor or it is configured as a limit switch or kill switch. By default, there are no required channels because the input mode is serial and no limit or kill switches have been configured. You can check the
3. Getting Started Page 20 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
Input Settings tab to see which channels are required. Channels that are required and invalid are highlighted in red in the Input Channels box of the Status tab so you can quickly see which channel is causing this error.
Command timeout: This error occurs if you are controlling your motor using a microcontroller or a PC (Input Mode is Serial/USB) and the (configurable) time period has elapsed with no valid serial or USB commands being received by the controller. The purpose of this error is to ensure that your motor will stop if the software talking to the controller crashes or if the communications link is broken. All valid serial commands clear this error. The native USB commands for setting the speed and exiting safe start also clear this error. By default, this error is disabled, but it can be enabled from the Advanced Settings tab by setting a non-zero Command Timeout value.
Limit/kill switch: This error occurs when a limit or kill switch channel stops the motor. More specifically, it occurs in three cases: when a kill switch is active, when a Forward Limit switch is active AND the Target Speed is positive, or when a Reverse Limit switch is active AND the Target Speed is negative. A limit/kill switch is considered active if its scaled value is above 50 %. If you are using a limit switch and your input mode is Serial/ USB, you will need to check the Count column in the Status tab to see this error because in Serial/USB mode the Target Speed gets set to 0 whenever there is an error.
Low VIN: This error occurs whenever your power supply’s voltage is too low or it is disconnected. If you set the correct thresholds in the Advanced Settings tab, this error will prevent you from over-discharging your battery.
High VIN: This error occurs whenever your power supply’s voltage is too high. You can set the threshold voltage in the Advanced Settings tab.
Motor driver error: This error occurs whenever the motor driver chip reports an under-voltage or over­temperature error (by driving its fault line low).
Over temperature: This error occurs whenever the reading from the temperature sensor is too high. You can see the temperature reading in the Conditions box of the Status tab. The behavior of this error and the threshold temperatures can be configured in the Advanced tab.
ERR line high: This error occurs whenever there are no other errors but the voltage on the ERR line is high (2.3–5 V). This error allows you to connect the error lines of two Simple Motor Controllers together and have both of them stop when either one experiences an error. This error can be disabled in the Advanced Settings tab.
Serial errors: Serial errors are recorded whenever something goes wrong with the serial communication, either on the RX/TX lines or on the USB virtual COM port. If the input mode is Serial/USB, then a serial error will stop the motor from running until a valid serial command is received, or the Resume button is pressed, or the native USB Set Speed or Exit Safe Start commands are sent. If you are using serial and have not disabled Safe Start mode, you will need to send the Exit Safe-Start command, followed by a Set Speed command to recover from an error and get the motor running again. If you are using serial and have disabled Safe Start, the motor will start driving as soon when a valid Set Speed command is received. These are the types of serial errors that are recorded:
Frame: This is error occurs when a de-synchronization or excessive noise on the RX line is detected.
Noise: This error occurs when noise is detected on the RX line.
RX overrun: This error occurs when the buffer for storing bytes received on the RX line is full and data was lost as a result. This should not occur during normal operation.
Format: This error occurs if the serial bytes received on RX or the virtual COM port do not obey the protocol specified in this guide. If you get this error, check the bytes you are sending carefully, and compare them to the examples provided.
CRC: This error occurs if you have enabled cyclic redundancy check (CRC) for serial commands, but the CRC byte received was invalid. CRC helps prevent the motor controller from accidentally performing unwanted actions when it is receiving commands over a noisy serial link. If you get this error, check your algorithm for calculating CRCs and check the quality of your serial signal at the RX pin.
3. Getting Started Page 21 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

3.5. LED Feedback

The Simple Motor Controllers have three indicator LEDs that provide feedback about the current state of the controller. The LEDs can tell you whether an error is occurring, whether the USB connection is active, what direction the motor is driving, and much more.
Simple Motor Controller 18v7 LEDs.
Simple High-Power Motor Controller 18v15 or 24v12
Simple High-Power Motor Controller 18v25 or 24v23
LEDs.
LEDs.
The Simple Motor Controllers have three indicator LEDs:
3. Getting Started Page 22 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

Green USB LED

This LED indicates the USB status of the device. When the Simple Motor Controller is not connected to a computer via the USB cable, the green LED will always be off. When you connect the controller to USB, the green LED starts blinking slowly. The blinking continues until the controller receives a particular message from the computer indicating that the Simple Motor Controller’s USB drivers are installed correctly (see Section 3.1 for driver installation instructions). After the controller gets this message, the green LED turns solidly on, except for brief flickers whenever there is USB activity. The Simple Motor Control Center software constantly streams data from the controller, so when the control center is running and connected to the Simple Motor Controller, the green LED will flicker constantly.

Red Error LED

This LED turns on whenever there is an error stopping the motor (see Section 3.4 for information on errors that can stop the motor). The red LED is tied directly to the active-high output ERR, which allows the error status to be monitored by an external device such as a microcontroller. When no errors are stopping the motor, the error LED is off and the ERR pin is pulled low. See Section 4.2 for more information about the ERR pin and the error LED.

Yellow Status LED

This LED helps you visually identify the state of the device, which can be useful when the controller is not connected to the Control Center. On start-up, the status LED briefly flashes a pattern indicating the source of the last reset (see the Reset Flags variable in Section 6.4 for more information):
• 8 blinks over the first two seconds after start-up indicates that the external RST pin was driven low to reset the controller.
• 3 blinks over the first two seconds after start-up indicates that the controller last reset because logic power got too low (power was disconnected or the controller browned out).
• Rapid flickering for the first two seconds after start-up indicates that the controller was reset by a software fault or by a firmware upgrade.
This startup behavior can help you detect if your Simple Motor Controller is browning out and resetting unexpectedly (as can happen if your input voltage drops due to high power demands or electrical noise).
After the start-up phase ends, the status LED primarily gives feedback about the motor driver outputs:
• An even blinking pattern of on for 2/3 s and off for 2/3 s indicates that the controller is not driving the motor and has not yet detected the baud rate. This pattern only occurs when the controller is in USB/serial mode with automatic baud detection enabled and helps you determine when you have established communication between a TTL serial source and the Simple Motor Controller.
• A brief flash once per second indicates that the controller is not driving the motor. If the controller is in Serial/ USB mode with automatic baud detection enabled, this pattern additionally indicates that the Simple Motor Controller has successfully learned the TTL serial baud rate.
• A repeating, gradual increase in brightness every second indicates that the controller is driving the motor forward.
• A repeating, gradual decrease in brightness every second indicates that the controller is driving the motor in reverse.
3. Getting Started Page 23 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

4. Connecting Your Motor Controller

This chapter explains all the electrical connections you might need to make to get your motor controller working the way you want it to.
The diagrams below label the key components and pins on the Simple Motor Controllers. Most of these pins are also labeled on the bottom side of the board.
Simple Motor Controller 18v7 Pin-Out
Simple High-Power Motor Controller 18v15 and 24v12 Pin-Out
4. Connecting Your Motor Controller Page 24 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
Simple High-Power Motor Controller 18v25 and 24v23 Pin-Out
4. Connecting Your Motor Controller Page 25 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

4.1. Connecting Power and a Motor

Warning: Take proper safety precautions when using high-power electronics. Make sure you know what
you are doing when using high voltages or currents! During normal operation, this product can get hot enough to burn you. Take care when handling this product or other components connected to it.
The first step in using your Simple Motor Controller is connecting power and a motor. With those connections in place, you can immediately start testing with the Simple Motor Control Center. The following section explains the power system in detail.
4. Connecting Your Motor Controller Page 26 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation
Simple Motor Controller 18v7 power and motor connections.
Simple High-Power Motor Controller 18v15 or 24v12 power and motor
Simple High-Power Motor Controller 18v25 or 24v23 power and motor
connections.
connections.
4. Connecting Your Motor Controller Page 27 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

Power Considerations

The Pololu Simple Motor Controllers can be powered either from USB using a USB A to mini-B cable
[http://www.pololu.com/product/130] or from a power supply, such as a battery pack, connected to the large VIN and GND
pads. When the VIN supply is not present, the controller can use USB power to perform all of its functions except for driving the motor. The controller automatically selects VIN as the power source when it is present, even when USB is connected. It is OK to have both USB and VIN power simultaneously connected.
Power for the motor must be supplied to the controller through the large VIN and GND pads. The smaller VIN and GND pads on the left side of the board in the diagrams above are not suitable for high currents and should not be used to power the motor controller. These smaller power pins provide a convenient way to pass the input voltage on to other parts in your system, but they should not be used to power anything that will draw more than 500 mA.
All Simple Motor Controller versions can operate from VIN supplies as low as 5.5 V, but the maximum continuous output current will be lower for voltages under 7 V. The maximum power ratings for the Simple Motor Controllers are shown below:
Simple Motor Controller 18v7 18v15 24v12 18v25 24v23
Absolute max voltage 30 V 30 V 40 V 30 V 40 V
Recommended max voltage 24 V 24 V 34 V 24 V 34 V
Max continuous current w/o heat sink 7 A 15 A 12 A 25 A 23 A
It is very important that you select a power source that does not exceed the absolute maximum voltage rating for your Simple Motor Controller. Ripple voltage on the supply line can raise the maximum voltage to more than the average or intended voltage, so we recommend you to select a voltage that leaves at least a 6 V margin for noise. It is also important to note that batteries can be much higher than their nominal voltage when fully charged, so we do not recommend using the 18v7, 18v15, or 18v25 versions with 24 V batteries unless appropriate measures are taken to limit the peak voltage.
For 24 V applications, we recommend the 24v12 or 24v23 versions. We strongly recommend against using the 18v7, 18v15, or 18v25 with 24 V batteries, which can significantly exceed 24 V when fully charged and are dangerously close to the maximum voltage limits of these lower-voltage controllers. Using a 24 V battery with an 18vX Simple Motor Controller makes the device much more susceptible to damage from power supply noise or LC voltage spikes.
Finally, make sure you select a power source that is capable of delivering the current your motor will require (e.g. alkaline cells are typically poor choices for high-current applications), and place a large capacitor across power and ground near the motor controller to limit electrical noise (such a capacitor is pre-installed on fully-assembled 18v7, 18v15, and 24v12 controller versions).
The Simple Motor Controllers feature a configurable low-voltage shutoff that can help you avoid damaging batteries that are sensitive to over-discharging, such as Li-Po packs. See Section 5 for more information.
4. Connecting Your Motor Controller Page 28 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

Motor Considerations

The two terminals of your brushed, DC motor connect to the OUTA and OUTB pins. When selecting a motor for your controller (or a controller version for your motor), it is important to consider how the motor will be used in your system. If the motor is likely to be stalled for prolonged periods of time or under heavy load, or if the motor will be rapidly changing direction without acceleration limiting enabled, you should be taking into account the stall current of the motor at the voltage it will be running and selecting a controller that can deliver a continuous current that exceeds the stall current.
It is not unusual for the stall current of a motor to be an order of magnitude (10×) higher than its free­run current. When a motor is supplied with full power from rest, it briefly draws the full stall current, and it draws nearly twice the stall current if abruptly switched from full speed in one direction to full speed in the other direction.
Occasionally, electrical noise from a motor can interfere with the rest of the system. This can depend on a number of factors, including the power supply, system wiring, and the quality of the motor. If you notice parts of your system behaving strangely when the motor is active (e.g. corrupted serial data, bad RC pulses, noisy analog voltage readings, or the motor controller randomly resetting), consider taking the following steps to decrease the impact of motor­induced electrical noise on the rest of your system:
1. Solder a 0.1 µF ceramic capacitor [http://www.pololu.com/product/1166] across the terminals of your motor, or solder one capacitor from each terminal to the motor case. For the greatest noise suppression, you can use three capacitors (one across the terminals and one from each terminal to the case).
2. Make your motor leads as thick and as short as possible, and twist them around each other. It is also beneficial to do this with your power supply leads.
3. Route your motor and power leads away from your logic connections if possible.
4. Place decoupling capacitors (also known as “bypass capacitors”) across power and ground near any electronics you want to isolate from noise.
4. Connecting Your Motor Controller Page 29 of 101
Pololu Simple Motor Controller User's Guide © 2001–2014 Pololu Corporation

Power and Motor Connectors

Simple High-Power Motor
Controller 18v25 or 24v23
with included hardware
installed.
Simple Motor Controller
18v7, fully assembled.
Simple High-Power Motor
Controller 18v15 or 24v12,
fully assembled.
The fully-assembled 18v7, 18v15, and 24v12 Simple Motor Controller versions ship with terminal blocks soldered into the large VIN, OUTA, OUTB, and GND pads and a power capacitor pre-installed, as shown in the pictures above. These terminal blocks make it easy to connect and disconnect power supplies, but they are only rated for 15 A.
Simple High-Power Motor Controller
18v15 or 24v12, partial kit with
included hardware.
Simple High-Power Motor Controller
18v25 or 24v23 with included
hardware.
Simple High-Power Motor Controller
18v15 or 24v12, partial kit with custom
power and motor connectors (NOT
included).
Simple High-Power Motor Controller
18v25 or 24v23 with custom power and
motor connectors (NOT included).
All other versions ship with terminal blocks and a power capacitor included but not installed, which provides flexibility in making connections. These versions offer two options for connecting to the high-power signals (VIN, OUTA, OUTB, GND): large holes on 0.2" centers, which are compatible with the included terminal blocks
4. Connecting Your Motor Controller Page 30 of 101
Loading...
+ 71 hidden pages