RoboClaw 2x5A Motor Controller

Data Sheet

RoboClaw 2x5A Motor Controller Data Sheet

(c) 2013 Orion Robotics. All Rights Reserved.

RoboClaw 2x5A Motor Controller
Feature Overview:
M1A M1B

Data Sheet

C28

C22 C9 C7 U9 C21 C32 C23 C20 C19 U8

RoboClaw 2x5A

STAT1 STAT2 ERR MODE SET LIPO C11

CN5

+ -

LB-MB

LB IN

+ + -

Basic Description The RoboClaw 2X5 Amp is an extremely efficient, versatile, dual channel synchronous regenerative motor controller. It supports dual quadrature encoders and can supply two brushed DC motors with 5 amps per channel continuous and 10 amp peak. With support for dual quadrature decoding you get greater control over speed and velocity. Automatically maintain a speed even if load increases. RoboClaw uses PID calculations with feed forward in combination with external quadrature encoders to make an accurate control solution. RoboClaw is easy to control with several built in modes. It can be controlled from a standard RC receiver/transmitter, serial device, microcontroller or an analog source, such as a potentiometer based joystick. RoboClaw is equipped with screw terminal for fast connect and disconnect. All modes are set by the onboard mode buttons making setup a snap! Optical Encoders RoboClaw features dual channel quadrature decoding. RoboClaw gives you the ability to create a closed loop motion system. Now you can know a motors speed and direction giving you greater control over DC motors systems. Power System The RoboClaw is equipped with synchronous regenerative motor drivers. This means your battery is recharged when slowing down, braking or reversing. In addition a BEC circuit is included. It can supply a useful current of up to 150mA at 5v. The BEC is meant to provide power to a microcontroller or RC receiver.

(c) 2013 Orion Robotics. All Rights Reserved.

EN1 EN2 S1 S2 S3

+

-

M2B M2A

• • • • • • • • • • • • • • • • •

2 Channels at 5Amp each, Peak 10Amp 3.3V Compliant Outputs 5V Tolerant Inputs Battery Elimination Circuit (BEC) Hobby RC Radio Compatible Serial Modes TTL Input Analog Mode 2 Channel Quadrature Decoding Thermal Protection Lithium Cut Off Packet Serial with Error Detection High Speed Direction Switching Flip Over Switch Over Current Protection Regenerative Braking USB Capable(Optional)

OrionRobotics.com

U4

C5

V3

RoboClaw 2x5A Motor Controller
Hardware Overview:

Data Sheet

D B C
C28 C22 C9 C7 RoboClaw 2x5A U9 U8 C21 STAT1 STAT2 ERR MODE SET LIPO C11 U4 C5 CN5 M1A M1B C32 C23 C20 C19

I E

A

+ -

LB-MB

LB IN

+ + -

H
A: Power Stabilizer B: Main Battery Input C: Motor Channel 1 D: Motor Channel 2 E: Setup Buttons F: Control Inputs G: Encoder Inputs H: Logic Voltage Source Selection Header I: Status and Error LED Indicators

G F

(c) 2013 Orion Robotics. All Rights Reserved.

EN1 EN2 S1 S2 S3

+

-

M2B M2A

V3

OrionRobotics.com

RoboClaw 2x5A Motor Controller
Dimensions:

Data Sheet

1.7”
M1A M1B C22 C9 C7 RoboClaw 2x5A U9 U8 C32 C23 C20 C19 C21 STAT1 STAT2 ERR MODE SET LIPO C11 U4 C5 CN5 V3

C28

+ -

LB-MB

LB IN

+ + -

1.44”

Board Edge: 1.7”W X 1.9”L Hole Pattern: 0.125D, 1.44”W x 1.68”H

(c) 2013 Orion Robotics. All Rights Reserved.

EN1 EN2 S1 S2 S3

1.68”

1.9”

+

-

M2B M2A

OrionRobotics.com

RoboClaw 2x5A Motor Controller
Header Overview

Data Sheet

LB IN

EN1 EN2 S1 S2 S3

EN1 EN2 S1 S2 S3

U8

C20 C19 C22 C9

Logic Battery (LB IN) The logic circuits can be powered from the main battery or a secondary battery wired LB IN. The positive (+) terminal is located at the board edge and ground (-) is the inside pin near the heatsink. Remove LB-MB jumper if power is applied to LB IN. BEC Source (LB-MB) RoboClaw logic requires 5VDC which is provided from the on board BEC circuit. The BEC source input is set with the LB-MB jumper. Install a jumper on the 2 pins labeled LB-MB to use the main battery as the BEC power source. Remove this jumper if using a separate logic battery. Encoder Power (+ -) The pins labeled + and - are the source power pins for encoders. The positive (+) is located at the board edge and supplies +5VDC. The ground (-) pin is near the heatsink. Encoder Inputs (EN1 / EN2) EN1 and EN2 are the inputs from the encoders. Channel A of both EN1 and EN2 are located at the board edge. Channel B pins are located near the heatsink. When connecting the encoder make sure the leading channel for the direction of rotation is connected to A. If one encoder is backwards to the other you will have one internal counter counting up and the other counting down. Which can affect how RoboClaw operates. Refer to the data sheet of the encoder you are using for channel direction. Control Inputs (S1 / S2 / S3) S1, S2 and S3 are setup for standard servo style headers I/O, +5V and GND. S1 and S2 are the control inputs for serial, analog and RC modes. S3 can be used as a flip switch input when in RC or Analog modes. In serial mode S3 becomes an emergency stop. S3 is active when pulled low. It is internally pull up so it will not accidentally trip when left floating. The pins closest to the board edge are the I/0s, center pin is the +5V and the inside pins are ground. Some RC receivers have their own supply and will conflict with the RoboClaw’s logic supply. It may be necessary to remove the +5V pin from the RC receivers cable in those cases.

(c) 2013 Orion Robotics. All Rights Reserved.

M1A M1B

+
U4 C32 C23 C5

OrionRobotics.com
V3

+ + -

LB IN LB-MB

U9 C21 C7

+ + -

M2B M2A

C11

LB-MB

MODE SET LIPO STAT1 STAT2 ERR

RoboClaw 2x5A C28

+ CN5

This will vary depending on the type of motors and or power source you are using.is the negative side typically marked with a black wire. There is no specific polarities for the motors. The switch must be rated to handle the maximum current and voltage from the battery. .on the main screw terminal. + is the positive side typically marked with a red wire. However if you want both motors turning in the same direction on a 4 wheeled robot you need to reverse one of the motors polarities.RoboClaw 2x5A Motor Controller Data Sheet Main Battery Screw Terminals RoboClaws main power input can be from 6VDC to 34VDC. The connections are marked + and . MOTOR 2 M1A M1B + BATTERY M2B M2A MOTOR 1 (c) 2013 Orion Robotics. Motor Screw Terminals The motor screw terminals are marked with M1A / M1B for channel 1 and M2A / M2B for channel 2. All Rights Reserved. The . When connecting the main battery it is a good practice to use a switch to turn the main power on and off.

When RoboClaw is first powered up all 3 LEDs should blink briefly to indicate all 3 LEDs are functional. Status 2 LED = On when motor(s) active. Status 2 LED = On when motor(s) active.RoboClaw 2x5A Motor Controller Data Sheet Status and Error LEDs The RoboClaw has three LEDs. Serial Modes Status 1 LED = On continuous.ERR LED -------. The status LEDs will indicate a status based on what mode RoboClaw is set to. blinking twice with a long pause. blink on serial receive. All Rights Reserved. (c) 2013 Orion Robotics. Status 2 LED = On when motor(s) active. blink when pulse received.Status1 LED LB-MB LB IN EN1 EN2 S1 S2 S3 C32 C23 U4 + + - + - C20 U9 U8 C7 M1A M1B C22 + M2B M2A <-<----<-------- . blinking three times with a long pause. on/flicker until condition is cleared.Status2 LED ----------. Errors Over Current Over Heat Main Batt Low Main Batt High Logic Batt Low Logic Batt High = = = = = = Error Error Error Error Error Error LED LED LED LED LED LED on solid. Two Status LEDs and one Error LED. C9 C19 C5 V3 OrionRobotics. RoboClaw 2x5A C28 MODE SET LIPO -----. blinking four times with a long pause. blinking once with a long pause. Status 1 or 2 indicates which motor. RC Mode Status 1 LED = On continuous.com C21 CN5 C11 STAT1 STAT2 ERR ` Analog Mode Status 1 LED = On continuous.

The SET button is used to configure the options for a given mode. The LIPO button doubles as a save button and configuring the low battery voltage cut out function of RoboClaw. LB-MB LB IN EN1 EN2 S1 S2 S3 C32 C23 U4 + + - + - C20 RoboClaw 2x5A U9 U8 C7 C28 M1A M1B C22 + M2B M2A . The MODE button sets the interface method such as Serial or RC modes. All Rights Reserved.com C21 CN5 C11 STAT1 STAT2 ERR MODE SET LIPO MODE SET LIPO (c) 2013 Orion Robotics. See the following tables to navigate RoboClaw setup. C9 C19 C5 V3 OrionRobotics.RoboClaw 2x5A Motor Controller Data Sheet RoboClaw Setup There are 3 buttons on RoboClaw which are used to set modes and configuration options.

Packet Serial Mode 7 through 14 In packet serial mode RoboClaw expects TTL level RS-232 serial data to control direction and speed of each motor. This means up to 8 RoboClaws can be on the same serial port. If using a PC a MAX232 type circuit must be used since RoboClaw only works with TTL level input. RoboClaw expects servo pulse inputs to control the direction and speed. Simple Serial Mode 5 & 6 In simple serial mode RoboClaw expects TTL level RS-232 serial data to control direction and speed of each motor.RoboClaw 2x5A Motor Controller Data Sheet Interface Overview There are 4 main modes with variations totaling 14 or 15 modes in all. Analog Mode 3 & 4 Analog mode uses an analog signal from 0V to 5V to control the speed and direction of each motor. Very similar to how a regular servo is controlled. Analog mode can not use encoders. RoboClaw can be controlled using a potentiometer or filtered PWM from a microcontroller. RoboClaw only receives data. Each mode enables RoboClaw to be controlled in a very specific way. Analog mode is ideal for interfacing RoboClaw joystick positioning systems or other non microcontroller interfacing hardware. . When using the quadrature decoding feature of RoboClaw packet serial is required since it is a two way communications format. If a PC is used to drive RobClaw mode 15 should be set. or set it to mode 15. Packet serial mode functionality is available in USB mode as well as baud rates up to 1mbit. The following list explains each mode and the ideal application. RC mode can not use encoders. USB Mode 15(USB Roboclaw only) In USB mode the RoboClaw’s USB port acts as a CDC Virtual Comport in Packet Serial mode with packet address 128. There are 8 addresses available. This allows RoboClaw to transmit information about the encoders position and speed. Simple serial is a one way format. All Rights Reserved. In packet serial mode each RoboClaw is assigned an address using the dip switches. Packet serial is typically used to control RoboClaw from a microcontroller or PC. (c) 2013 Orion Robotics. RC Mode 1 & 2 With RC mode RoboClaw can be controlled from any hobby RC radio system. Power up a USB RoboClaw while it is attached to an active USB cable. RC input mode also allows low powered microcontroller such as a Basic Stamp or Nano to control RoboClaw. Simple serial includes a slave select mode which allows multiple RoboClaws to be controlled from a signal RS-232 port (PC or microcontroller). Simple serial is typically used to control RoboClaw from a microcontroller or PC. If using a PC a MAX232 type circuit must be used since RoboClaw only works with TTL level input. There are two ways to activate the USB mode.

Address 0x86 Packet Serial Mode .Address 0x81 Packet Serial Mode . Press SET to increment to the next mode.Address 0x83 Packet Serial Mode . Each blink is a half second with a long pause at the end of the count. Five blinks with a long pause equals mode 5 and so on.Address 0x85 Packet Serial Mode . 3. All Rights Reserved.Address 0x80 Packet Serial Mode .RoboClaw 2x5A Motor Controller Data Sheet Configuring RoboClaw Modes The buttons built into RoboClaw are used to set the different configuration options. 2.Address 0x84 Packet Serial Mode .Address 0x80 (c) 2013 Orion Robotics. Modes Mode 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Description RC mode RC mode with mixing Analog mode Analog mode with mixing Simple Serial Simple Serial with slave pin Packet Serial Mode .Address 0x87 USB Mode Packet Serial .Address 0x82 Packet Serial Mode . Press and release the LIPO button to save this mode to memory. Press MODE to decrement to the previous mode. . Press and release the MODE button to enter mode setup. To set the desired mode follow the steps below: 1. The STAT2 LED will begin to blink out the current mode.

RoboClaw 2x5A Motor Controller Data Sheet Mode Options After the desired mode is set and saved press and release the SET button for options setup. RC and Analog Mode Options Option 1 2 3 4 5 6 7 8 Description TTL Flip Switch TTL Flip and Exponential Enabled TTL Flip and MCU Enabled TTL Flip and Exp and MCU Enabled RC Flip Switch RC Flip and Exponential Enabled RC Flip and MCU Enabled RC Flip and Exponential and MCU Enabled Simple and Packet Serial Mode Options Option 1 2 3 4 Description 2400bps 9600bps 19200bps 38400bps Battery Cut Off Settings The battery settings can be set by pressing and releasing the LIPO button. The STAT2 LED will begin to blink out the current option.Auto 2 Cell(6v Cutoff) 3 Cell(9v Cutoff) 4 Cell(12v Cutoff) 5 Cell(15v Cutoff) 6 Cell(18v Cutoff) 7 Cell(21v Cutoff) (c) 2013 Orion Robotics. Press MODE to decrement to the previous setting. Press SET to increment to the next setting. The STAT2 LED will begin to blink out the current setting. . Once the desired option is selected press and release the LIPO button to save the option to memory. Press SET to increment to the next option. Once the desired setting is selected press and release the LIPO button to save this setting to memory. Battery Options Option 1 2 3 4 5 6 7 8 Description Normal Lead Acid . Press MODE to decrement to the previous option. All Rights Reserved.

All Rights Reserved.RoboClaw 2x5A Motor Controller Data Sheet RC Mode (c) 2013 Orion Robotics. .

Making it easier to control from an RC radio. . Same as mode 2 with flip switch triggered by RC signal. S2 controls steering by slowing one of the motors. Flip switch triggered by low signal. Continues to execute last pulse received until new pulse received. Flip switch triggered by low signal. RC Mode Options Option 1 2 Function TTL Flip Switch TTL Flip and Exponential Enabled Description Flip switch triggered by low signal. Same as mode 3 with flip switch triggered by RC signal. This drive method is similar to how a tank is controlled. 3 TTL Flip and MCU Enabled 4 5 6 7 8 TTL Flip and Exponential and MCU Enabled RC Flip Switch Enabled RC Flip and Exponential Enabled RC Flip and MCU Enabled RC Flip and Exponential and MCU Enabled (c) 2013 Orion Robotics. Same as mode 4 with flip switch triggered by RC signal. This mode can also be used to simplify driving RoboClaw from a microcontroller using servo pulses. This mode is ideal with tank style robots. Flip switch triggered by low signal. In this mode S1 controls the direction and speed of motor 1 and S2 controls the speed and direction of motor 2. S1 controls speed and direction of both motors 1 and 2. All Rights Reserved. RC Mode With Mixing This mode is the same as RC mode with the exception of how S1 and S2 control the attached motors. Same as mode 1 with flip switch triggered by RC signal.RoboClaw 2x5A Motor Controller Data Sheet RC Mode RC mode is typically used when controlling RoboClaw from a hobby RC radio. This drive method is similar to how a car would be controlled. Disables Signal loss fail safe and auto calibration. Softens the center control position. Enables both options.

The RoboClaw will auto calibrate these ranges on the fly unless autocalibration is disabled.RoboClaw 2x5A Motor Controller Data Sheet Servo Pulse Ranges The RoboClaw expects RC servo pulses on S1 and S2 to drive the motors when the mode is set to RC mode. All Rights Reserved. 1000us is the default for full reverse and 2000us is the default for full forward. Pulse 1000us 2000us Function Full Reverse Full Forward (c) 2013 Orion Robotics. . The center points are calibrated at start up. If a pulse smaller than 1000us or larger than 2000us is detected the new pulses will be set as the new ranges.

RoboClaw 2x5A Motor Controller Data Sheet RC Wiring Example Connect the RoboClaw as shown below. All Rights Reserved. It will take RoboClaw about 1 second to calibrate the neutral position.com M1A M1B + - M2B M2A DC Motor 1 MODE SET LIPO STAT1 STAT2 ERR RoboClaw 2x5A C28 C11 C21 U4 C32 U9 C7 Power Switch Battery (c) 2013 Orion Robotics. Set mode 1 with option 1. Before powering up anything center the control sticks then turn the radio on first. CN5 C23 C5 C19 V3 C20 U8 C9 C22 + - DC Motor 2 . then the receiver. The configuration below uses a separate logic battery so remove the MB-LB jumper. then RoboClaw. SPEKTRUM ~ + BAT THR AILE ELE RUD GER AUX AR6000 LB-MB LB IN EN1 EN2 S1 S2 S3 + + - OrionRobotics.

.Arduino Example The example will drive a 2 motor 4 wheel robot in reverse. #include <Servo. int pos = 0. //Basic Micro RoboClaw RC Mode. delay(1000). delay(1000). myservo2.writeMicroseconds(1750). delay(2000). myservo1. myservo1. } // attaches the RC signal on pin 5 to the servo object // attaches the RC signal on pin 6 to the servo object void loop() { myservo1.writeMicroseconds(1250). Servo myservo2. myservo1. //Stop //Stop //full forward //stop //full reverse //Stop //full forward //Stop //full reverse } (c) 2013 Orion Robotics. delay(1000). myservo2. All Rights Reserved.writeMicroseconds(1500). myservo2.writeMicroseconds(1500).attach(5). delay(2000).writeMicroseconds(1750). stop. Set mode 2 with option 4. myservo2.writeMicroseconds(1500). left turn and then right turn.writeMicroseconds(1250).writeMicroseconds(1500). forward. //Mode settings: Mode 2 with Option 4. myservo1. myservo2. The program was written and tested with a Arduino Uno and P5 connected to S1. P6 connected to S2. delay(2000). // create servo object to control a RoboClaw channel // create servo object to control a RoboClaw channel // variable to store the servo position void setup() { myservo1. delay(1000).RoboClaw 2x5A Motor Controller Data Sheet RC Control . Control RoboClaw //with servo pulses from a microcontroller. delay(2000).h> Servo myservo1.writeMicroseconds(1500).attach(6).

All Rights Reserved.RoboClaw 2x5A Motor Controller Data Sheet Analog Mode (c) 2013 Orion Robotics. .

Disables Signal loss fail safe and auto calibration. Flip switch triggered by low signal. S1 controls speed and direction of both motors 1 and 2. 1V = Stop and 2V = Full forward. Same as mode 3 with flip switch triggered by RC signal. This mode is ideal with tank style robots. Analog Mode With Mixing This mode is the same as Analog mode with the exception of how S1 and S2 control the attached motors. All Rights Reserved. Analog Mode Options Option 1 2 Function TTL Flip Switch TTL Flip and Exponential Enabled Description Flip switch triggered by low signal. This drive method is similar to how a car would be controlled. Same as mode 4 with flip switch triggered by RC signal. . In this mode S1 and S2 are set as analog inputs. Same as mode 2 with flip switch triggered by RC signal.RoboClaw 2x5A Motor Controller Data Sheet Analog Mode Analog mode is used when controlling RoboClaw from a potentiometer or a filtered PWM signal. RC Flip Switch Enabled RC Flip and Exponential Enabled RC Flip and MCU Enabled RC Flip and Exponential and MCU Enabled Same as mode 1 with flip switch triggered by RC signal. Voltage range is 0V = Full reverse. Flip switch triggered Enabled by low signal. (c) 2013 Orion Robotics. Making it easier to control from an RC radio. 3 TTL FLip and MCU Enabled 4 5 6 7 8 TTL FLip and Exponential and MCU Enables both options. S2 controls steering by slowing one of the motors. Continues to execute last pulse received until new pulse received. Flip switch triggered by low signal. Softens the center control position.

10K 10K LB-MB LB IN EN1 EN2 S1 S2 S3 + + - OrionRobotics.com M1A M1B + - M2B M2A DC Motor 1 MODE SET LIPO STAT1 STAT2 ERR RoboClaw 2x5A C28 C11 C21 U4 C32 U9 C7 Power Switch Battery (c) 2013 Orion Robotics. CN5 C23 C5 C19 V3 C20 U8 C9 C22 + - DC Motor 2 . S1 potentiometer will control motor 1 direction and speed.RoboClaw 2x5A Motor Controller Data Sheet Analog Wiring Example Connect the RoboClaw as shown below using two potentiometers. All Rights Reserved. S2 potentiometer will control motor 2 direction and speed. Set mode 3 with option 1. Center the potentiometers before applying power or the attached motors will start moving.

RoboClaw 2x5A Motor Controller Data Sheet Simple Serial (c) 2013 Orion Robotics. All Rights Reserved. .

If you are using a PC a level shifting circuit (See Max232) is required. All Rights Reserved.RoboClaw 2x5A Motor Controller Data Sheet Simple Serial Mode In this mode S1 accepts TTL level byte commands. P2 and P3 are connected to individual S2 pins.com OrionRobotics. RoboClaw can receive only. A standard 8N1 format is used. Set S2 high (5V) and RoboClaw will execute the next set of commands sent to its S1 pin. no parity bits and 1 stop bit. Set S2 low (0V) and RoboClaw will ignore all received commands. Which is 8 bits.com OrionRobotics. Only one MCU pin is connected to each RoboClaw S2 pin. To setup up RoboClaw for serial slave make sure all RoboClaws share a common signal ground (GND) shown by the black wire. Serial Mode Options Option 1 2 3 4 Description 2400 9600 19200 38400 Simple Serial Mode With Slave Select Slave select is used when more than one RoboClaw is on the same serial bus. GND SOUT P1 P2 P3 MCU - LB-MB LB-MB LB-MB LB IN LB IN LB IN EN1 EN2 S1 S2 S3 EN1 EN2 S1 S2 S3 EN1 EN2 S1 S2 S3 + + - + + - + + - MODE SET LIPO MODE SET LIPO OrionRobotics. If you are using a microcontroller you can interface directly to RoboClaw.com M1A M1B + - M2B M2A M1A M1B + - M2B M2A M1A M1B + - M2B M2A (c) 2013 Orion Robotics. When slave select is set to ON the S2 pin becomes the select pin. MODE SET LIPO STAT1 STAT2 ERR RoboClaw 2x5A C28 C11 C11 C11 C21 U4 C32 U9 C7 CN5 C23 C5 C19 V3 C20 U8 C9 C22 STAT1 STAT2 ERR CN5 C21 U4 C32 C23 C5 C19 V3 C20 U8 C9 C22 STAT1 STAT2 ERR CN5 C21 U4 C32 C23 C5 C19 V3 C20 U8 C9 C22 + U9 C7 C28 + - + - RoboClaw 2x5A RoboClaw 2x5A U9 C7 C28 . P1. SOUT (Brown line) is connected to the S1 pin of all three RoboClaws which is the serial in of the RoboClaw. Simple serial mode is one way serial data. The baud rate can be changed using the SET button once a serial mode has been selected. To enable a RoboClaw hold its S2 pin high otherwise commands will be ignored.

1 to 127 controls channel 1 and 128 to 255 controls channel 2.Stop Channel 2 . Since a byte can be anything from 0 to 255 the control of each motor is split.Full Reverse Channel 1 .Full Forward (c) 2013 Orion Robotics.Full Reverse Channel 2 . . Any other values will control speed and direction of the specific channel. All Rights Reserved. Character 0 1 64 127 128 192 255 Function Shuts Down Channel 1 and 2 Channel 1 . Command character 0 will shut down both channels.RoboClaw 2x5A Motor Controller Data Sheet Simple Serial Command Syntax The RoboClaw simple serial is setup to control both motors with one byte sized command character.Full Forward Channel 2 .Stop Channel 1 .

Use the below wiring diagram with the following code examples.com M1A M1B + - M2B M2A DC Motor 1 MODE SET LIPO STAT1 STAT2 ERR RoboClaw 2x5A C28 C11 C21 U4 C32 U9 C7 Power Switch Battery (c) 2013 Orion Robotics.RoboClaw 2x5A Motor Controller Data Sheet Simple Serial Wiring Example In simple serial mode the RoboClaw can only receive serial data. Make sure the LB-MB jumper is installed. I/O -> VCC -> GND -> LB-MB LB IN EN1 EN2 S1 S2 S3 + + - OrionRobotics. CN5 C23 C5 C19 V3 C20 U8 C9 C22 + - DC Motor 2 . All Rights Reserved.

write(-127).write(-1).Arduino Example The following example will start both channels in reverse.write(1). The program was written and tested with a Arduino Uno and Pin 5 connected to S1. mySerial. //Basic Micro RoboClaw Simple Serial Test //Switch settings: SW2=ON and SW5=ON //Make sure Arduino and Robo Claw share common GND! #include “BMSerial. mySerial.RoboClaw 2x5A Motor Controller Data Sheet Simple Serial .6). mySerial. Set mode 5 and option 3. .h” BMSerial mySerial(5. } (c) 2013 Orion Robotics.write(127).begin(19200). delay(2000). } void loop() { mySerial. All Rights Reserved. then full speed forward. delay(2000). void setup() { mySerial.

RoboClaw 2x5A Motor Controller Data Sheet Packet Serial (c) 2013 Orion Robotics. All Rights Reserved. .

. command byte. More sophisticated instructions can be sent to RoboClaw.RoboClaw 2x5A Motor Controller Data Sheet Packet Serial Mode Packet serial is a buffered bidirectional serial mode. The address is selected by setting the desired packet mode using the MODE button. There are 8 packet modes 7 to 14.Address 0x84 (132) Packet Serial Mode .Address 0x86 (134) Packet Serial Mode .Address 0x81 (129) Packet Serial Mode .Address 0x82 (130) Packet Serial Mode . All Rights Reserved.Address 0x85 (133) Packet Serial Mode . data bytes and a checksum. With up to 8 addresses available you can have up to 8 RoboClaws bussed on the same RS232 port.Address 0x80 (128) Packet Serial Mode . These are set using the SET button as covered in Mode Options. The basic command structures consists of an address byte.Address 0x87 (135) Packet Serial Baud Rate When in serial mode or packet serial mode the baud rate can be changed to one of four different settings in the table below. Address Packet serial requires a unique address. Serial Mode Options Option 1 2 3 4 Description 2400 9600 19200 38400 (c) 2013 Orion Robotics.Address 0x83 (131) Packet Serial Mode . Packet Modes Mode 7 8 9 10 11 12 13 14 Description Packet Serial Mode . Each mode has a unique address. The amount of data each command will send or receive can vary.

Since the RoboClaw expects a 7bit value the 8th bit is masked. All Rights Reserved. (c) 2013 Orion Robotics.RoboClaw 2x5A Motor Controller Data Sheet Checksum Calculation All packet serial commands use a 7 bit checksum to prevent corrupt commands from being executed. . The checksum is calculated as follows: Checksum = (Address + Command + Data bytes) & 0x7F When calculating the checksum all data bytes sent or received must be added together. The hexadecimal value 0X7F is used to mask the 8th bit.

If you are using a battery of any type you can ignore this setting. RoboClaw before exceeding it will go into hard breaking mode until the voltage drops below the maximum value set. 127. 82. Valid data range is 0 . 3. The valid data range is 0 . ((128+0+127) & 0X7F) 2 .Drive Forward M1 Drive motor 1 forward.127.RoboClaw 2x5A Motor Controller Data Sheet Commands 0 . 8V = 10 and 11V = 25.154 (0V . Example with RoboClaw address set to 128: Send: 128. The command syntax is the same for commands 0 to 7: Address. Valid data range is 0 . Command. A value of 127 = full speed forward. 4.Set Minimum Main Voltage Sets main battery (B. Example with RoboClaw address set to 128: Send: 128.12 = Value./ B+) maximum voltage level.Drive Forward M2 Drive motor 2 forward. ((128+4+127) & 0X7F)] (c) 2013 Orion Robotics. The value is cleared at start up and must set after each power up. 127. ((128+3+82) & 0X7F) 4 . During regenerative breaking a back voltage is applied to charge the battery. When using an ATX type power supply if it senses anything over 16V it will shut down. 16V = 82 and 24V = 123. 64 = about half speed backward and 0 = full stop.7 Standard Commands The following commands are the standard set of commands used with packet mode. If the battery voltages drops below the set voltage level RoboClaw will shut down. Example with RoboClaw address set to 128: Send: 128. 64 = about half speed forward and 0 = full stop.30V). ((128+2+25) & 0X7F) 3 . 64 = about half speed forward and 0 = full stop. The formula for calculating the voltage is: Desired Volts x 5. The valid data range is 0 . 25. By setting the maximum voltage level. ByteValue.Set Maximum Main Voltage Sets main battery (B. Valid data range is 0 . ((128+0+127) & 0X7F) 1 . 2./ B+) minimum voltage level.127. The formula for calculating the voltage is: (Desired Volts 6) x 5 = Value. Examples of valid values are 12V = 62. A value of 0 sets the minimum value allowed which is 6V. A value of 127 full speed forward. . The voltage is set in . Examples of valid values are 6V = 0.120 (6V . 0. Checksum 0 .2 volt increments.127. Example with RoboClaw address set to 128: Send: 128.30V). A value of 127 full speed backwards. All Rights Reserved. 127. Example with RoboClaw address set to 128: Send: 128. 1.Drive Backwards M1 Drive motor 1 backwards.

64 = about half speed backward and 0 = full stop.Drive Backwards M2 Drive motor 2 backwards. Valid data range is 0 . 5. 96.127. A value of 0 = full speed reverse. .Drive M2 (7 Bit) Drive motor 2 forward and reverse. 32. 7. Valid data range is 0 . All Rights Reserved. 6. 127. 64 = stop and 127 = full speed forward.Drive M1 (7 Bit) Drive motor 1 forward and reverse. ((128+5+127) & 0X7F) 6 . A value of 127 full speed backwards. Valid data range is 0 . Example with RoboClaw address set to 128: Send: 128. ((128+7+32) & 0X7F) (c) 2013 Orion Robotics. Example with RoboClaw address set to 128: Send: 128. 64 = stop and 127 = full speed forward.127. Example with RoboClaw address set to 128: Send: 128. A value of 0 = full speed reverse.RoboClaw 2x5A Motor Controller Data Sheet 5 .127. ((128+6+96) & 0X7F) 7 .

Example with RoboClaw address set to 128: Send: 128. 13. 127. 127.13 Mix Mode Commands The following commands are mix mode commands and used to control speed and turn. Before a command is executed valid drive and turn data is required. Example with RoboClaw address set to 128: Send: 128.Drive Forward Drive forward in mix mode. At this point you only need to update turn or drive data. 10. ((128+13=0) & 0x7F) (c) 2013 Orion Robotics. ((128+9+127) & 0x7F) 10 .127.127. You only need to send both data packets once. Example with RoboClaw address set to 128: Send: 128. 127. Valid data range is 0 . ((128+11+127) & 0x7F) 12 .Turn left Turn left in mix mode. A value of 0 = stop turn and 127 = full speed turn. 11. Example with RoboClaw address set to 128: Send: 128. Valid data range is 0 . 8. A value of 0 = full stop and 127 = full forward. 12. 8 . . Example with RoboClaw address set to 128: Send: 128. Example with RoboClaw address set to 128: Send: 128.127. Valid data range is 0 .Turn right Turn right in mix mode. A value of 0 = stop turn and 127 = full speed turn. 9. After receiving both valid drive and turn data RoboClaw will begin to operate. All Rights Reserved. 127. 0 = stop turn and 127 = full right. ((128+8+127) & 0x7F) 9 . ((128+10+127) & 0x7F1) 11 .Drive Backwards Drive backwards in mix mode. ((128+12=96) & 0x7F) 13 . Valid data range is 0 . Valid data range is 0 . 96.127. Valid data range is 0 . A value of 0 = full stop and 127 = full reverse.Drive Forward or Backward (7 Bit) Drive forward or backwards. 64 = stop and 127 = full forward.RoboClaw 2x5A Motor Controller Data Sheet Commands 8 . A value of 0 = full backward.Turn Left or Right (7 Bit) Turn left or right. A value of 0 = full left.127. 0.127.

A microcontroller with a UART is recommended.com M1A M1B + - M2B M2A DC Motor 1 MODE SET LIPO STAT1 STAT2 ERR RoboClaw 2x5A C28 C11 C21 U4 C32 U9 C7 Power Switch Battery (c) 2013 Orion Robotics. This will allow slower processors and processors without UARTs to communicate with RoboClaw. All Rights Reserved. The UART will buffer the data received from RoboClaw. When a request for data is made to RoboClaw the return data will always have at least a 1ms delay after the command is received. S1 S2 VCC GND -> -> -> -> LB-MB LB IN EN1 EN2 S1 S2 S3 + + - OrionRobotics. CN5 C23 C5 C19 V3 C20 U8 C9 C22 + - DC Motor 2 .RoboClaw 2x5A Motor Controller Data Sheet Packet Serial Wiring In packet mode the RoboClaw can transmit and receive serial data.

32). roboclaw.0).6).0). roboclaw. 32). roboclaw.ForwardBackwardM1(address.ForwardBackwardM2(address. //Cmd 0 roboclaw.BackwardM2(address.ForwardM2(address. //Basic Micro RoboClaw Packet Serial Test Commands 0 to 13. 64). //Switch settings: SW3=ON and SW5=ON.TurnRightMixed(address. 64). roboclaw. roboclaw.ForwardBackwardMixed(address.ForwardBackwardM2(address. delay(10000).96). Then start turns with mix mode commands.BackwardMixed(address. //stop motors roboclaw. //Cmd delay(2000).Arduino Example The example will start the motor channels independently. roboclaw. 0).ForwardBackwardM1(address. roboclaw.ForwardMixed(address.BackwardM1(address. roboclaw. delay(2000). delay(2000). roboclaw. The program was written and tested with a Arduno Uno and P5 connected to S1.64).TurnLeftMixed(address.ForwardM1(address. //Cmd delay(2000).64). //Cmd delay(2000). .ForwardBackwardM1(address. #include “BMSerial.ForwardMixed(address. 96).64). //Cmd delay(2000).LeftRightMixed(address.h” #include “RoboClaw. //Cmd roboclaw.32). 64).96).ForwardBackwardM2(address. //stop motors roboclaw.LeftRightMixed(address. Set mode 7 and option 3. roboclaw. 96).RoboClaw 2x5A Motor Controller Data Sheet Packet Serial .ForwardBackwardMixed(address. //Cmd delay(2000). //Cmd roboclaw. roboclaw.64). //Cmd 1 roboclaw. delay(2000). } void loop() { roboclaw. } delay(10000). All Rights Reserved.32). //Cmd delay(2000). roboclaw.h” #define address 0x80 RoboClaw roboclaw(5. //Cmd 6 delay(2000). 8 9 10 //Cmd 11 //Cmd 12 //Cmd 12 13 13 6 7 6 7 (c) 2013 Orion Robotics. void setup() { roboclaw. 64). //Cmd delay(2000). //Cmd 5 delay(2000).begin(19200).

All Rights Reserved.RoboClaw 2x5A Motor Controller Data Sheet Advanced Packet Serial (c) 2013 Orion Robotics. .

/ LB+) maximum voltage level. Command syntax: Send: [Address.12 = Value. Checksum] The command will return 3 bytes. (213 & 0X7F)] (c) 2013 Orion Robotics.Byte0.6) x 5 = Value. The voltage is set in ./ LB+) minimum voltage level. 26. Byte 3 is the checksum. A returned value of 300 would equal 30V. 21] Receive: [“RoboClaw 10.Byte0. The voltage is returned in 10ths of a volt. All Rights Reserved.Byte1. 16V = 82 and 24V = 123. The formula for calculating the voltage is: (Desired Volts .3.Byte1. Examples of valid values are 3V = 0.144 (0V . .Set Minimum Logic Voltage Level Sets logic input (LB. 24 . A returned value of 50 would equal 5V.9. Command syntax: Send: [Address. 25] Receive: [Value. A value of 0 sets the minimum value allowed which is 3V. Returns up to 32 bytes and is terminated by a null character.28V). (154 & 0X7F)] 27 . Byte 1 and 2 make up a word variable which is received MSB first and is 10th of a volt. 82. The valid data range is 0 . Send: [128. Value. If the battery voltages drops below the set voltage level RoboClaw will shut down. The return string is terminated with a null (0) character.Read Firmware Version Read RoboClaw firmware version.28V). 0. Examples of valid values are 12V = 62.Set Maximum Logic Voltage Level Sets logic input (LB. By setting the maximum voltage level RoboClaw will go into shut down and requires a hard reset to recovers.terminals. The value is cleared at start up and must set after each power up. 8V = 10 and 11V = 25. Byte 3 is the checksum. Checksum] The command will return 3 bytes. Checksum] The command will return up to 32 bytes.Read Main Battery Voltage Level Read the main battery voltage level connected to B+ and B. 26 .120 (6V . The formula for calculating the voltage is: Desired Volts x 5. Byte 1 and 2 make up a word variable which is received MSB first and is 10th of a volt.RoboClaw 2x5A Motor Controller Data Sheet 21 . 27.2 volt increments. 25 .2A v1. The valid data range is 0 . It is calculated the same way as sending a command and can be used to validate the data.terminals. The return string includes the product name and firmware version. The voltage is returned in 10ths of a volt. Value. Command syntax: Send: [Address.Read Logic Battery Voltage Level Read a logic battery voltage level connected to LB+ and LB. It is calculated the same way as sending a command and can be used to validate the data. 24] Receive: [Value. Send: [128.

D and QPPS Settings Read the PID and QPPS Settings. Command syntax: Data Sheet Send: [Address. .Read Logic Battery Voltage Settings Read the Main Battery Voltage Settings. 55] Receive: [P(4 bytes). Checksum] The command will return 5 bytes. Min(2 bytes). Checksum] 56 . Command syntax: Send: [Address.Read Motor 1 P.RoboClaw 2x5A Motor Controller 49 . Min(2 bytes). Command syntax: Send: [Address. All Rights Reserved. Command syntax: Send: [Address.Set Main Battery Voltages Set the Main Battery Voltages cutoffs.Byte1. D(4 bytes). Bytes 1 and 2 combine to represent the current in 100ma increments of motor1. Max(2 bytes). 60] Receive: [Min(2 bytes). M1Cur.Read Main Battery Voltage Settings Read the Main Battery Voltage Settings. Command syntax: Send: [Address.Read Motor 2 P. 55 . I. QPPS(4 byte). Checksum] 57 . 59] Receive: [Min(2 bytes). Min and Max.Byte0.Set Logic Battery Voltages Set the Logic Battery Voltages cutoffs. Bytes 3 and 4 combine to represent the current in 100ma increments of motor2 . 56] Receive: [P(4 bytes). QPPS(4 byte).Read Motor Currents Read the current draw from each motor in 100ma increments. Command syntax: Send: [Address. D(4 bytes). Max(2 bytes). Byte 5 is the checksum. Min and Max. I(4 bytes). I.Byte0. Max(2bytes. 49] Receive: [M1Cur. Checksum] 58 . 58. M2Cur. Checksum] (c) 2013 Orion Robotics. Checksum] 59 .Byte1. Command syntax: Send: [Address. Checksum] 60 . I(4 bytes). D and QPPS Settings Read the PID and QPPS Settings. 57. M2Cur. Max(2bytes.

Value returned is in 0. Command syntax: Send: [Address.RoboClaw 2x5A Motor Controller Data Sheet 82 . .1 degree increments. Command syntax: Send: [Address.Read Temperature Read the board temperature. Checksum] Error Mask Normal M1 OverCurrent M2 OverCurrent E-Stop Temperature Main Battery High Main Battery Low Logic Battery High Logic Battery Low 0x00 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 94 . 82] Receive: [Temperature(2 bytes).Write Settings to EEPROM Writes all settings to non-volatile memory. Command syntax: Send: [Address. 94] Receive: [Checksum] (c) 2013 Orion Robotics. All Rights Reserved. Checksum] 90 . 90] Receive: [Error.Read Error Status Read the current error status.

RoboClaw 2x5A Motor Controller Data Sheet Quadrature Decoding (c) 2013 Orion Robotics. . All Rights Reserved.

com M1A M1B + - M2B M2A (c) 2013 Orion Robotics. The main RoboClaw header provides two +5VDC connections with dual A and B input signals. If either encoder is connected wrong one will count up and the other down this will cause commands like mix drive forward to not work properly.RoboClaw 2x5A Motor Controller Data Sheet Quadrature Encoder Wiring RoboClaw is capable of reading two quadrature encoders one for each motor channel. In a two motor robot configuration one motor will spin clock wise (CW) while the other motor will spin counter clock wise (CCW). +1 A2 G3 B4 1+ 2A 3G 4B LB-MB LB IN EN1 EN2 S1 S2 S3 + + - OrionRobotics. MODE SET LIPO STAT1 STAT2 ERR RoboClaw 2x5A C28 C11 C21 U4 C32 U9 C7 CN5 C23 C5 C19 V3 C20 U8 C9 C22 + - . All Rights Reserved. The A and B inputs for one of the two encoders must be reversed as shown.

Byte1. Value1.2. Byte 1. (Note: A microcontroller with a hardware UART is recommended for use with packet serial modes). The quadrature decoder is a simple counter that counts the incoming pulses. Byte 5 is the status byte for M1 decoder. direction.3 and 4 make up a long variable which is received MSB first and represents the current count which can be any value from 0 .Byte2. Clear After Reading) Reserved Reserved Reserved Reserved Reserved Byte 6 is the checksum. It is calculated the same way as sending a command. Command 16 17 18 19 20 Description Read Quadrature Encoder Register for M1.Read Quadrature Encoder Register M1 Read decoder M1 counter. .RoboClaw 2x5A Motor Controller Data Sheet Commands 16 . Checksum] The command will return 6 bytes.967. 1 = Backwards) Counter Overflow (1= Underflow Occurred. There are two registers one each for M1 and M2. Read M2 Speed in Pulses Per Second.295. 16 . Since CMD 16 is a read command it does not require a checksum. Read M1 Speed in Pulses Per Second.20 Reading Quadrature Encoders The following commands are used in dealing with the quadrature decoding counter registers. tracks the direction and speed of each pulse.Byte0. However a checksum value will be returned from RoboClaw and can be used to validate the data. It tracks counter underflow. Resets Quadrature Encoder Registers for M1 and M2. The byte value represents: Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Counter Underflow (1= Underflow Occurred. Each pulse from the quadrature encoder will increment or decrement the counter depending on the direction of rotation.Byte3. Clear After Reading) Direction (0 = Forward. Value2. (c) 2013 Orion Robotics. Value1. Command syntax: Send: [Address. Read Quadrature Encoder Register for M2. Value1. CMD] Receive: [Value1.4. overflow and if the encoder is operational. Sum all the values sent and received except the checksum and mask the 8th bit.294. All Rights Reserved.

18 .Byte2.Byte1. Value1. CMD] Receive: [Value1.3 and 4 make up a long variable which is received MSB first and is the current ticks per second which can be any value from 0 .backward).RoboClaw 2x5A Motor Controller Data Sheet 17 .294. 1 = Backwards) Counter Overflow (1= Underflow Occurred. Value1. However a checksum value will be returned from RoboClaw and can be used to validate the data. Returned value is in pulses per second. Clear After Reading) Direction (0 = Forward. direction. Value2. RoboClaw keeps track of how many pulses received per second for both decoder channels.Byte0. Command syntax: Send: [Address. Value2. . It tracks counter underflow. 1 .2. CMD] Receive: [Value1.294. However a checksum value will be returned from RoboClaw and can be used to validate the data.4.Read Speed M1 Read M1 counter speed. Since CMD 16 is a read command it does not require a checksum. Byte 5 is the direction (0 – forward.Byte2.4. Checksum] The command will return 6 bytes. Each pulse from the quadrature encoder will increment or decrement the counter depending on the direction of rotation. Value1.Byte1. Value1. All Rights Reserved.3 and 4 make up a long variable which is received MSB first and represents the current count which can be any value from 0 .295. Byte 6 is the checksum.Read Quadrature Encoder Register M2 Read decoder M2 counter.2. Byte 1.Byte3. Byte 5 is the status byte for M1 decoder.Byte3. Byte 1.Byte0. Value1.967. (c) 2013 Orion Robotics.295. Checksum] The command will return 6 bytes. Value1.967. overflow and if the encoder is operational. Clear After Reading) Reserved Reserved Reserved Reserved Reserved Byte 6 is the checksum. The byte value represents: Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Counter Underflow (1= Underflow Occurred. Command syntax: Send: [Address. Since CMD 18 is a read command it does not require a checksum to be sent.

Value2. Value1. However a checksum value will be returned from RoboClaw and can be used to validate the data.4. Returned value is in pulses per second.Byte3. Byte 1.Byte1.RoboClaw 2x5A Motor Controller Data Sheet 19 .294.295.backward).Read Speed M2 Read M2 counter speed. 20 .Reset Quadrature Encoder Counters Will reset both quadrature decoder counters to zero. RoboClaw keeps track of how many pulses received per second for both decoder channels. ((128+20) & 0x7F)] (c) 2013 Orion Robotics. Command syntax: Send: [Address. Value1. All Rights Reserved. Byte 6 is the checksum.Byte2.Byte0. Send: [128. 1 . 20. CMD] Receive: [Value1. Value1.3 and 4 make up a long variable which is received MSB first and is the current ticks per second which can be any value from 0 .2.967. . Since CMD 19 is a read command it does not require a checksum to be sent. Checksum] The command will return 6 bytes. Byte 5 is the direction (0 – forward.

Mix Mode Drive M1 / M2 With Speed. Read Current M1 Speed Resolution 125th of a Second. (Encoders not required) Mix Drive M1 / M2 With Duty and Accel. All Rights Reserved. (Encoders not required) Drive M1 With Signed Speed. Drive M2 With Signed Speed And Acceleration. Mix Drive M1 / M2 With Individual Speed and Acceleration Mix Drive M1 / M2 With Individual Speed. . Quadrature encoders of different types and manufactures can be used. (Encoders not required) Drive M2 With Duty and Accel.RoboClaw 2x5A Motor Controller Data Sheet Commands 28 . Buffered. Drive M2 With Signed Speed. Mix Mode Drive M1 / M2 With Signed Speed. (Encoders not required) (c) 2013 Orion Robotics. Buffered. Buffered. Drive M1 With Signed Speed. acceleration and distance using the quadrature encoders. Acceleration and Distance. So each quadrature encoder will produce a different range of pulses per second. However many have different resolutions and maximum speeds at which they operate. Drive M2 With Signed Speed. (Encoders not required) Mix Mode Drive M1 / M2 With Signed Duty Cycle. Acceleration and Distance. Set PID Constants for M2. Accel and Distance Drive M1 With Duty and Accel. Command 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 52 53 54 Description Set PID Constants for M1. (Encoders not required) Drive M2 With Signed Duty Cycle. Buffered. Mix Mode Drive M1 / M2 With Speed And Distance. Drive M2 With Signed Speed And Distance. Acceleration And Distance. Read Buffer Length. Drive M1 With Signed Speed And Distance.54 Advanced Motor Control The following commands are used to control motor speeds. Mix Mode Drive M1 / M2 With Speed And Acceleration. Drive M1 With Signed Duty Cycle. All speeds are given in quad pulses per second (QPPS) unless otherwise stated. Buffered. Drive M1 With Signed Speed And Acceleration. Read Current M2 Speed Resolution 125th of a Second. Buffered.

To write the registers a checksum value is used. This prevents an accidental write. P = Proportional. 28. I= Integral and D= Derivative. This prevents an accidental write. D(4 bytes). P(4 bytes). I(4 bytes). To write the registers a checksum value is used. I. Checksum] Each value is made up of 4 bytes for a long. QPPS(4 byte). . P = Proportional. In some cases the default PID values will need to be tuned for the systems being driven. Checksum] Each value is made up of 4 bytes for a long.Set PID Constants M1 Several motor and quadrature combinations can be used with RoboClaw. The RoboClaw PID system consist of four constants starting with QPPS. This gives greater flexibility in what motor and encoder combinations can be used.RoboClaw 2x5A Motor Controller Data Sheet 28 . I. All Rights Reserved. This gives greater flexibility in what motor and encoder combinations can be used. D(4 bytes). 29. In some cases the default PID values will need to be tuned for the systems being driven. I(4 bytes). D are the default values used after a reset. D are the default values used after a reset. P(4 bytes). (c) 2013 Orion Robotics. P. I= Integral and D= Derivative.Set PID Constants M2 Several motor and quadrature combinations can be used with RoboClaw. The defaults values are: QPPS = 44000 P = 0x00010000 I = 0x00008000 D = 0x00004000 QPPS is the speed of the encoder when the motor is at 100% power. QPPS(4 byte). The defaults values are: QPPS = 44000 P = 0x00010000 I = 0x00008000 D = 0x00004000 QPPS is the speed of the encoder when the motor is at 100% power. Command syntax: Send: [Address. 29 . P. Command syntax: Send: [Address. The RoboClaw PID system consist of four constants starting with QPPS.

(c) 2013 Orion Robotics. This is a high resolution version of command 18 and 19.Byte1. is A checksum is returned in order to validate the data returned. The first 4 bytes are a 32 byte value (long) that repersent the speed. MSB sent first for a long. The command syntax: Send: [Address. The first 4 bytes are a 32 byte value (long) that repersent the speed. The command syntax: Send: [Address. Value1.Byte0.Byte3. A value used to drive one motor at 50% will be differ from one motor to the next. Duty(2 Bytes). The 5th byte (Value2) is direction (0 – forward.Read Current Speed M2 Read the current pulse per 125th of a second.Read Current Speed M1 Read the current pulse per 125th of a second. 1 .Drive M1 With Signed Duty Cycle Drive M1 using a duty cycle value. Value1. The 5th byte (Value2) is direction (0 – forward. The default value can be changed see CMD 48. . Value2. 1 .Byte3. CMD. The default PWM is 8bit resolution. Checksum] The command will return 5 bytes. 31 . Duty(2 Bytes). CMD. is A checksum is returned in order to validate the data returned. 33 .backward). Value1.Byte2. CMD] Receive: [Value1. The duty cycle is used to control the speed of the motor without a quadrature encoder. 32 .Byte1.Byte0.Drive M2 With Signed Duty Cycle Drive M2 using a duty cycle value. Command 30 can be used to make a independent PID routine.RoboClaw 2x5A Motor Controller Data Sheet 30 . All Rights Reserved. The default PWM resolution can be changed for more range. Checksum] The duty value is signed and the default range is 8bits. To change the resolution see command 48. Value1. The duty cycle is used to control the speed of the motor without a quadrature encoder. Value1. The default value can be changed see CMD 48. The resolution of the command is required to create a PID routine using any microcontroller or PC used to drive RoboClaw. Checksum] The command will return 5 bytes. The default PWM resolution can be changed for more range. Value1. The resolution of the command is required to create a PID routine using any microcontroller or PC used to drive RoboClaw. The default PWM is 8bit resolution.Byte2. Checksum] The duty value is signed and the default range is 8bits. This is a high resolution version of command 18 and 19.backward). Value2. To change the resolution see command 48. CMD] Receive: [Value1. Command 31 can be used to make a independent PID routine. The command syntax: Send: [Address. MSB sent first for a long. The command syntax: Send: [Address. A value used to drive one motor at 50% will be differ from one motor to the next.

The values used will differ from one encoder to another. the motor will begin to accelerate as fast as possible until the rate defined is reached. Qspeed(4 Bytes). So 1000 ticks would be counted as 4000 pulses.RoboClaw 2x5A Motor Controller Data Sheet 34 . . The duty cycle is used to control the speed of the motor without a quadrature encoder. Qspeed(4 Bytes). The default PWM is 8bit resolution. CMD. All Rights Reserved.Drive M1 With Signed Speed Drive M1 using a speed value. To change the resolution see command 48. Checksum] 4 Bytes (long) are used to expressed the pulses per second. CMD. The default value can be changed see CMD 48. Checksum] 4 Bytes (long) are used to express the pulses per second. Different quadrature encoders will have different rates at which they generate the incoming pulses. CMD. The default PWM resolution can be changed for more range. So 1000 ticks would be counted as 4000 pulses.Drive M2 With Signed Speed Drive M2 with a speed value. (c) 2013 Orion Robotics. The sign indicates which direction the motor will turn. The values used will differ from one encoder to another. The command syntax: Send: [Address. Once a value is sent. The command syntax: Send: [Address. 35 . This command is used to drive the motor by quad pulses per second. This command is used to drive the motor by quad pulses per second. DutyM2(2 Bytes). A value used to drive one motor at 50% will be differ from one motor to the next. DutyM1(2 Bytes). 36 . Quadrature encoders send 4 pulses per tick. Different quadrature encoders will have different rates at which they generate the incoming pulses.Mix Mode Drive M1 / M2 With Signed Duty Cycle Drive both M1 and M2 using a duty cycle value. Quadrature encoders send 4 pulses per tick. The sign indicates which direction the motor will turn. Once a value is sent the motor will begin to accelerate as fast as possible until the defined rate is reached. Checksum] The duty value is signed and the default range is 8bits. The command syntax: Send: [Address.

QspeedM1(4 Bytes). Quadrature encoders send 4 pulses per tick. All Rights Reserved. 39 . An acceleration value of 12. CMD. The command syntax: Send: [Address. The sign indicates which direction the motor will run. The values used will differ from one encoder to another. The values used will differ from one encoder to another. The acceleration is measured in speed per second.5 seconds.000 QPPS in 0.000 QPPS would accelerate the motor to 12.5 seconds. Once a value is sent the motor will begin to accelerate incrementally until the rate defined is reached. Once a value is sent the motor will begin to accelerate as fast as possible until the rate defined is reached.RoboClaw 2x5A Motor Controller Data Sheet 37 . Different quadrature encoders will have different rates at which they generate the incoming pulses. Checksum] 4 Bytes (long) are used to express the pulses per second. Accel(4 Bytes).000 QPPS with a speed of 12. The acceleration values are not signed. So 1000 ticks would be counted as 4000 pulses. So 1000 ticks would be counted as 4000 pulses.000 QPPS in 1 second.000 QPPS would accelerate a motor from 0 to 12. This command is used to drive the motor by quad pulses per second and using an acceleration value for ramping.Mix Mode Drive M1 / M2 With Signed Speed Drive M1 and M2 in the same command using a signed speed value. The acceleration is measured in speed per second. Once a value is sent the motor will begin to accelerate incrementally until the rate defined is reached.Drive M1 With Signed Speed And Acceleration Drive M1 with a signed speed and acceleration value. Qspeed(4 Bytes). The command syntax: Send: [Address. The values used will differ from one encoder to another. . CMD. Another example would be an acceleration value of 24.000 QPPS and a speed value of 12. Quadrature encoders send 4 pulses per tick. The sign indicates which direction the motor will turn. This command is used to drive both motors by quad pulses per second.Drive M2 With Signed Speed And Acceleration Drive M2 with a signed speed and acceleration value. 38 . This command is used to drive the motor by quad pulses per second and using an acceleration value for ramping. An acceleration value of 12. Quadrature encoders send 4 pulses per tick. So 1000 ticks would be counted as 4000 pulses.000 QPPS with a speed of 12.000 QPPS would accelerate a motor from 0 to 12. Checksum] 4 Bytes (long) are used to express the pulses per second. Different quadrature encoders will have different rates at which they generate the incoming pulses.000 QPPS in 0. The acceleration value is not signed.000 QPPS would accelerate the motor to 12. QspeedM2(4 Bytes). (c) 2013 Orion Robotics. Checksum] 4 Bytes (long) are used to express the pulses per second. CMD. Another example would be an acceleration value of 24. Accel(4 Bytes). Qspeed(4 Bytes). The command syntax: Send: [Address. Different quadrature encoders will have different rates at which they generate the incoming pulses. The sign indicates which direction the motor will run.000 QPPS and a speed value of 12.000 QPPS in 1 second.

The motors are sync during acceleration. CMD. any other commands in the buffer are deleted and the new command is executed.000 QPPS in 0. The sign indicates which direction the motor will run. So 1000 ticks would be counted as 4000 pulses.000 QPPS with a speed of 12. All values used are in quad pulses per second. The command syntax: Send: [Address.Mix Mode Drive M1 / M2 With Signed Speed And Acceleration Drive M1 and M2 in the same command using one value for acceleration and two signed speed values for each motor. The sign indicates which direction the motor will run. any other commands in the buffer are deleted and the new command is executed. The command syntax: Send: [Address. The values used will differ from one encoder to another. Accel(4 Bytes).Buffered M1 Drive With Signed Speed And Distance Drive M1 with a signed speed and distance value. Distance(4 Bytes).5 seconds. QSpeed(4 Bytes). Buffer(1 Byte). . Any buffered or executing command can be stopped when a new command is issued by setting the Buffer argument. The command syntax: Send: [Address.Buffered M2 Drive With Signed Speed And Distance Drive M2 with a speed and distance value. The acceleration value is not signed. Buffer(1 Byte).000 QPPS would accelerate the motor to 12. QspeedM1(4 Bytes). Distance(4 Bytes). The distance value is not signed. Different quadrature encoders will have different rates at which they generate the incoming pulses. Checksum] 4 Bytes (long) are used to express the pulses per second. If a value of 0 is used the command will be buffered and executed in the order sent. otherwise the command will be buffered in the order it was sent. The Buffer argument can be set to a 1 or 0. This command is buffered. Once a value is sent the motor will begin to accelerate incrementally until the rate defined is reached. An acceleration value of 12. This command is used to control the top speed and total distance traveled by the motor. Each motor channel M1 and M2 have separate buffers.000 QPPS and a speed value of 12. otherwise the command will be buffered in the order it was sent. 42 . QSpeed(4 Bytes). The distance value is not signed. If a value of 1 is used the current running command is stopped. The sign indicates which direction the motor will run. Checksum] 4 Bytes(long) are used to express the pulses per second.000 QPPS would accelerate a motor from 0 to 12. The acceleration is measured in speed per second.RoboClaw 2x5A Motor Controller Data Sheet 40 . If a value of 0 is used the command will be buffered and executed in the order sent. QspeedM2(4 Bytes). This command will execute immediately if no other command for that channel is executing.000 QPPS in 1 second. Checksum] 4 Bytes(long) are used to express the pulses per second. 41 . This command is buffered. If a value of 1 is used the current running command is stopped. Quadrature encoders send 4 pulses per tick. The Buffer argument can be set to a 1 or 0. Each motor channel M1 and M2 have separate buffers. This command is used to drive the motor by quad pulses per second and using an acceleration value for ramping. (c) 2013 Orion Robotics. Any buffered or executing command can be stopped when a new command is issued by setting the Buffer argument. Another example would be an acceleration value of 24. CMD. All Rights Reserved. This command will execute immediately if no other command for that channel is executing. CMD. All values used are in quad pulses per second.

If a value of 0 is used the command will be buffered and executed in the order sent. Buffer(1 Byte). This command will execute immediately if no other command for that channel is executing. The sign indicates which direction the motor will run. . 45 .RoboClaw 2x5A Motor Controller Data Sheet 43 . The command syntax: Send: [Address. This command will execute immediately if no other command for that channel is executing. Any buffered or executing command can be stopped when a new command is issued by setting the Buffer argument. If a value of 1 is used the current running command is stopped. 44 . (c) 2013 Orion Robotics. acceleration and distance value. QSpeed(4 Bytes). All values used are in quad pulses per second. acceleration and distance value. The acceleration and distance values are not signed. Accel(4 bytes).Buffered M2 Drive With Signed Speed. QSpeedM1(4 Bytes). If a value of 1 is used the current running command is stopped. Checksum] 4 Bytes(long) are used to express the pulses per second.Buffered Mix Mode Drive M1 / M2 With Signed Speed And Distance Drive M1 and M2 with a speed and distance value. Each motor channel M1 and M2 have separate buffers. Buffer(1 Byte). Checksum] 4 Bytes(long) are used to express the pulses per second. This command is buffered. Accel(4 bytes). DistanceM1(4 Bytes). otherwise the command will be buffered in the order it was sent. The distance value is not signed. This command will execute immediately if no other command for that channel is executing. Distance(4 Bytes). If a value of 0 is used the command will be buffered and executed in the order sent. This command is used to control the motors top speed. The acceleration and distance values are not signed. Buffer(1 Byte). If a value of 0 is used the command will be buffered and executed in the order sent. Checksum] 4 Bytes(long) are used to express the pulses per second. QSpeed(4 Bytes). The Buffer argument can be set to a 1 or 0. The sign indicates which direction the motor will run. any other commands in the buffer are deleted and the new command is executed. The Buffer argument can be set to a 1 or 0. QSpeedM2(4 Bytes). Each motor channel M1 and M2 have separate buffers. Accel And Distance Drive M2 with a speed. any other commands in the buffer are deleted and the new command is executed. total distanced traveled and at what incremental acceleration value to use until the top speed is reached. Any buffered or executing command can be stopped when a new command is issued by setting the Buffer argument. DistanceM2(4 Bytes). All values used are in quad pulses per second. otherwise the command will be buffered in the order it was sent. Distance(4 Bytes). Any buffered or executing command can be stopped when a new command is issued by setting the Buffer argument. The command syntax: Send: [Address. This command is used to control the motors top speed. CMD. All Rights Reserved.Buffered M1 Drive With Signed Speed. any other commands in the buffer are deleted and the new command is executed. Each motor channel M1 and M2 have separate buffers. The command syntax: Send: [Address. CMD. The sign indicates which direction the motor will run. CMD. total distanced traveled and at what incremental acceleration value to use until the top speed is reached. If a value of 1 is used the current running command is stopped. Accel And Distance Drive M1 with a speed. otherwise the command will be buffered in the order it was sent. All values used are in quad pulses per second. The Buffer argument can be set to a 1 or 0.

5 seconds. This command will execute immediately if no other command for that channel is executing.RoboClaw 2x5A Motor Controller Data Sheet 46 . Send: [Address. The motors are sync during acceleration. CMD. Each motor channel M1 and M2 have separate buffers. AccelM2(4 Bytes). CMD. QSpeedM2(4 bytes). acceleration and distance value. This command is used to drive the motor by quad pulses per second and using an acceleration value for ramping. Buffer(1 Byte). (c) 2013 Orion Robotics. Checksum] 4 Bytes (long) are used to express the pulses per second. The sign indicates which direction the motor will run. Checksum] The return values represent how many commands per buffer are waiting to be executed.Mix Mode Drive M1 / M2 With Signed Speed And Individual Accelerations Drive M1 and M2 in the same command using one value for acceleration and two signed speed values for each motor. Checksum] 4 Bytes(long) are used to express the pulses per second. The command syntax: Send: [Address. If a value of 0 is used the command will be buffered and executed in the order sent. Another example would be an acceleration value of 24. This command can be used to determine how many commands are waiting to execute.Buffered Mix Mode Drive M1 / M2 With Signed Speed. AccelM1(4 Bytes). This command is used to control both motors top speed. A return value of 0 indiciates the last command sent is executing. any other commands in the buffer are deleted and the new command is executed. Accel(4 Bytes). The acceleration value is not signed. Different quadrature encoders will have different rates at which they generate the incoming pulses.Read Buffer Length Read both motor M1 and M2 buffer lengths. otherwise the command will be buffered in the order it was sent.000 QPPS in 0. A value of 0x80 indicates the last command buffered has finished.000 QPPS would accelerate the motor to 12. The Buffer argument can be set to a 1 or 0. Any buffered or executing command can be stopped when a new command is issued by setting the Buffer argument. . Once a value is sent the motor will begin to accelerate incrementally until the rate defined is reached. The values used will differ from one encoder to another. The maximum buffer size per motor is 31 commands. All Rights Reserved.000 QPPS and a speed value of 12. DistanceM1(4 Bytes). An acceleration value of 12. All values used are in quad pulses per second.000 QPPS with a speed of 12. BufferM2(1 Bytes). QSpeedM1(4 Bytes). So 1000 ticks would be counted as 4000 pulses. QspeedM2(4 Bytes). QspeedM1(4 Bytes). CMD] Receive: [BufferM1(1 Bytes). total distanced traveled and at what incremental acceleration value to use until the top speed is reached.000 QPPS in 1 second. The command syntax: Send: [Address. Quadrature encoders send 4 pulses per tick. The acceleration and distance values are not signed. 47 . DistanceM2(4 Bytes). A return value of 0x80(128) indicates the buffer is empty. Accel And Distance Drive M1 and M2 with a speed. 50 . The sign indicates which direction the motor will run. If a value of 1 is used the current running command is stopped.000 QPPS would accelerate a motor from 0 to 12. The acceleration is measured in speed per second.

This command is used to control both motors top speed. Accel(4 Bytes). The acceleration values are not signed. Checksum] 53 .Buffered Mix Mode Drive M1 / M2 With Signed Speed. acceleration and distance value. The command syntax: Send: [Address. Each motor channel M1 and M2 have separate buffers. If a value of 0 is used the command will be buffered and executed in the order sent. QSpeedM1(4 Bytes). The acceleration and distance values are not signed. The command syntax: Send: [Address. AccelM2(4 Bytes). Checksum] 4 Bytes(long) are used to express the pulses per second. Accelm1(4 Bytes). CMD. This command will execute immediately if no other command for that channel is executing. any other commands in the buffer are deleted and the new command is executed. This command is used to drive the motor by PWM and using an acceleration value for ramping. The acceleration value is not signed.Drive M1 With Signed Duty And Acceleration Drive M1 with a signed duty and acceleration value. The command syntax: Send: [Address. DistanceM1(4 Bytes). All values used are in quad pulses per second. The sign indicates which direction the motor will run. Duty(2 bytes). This command is used to drive the motor by PWM using an acceleration value for ramping. The Buffer argument can be set to a 1 or 0. AccelM1(4 Bytes). Any buffered or executing command can be stopped when a new command is issued by setting the Buffer argument.RoboClaw 2x5A Motor Controller Data Sheet 51 . CMD. Accel(4 Bytes). The sign indicates which direction the motor will run. Individual Accel And Distance Drive M1 and M2 with a speed. The command syntax: Send: [Address. DutyM1(2 bytes). If a value of 1 is used the current running command is stopped.Drive M2 With Signed Duty And Acceleration Drive M1 with a signed duty and acceleration value. Buffer(1 Byte). The acceleration values are not signed. . Accel is the rate at which the duty changes from the current duty to the specified dury. AccelM1(4 bytes). All Rights Reserved. The sign indicates which direction the motor will run. QSpeedM2(4 bytes). This command is used to drive the motor by PWM and using an acceleration value for ramping. DutyM2(2 bytes).Mix Mode Drive M1 / M2 With Signed Duty And Acceleration Drive M1 and M2 in the same command using acceleration and duty values for each motor. CMD. CMD. Duty(2 bytes). 52 . Checksum] (c) 2013 Orion Robotics. otherwise the command will be buffered in the order it was sent. The sign indicates which direction the motor will run. Checksum] 54 . DistanceM2(4 Bytes). total distanced traveled and at what incremental acceleration value to use until the top speed is reached. Accel is the rate at which the duty changes from the current duty to the specified dury.

. All Rights Reserved.RoboClaw 2x5A Motor Controller Data Sheet USB Information (c) 2013 Orion Robotics.

In some cases it may be necessairy to set USB mode manually by setting RoboClaw to mode 15. The USB RoboClaw must be externally powered to function correctly. Which means it is not powered from the USB cable.RoboClaw 2x5A Motor Controller Data Sheet USB RoboClaw Power The USB RoboClaw is self powered. This will typically be 1mbit/s. If the master controller (the PC) is powered up the USB RoboClaw will automatically detect it is connected to a powered USB master and will enter USB mode. USB Comport and baudrate The USB RoboClaw will be detected as a CDC Virtual Comport. (c) 2013 Orion Robotics. On Linux or OSX the RoboClaw will be automatically detected as a virtual comport and an appropriate driver will automatically be loaded. The driver is available for download. When connected to a Windows PC a driver must be installed. . All Rights Reserved. It will always communicate at the fastest speed the master and slave device can reach. Unlike a real Comport the USB CDC Virtual Comport does not need a baud rate to be set. USB RoboClaw Connection The USB RoboClaw should have its USB cable connected before powering it up unless USB mode is specifically set (mode 15).

ReadSpeedM1(address. } uint32_t speed1 = roboclaw. //Switch settings: SW3=ON. } uint32_t enc2 = roboclaw. SW4=ON. terminal. terminal. RoboClaw was connected as shown in both packet serial wiring and quadrature encoder wiring diagrams.print(enc2. //Basic Micro RoboClaw Packet Serial Mode.begin(38400). &valid). Connect to the program using a terminal window set to 38400 baud. &status. As the encoder is turned it will update the screen.ReadEncM1(address. &valid).6).print(“Encoder2:”).HEX). &status. terminal.print(“ “). SW5=ON #include “BMSerial.h” #include “RoboClaw. } uint32_t speed2 = roboclaw.HEX).h” #define address 0x80 #define #define #define #define Kp 0x00010000 Ki 0x00008000 Kd 0x00004000 qpps 44000 BMSerial terminal(0.print(“Speed2:”). total ticks and direction of each encoder. if(valid){ terminal. &status. terminal. &valid). terminal.SetM2Constants(address.print(“ “). uint32_t enc1= roboclaw. roboclaw.print(speed2.Ki. terminal.print(enc1. .ReadSpeedM2(address. terminal.HEX).Kd.HEX).Kp. } delay(100). terminal. } terminal. if(valid){ terminal. terminal. roboclaw. (c) 2013 Orion Robotics.HEX). if(valid){ terminal. The example will read the speed.print(“ “).print(“Encoder1:”).HEX).print(“ “).RoboClaw 2x5A Motor Controller Data Sheet Reading Quadrature Encoder .print(“Speed1:”).qpps).print(“ “).print(speed1.print(status. void loop() { uint8_t status.1).begin(38400). terminal.Arduino Example The example was tested with an Arduino Uno. void setup() { terminal. All Rights Reserved.print(“ “).println().qpps).SetM1Constants(address. terminal.Kp. &status. terminal. if(valid){ terminal.Kd. bool valid. The program will display the values of each encoders current count along with each encoder status bit in binary and the direction bit. } roboclaw.Ki.print(status. RoboClaw roboclaw(5.ReadEncM2(address. &valid).

begin(38400). RoboClaw was connected as shown in both packet serial wiring and quadrature encoder wiring diagrams. terminal. bool valid. SW5=ON #include “BMSerial. backward. terminal.RoboClaw 2x5A Motor Controller Data Sheet Speed Controlled by Quadrature Encoders .print(“ “).SetM1Constants(address.begin(38400).1). } (c) 2013 Orion Robotics.h” #include “RoboClaw. uint32_t enc1= roboclaw.SetM2Constants(address.print(“Encoder1:”).Arduino Example The following example was written using an Arduino UNO. RoboClaw roboclaw(5.print(“ “). terminal. roboclaw. &valid).qpps).print(“ “). roboclaw.HEX).ReadEncM2(address. terminal. The example will command a 4wheel robot to move forward.ReadEncM1(address.qpps). All Rights Reserved. void setup() { terminal. terminal. &status.Kp.print(“ “).6).DEC). You can change the speed by adjusting the value of Speed and Speed2 variables.print(status. terminal.Kd. //Switch settings: SW3=ON.Ki. &status.print(enc1. . SW4=ON. //Basic Micro RoboClaw Packet Serial Mode. terminal. &valid). terminal.HEX). if(valid){ terminal.DEC).Kd. if(valid){ terminal.Kp. } void displayspeed(void) { uint8_t status.print(“Encoder2:”).print(status. roboclaw.h” #define address 0x80 #define #define #define #define Kp 0x00010000 Ki 0x00008000 Kd 0x00004000 qpps 44000 BMSerial terminal(0.print(enc2.Ki. right turn and left turn slowly. } uint32_t enc2 = roboclaw.

}while(depth1).depth2).print(“ “). } terminal. terminal. roboclaw.SpeedAccelDistanceM1(address.12000. terminal. } (c) 2013 Orion Robotics.-12000. do{ displayspeed().48000).12000.ReadBuffers(address. if(valid){ terminal.depth1.print(“Speed1:”).SpeedAccelDistanceM1(address. &status.print(speed2. terminal. }while(depth1). roboclaw. &status. . roboclaw. if(valid){ terminal. &valid).DEC). do{ displayspeed().12000. terminal. All Rights Reserved.print(speed1.print(“Speed2:”).ReadSpeedM1(address.print(“ “).ReadSpeedM2(address.println(). &valid).depth1. } uint32_t speed2 = roboclaw.depth2). uint8_t depth1.48000).RoboClaw 2x5A Motor Controller uint32_t speed1 = roboclaw. Data Sheet } void loop() { roboclaw.ReadBuffers(address.DEC).depth2.

000. .000 34 34 150 10 5 3.RoboClaw 2x5A Motor Controller Electrical Characteristics Characteristic Pulse Per Second Main Battery (B+ / B-) Logic Battery (LB+ / LB-) External Current Draw (BEC) Logic Circuit Motor Current Per Channel I/O Input I/O Output Analog Voltage Range Tempature Range Rating PPS VDC VDC mA mA A VDC VDC VDC C 0 -40 0 30 5 Min 0 6 6 12 Typ Data Sheet Max 8. All Rights Reserved.3 2 +125 (c) 2013 Orion Robotics.

RoboClaw and USB RoboClaw are registered trademarks of Basic Micro Inc. No products from Orion Robotics should be used in any medical devices and/or medical situations.com Tech support: support@orionrobotics. Orion Robotics will. unless deemed to be a software issue.orionrobotics. No product should be used in a life support situation. Contact us at support@orionrobotics.com Discussion List A web based discussion board is maintained at http://forums. Copyrights and Trademarks Copyright© 2013 by Orion Robotics. Other trademarks mentioned are registered trademarks of their respective holders. All general syntax and programming questions. or refund the purchase price of the product in question. or consequential damages resulting from use of products manufactured or sold by Orion Robotics or its distributors.com. All Rights Reserved.RoboClaw 2x5A Motor Controller Data Sheet Warranty Orion Robotics warranties its products against defects in material and workmanship for a period of 90 days. All rights reserved. If a defect is discovered. No returns will be accepted without the proper authorization.orionrobotics. replace. Technical Support Technical support is made available by sending an email to support@orionrobotics. .com Web: http://www. repair. Contacts Email: sales@orionrobotics.com. at our discretion. (c) 2013 Orion Robotics. will be referred to the on-line discussion forums.com. Inc. All email will be answered within 48 hours. Disclaimer Orion Robotics cannot be held responsible for any incidental.