TETRIX Servo Motor Expansion Controller Technical Guide

Similar documents
General Description. The TETRIX MAX Servo Motor Expansion Controller features the following:

Arduino Control of Tetrix Prizm Robotics. Motors and Servos Introduction to Robotics and Engineering Marist School

Mercury technical manual

Supported Servos Any servo motors with "1500 us neutral" specifications. The common brands available for this spec are: Hitec, Futaba.

3.3V regulator. JA H-bridge. Doc: page 1 of 7

Serial Servo Controller

Pi Servo Hat Hookup Guide

Lab Exercise 9: Stepper and Servo Motors

Jaguar Motor Controller (Stellaris Brushed DC Motor Control Module with CAN)

PROFINET USER S GUIDE ACSI Servo

HOMANN DESIGNS. DigiSpeed. Instruction manual. Version 1.0. Copyright 2004 Homann Designs.

Megamark Arduino Library Documentation

BlinkRC User Manual. 21 December Hardware Version 1.1. Manual Version 2.0. Copyright 2010, Blink Gear LLC. All rights reserved.

MD04-24Volt 20Amp H Bridge Motor Drive

The SCX18.S provides dual high power regulators capable of supplying 3A to the connected servos from an external Li-Pol or

InfraStruXure Manager v4.x Addendum: Building Management System Integration

Unit 4: Robot Chassis Construction

Training Schedule. Robotic System Design using Arduino Platform

Copley ASCII Interface Programmer s Guide

User's Manual. ServoCenter 4.1. Volume 2: Protocol Reference. Yost Engineering, Inc. 630 Second Street Portsmouth, Ohio

Modern Robotics Inc. Sensor Documentation

UART2PPM. User s Guide. Version 2.04 dated 02/20/16. Gregor Schlechtriem

Tire Temperature and Pressure Monitoring System - Datasheet

IP-OPTODA16CH4. 4 Channels of Optically Isolated 16-Bit D/A Conversion. User Manual. SBS Technologies, Inc. Subject to change without notice.

Brushed DC Motor Control. Module with CAN (MDL-BDC24)

DigiSpeed-SL DC-04. Isolated Control Voltage Generator User s Guide. DigiSpeed PCB Ver:1.0 Firmware Ver: 1.0 Mach3 Ver: Updated: 5.

Compatible Products: LAC L12-SS-GG-VV-P L16-SS-GG-VV-P PQ12-GG-VV-P P16-SS-GG-VV-P T16-SS-GG-VV-P

TIP551. Optically Isolated 4 Channel 16 Bit D/A. Version 1.1. User Manual. Issue December 2009

CMPS09 - Tilt Compensated Compass Module

I2C Encoder. HW v1.2

Spare Parts. Contents. Contents Contents

Servo 8 Torque Board Doc V 1.2

Setup Download the Arduino library (link) for Processing and the Lab 12 sketches (link).

Serial Bus Smart Control servo SCS15 Manual

Introduction to the EXPANSION HUB

MX-64T / MX-64R / MX-64AT / MX-64AR

GP4 PC Servo Control Kit 2003 by AWC

HB-25 Motor Controller (#29144)

RC-WIFI CONTROLLER USER MANUAL

EVDP610 IXDP610 Digital PWM Controller IC Evaluation Board

Adafruit 16-Channel PWM/Servo HAT & Bonnet for Raspberry Pi

Wireless No-Probe Temp Sensor User Guide VERSION 1.3 NOVEMBER 2018

The Allen-Bradley Servo Interface Module (Cat. No SF1) when used with the Micro Controller (Cat. No UC1) can control single axis

Adafruit 16-Channel PWM/Servo HAT for Raspberry Pi

Arduino STEAM Academy Arduino STEM Academy Art without Engineering is dreaming. Engineering without Art is calculating. - Steven K.

Understanding the Arduino to LabVIEW Interface

Adafruit 16-Channel Servo Driver with Arduino

TETRIX PULSE Workshop Guide

TLE5014 Programmer. About this document. Application Note

VEX Robotics Platform and ROBOTC Software. Introduction

DMX Digital-Servo Board

EE 314 Spring 2003 Microprocessor Systems

ECE 511: FINAL PROJECT REPORT GROUP 7 MSP430 TANK

Blue Point Engineering

Balancing Bi-pod Robot

FIRST Robotics Control System

Programming 2 Servos. Learn to connect and write code to control two servos.

Preface. If you have any TECHNICAL questions, add a topic under FORUM section on our website and we'll reply as soon as possible.

Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range

Servo Commander 32 User s Guide

Parts List. Robotic Arm segments ¼ inch screws Cable XBEE module or Wifi module

Know your energy. Modbus Register Map EM etactica Power Meter

Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range

ASCII Programmer s Guide

RC Servo Interface. Figure Bipolar amplifier connected to a large DC motor

SC16A SERVO CONTROLLER

Pololu DRV8835 Dual Motor Driver Kit for Raspberry Pi B+

URM37 V3.2 Ultrasonic Sensor (SKU:SEN0001)

StenBOT Robot Kit. Stensat Group LLC, Copyright 2018

Know your energy. Modbus Register Map EB etactica Power Bar

R PROFLAME Instruction Book Collection

MECHATRONICS IN A BOX

isma-b-w0202 Modbus User Manual GC5 Sp. z o.o. Poland, Warsaw

Introduction to the VEX Robotics Platform and ROBOTC Software

um-pwm1 Pulse-width Modulation Servo Coprocessor Datasheet Release V100 Introduction Features Applications

Computational Crafting with Arduino. Christopher Michaud Marist School ECEP Programs, Georgia Tech

TIP500. Optically Isolated 16 Channel 12 Bit ADC. Version 1.1. User Manual. Issue January 2010

Gertbot Rev September Gertbot. Rev 1.0, 8 September2014

Operating Mode: Serial; (PWM) passive control mode; Autonomous Mode; On/OFF Mode

ArduCAM USB Camera Shield

Wireless Acceleration-Based Movement Sensor User Guide VERSION 1.2 OCTOBER 2018

PWM 180-Pin Probing Board Manual

The rangefinder can be configured using an I2C machine interface. Settings control the

For Experimenters and Educators

Citrus Circuits Fall Workshop Series. Roborio and Sensors. Paul Ngo and Ellie Hass

Devastator Tank Mobile Platform with Edison SKU:ROB0125

XL270 Series 270-Watt AC to DC Power Supplies Rev

InsuLogix T MODBUS Protocol Manual

Workshop 9: First steps in electronics

Quantizer step: volts Input Voltage [V]

Mill One V2 Assembly Manual

INTEGRATED CIRCUITS. MF RC500 Active Antenna Concept. March Revision 1.0 PUBLIC. Philips Semiconductors

InnobotTM User s Manual

CDR-915 Data Radio Module INTEGRATOR S GUIDE

Object Detection for Collision Avoidance in ITS

For this exercise, you will need a partner, an Arduino kit (in the plastic tub), and a laptop with the Arduino programming environment.

가치창조기술. Motors need a lot of energy, especially cheap motors since they're less efficient.

OC-Servo Electronics Technology Co.,Ltd

Mini Hexapodinno. 18-DOF Robot

Adafruit 16-channel PWM/Servo Shield

Transcription:

TETRIX Servo Motor Expansion Controller Technical Guide 44560

Content advising by Paul Uttley. SolidWorks Composer and KeyShot renderings by Tim Lankford, Brian Eckelberry, and Jason Redd. Desktop publishing by Todd McGeorge. 2017 Pitsco, Inc., 915 E. Jefferson, Pittsburg, KS 66762 All rights reserved. This product and related documentation are protected by copyright and are distributed under licenses restricting their use, copying, and distribution. No part of this product or related documentation may be reproduced in any form by any means without prior written authorization of Pitsco, Inc. All other product names mentioned herein might be the trademarks of their respective owners. A downloadable PDF of the most recent version of this guide can be found at https://www.tetrixrobotics.com/tetrix-max-servo-motor-expansion-controller. This device complies with Part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation. V1.0 12/17

TETRIX Servo Motor Expansion Controller Technical Guide General Description The TETRIX MAX Servo Motor Expansion Controller is a servo motor expansion peripheral designed to allow the addition of multiple servo motors to the PRIZM Robotics Controller. The device provides an additional six servo motor output channels and two continuous rotation (CR) servo motor output channels for increased motor control capacity. Additional expansion controllers can be daisy-chained for a total of four motor expansion controllers connected to the PRIZM at one time. The onboard firmware provides a comprehensive set of programmable motor control functions. The TETRIX MAX Servo Motor Expansion Controller features the following: Designed for use with TETRIX PRIZM Robotics Controller. Connects to the PRIZM expansion port, enabling users to control up to six additional R/C servo motors and two additional continuous rotation servo motors. Up to four motor controllers can be connected to the PRIZM expansion port. Additional power and expansion ports support daisy chain configurations. Can be connected to the LEGO EV3 Brick and National Instruments myrio. Software blocks can be downloaded from the product page for this controller at TETRIXrobotics.com. What s Included TETRIX MAX Servo Motor Expansion Controller TETRIX MAX Powerpole Extension Cable Daisy chain data cable

Connections The servo motor expansion controller connects to the PRIZM battery power expansion terminals using the included Powerpole extension cable. The servo controller s data port connects to the PRIZM expansion port using the included data cable. Additional servo controllers can be daisy-chained for increased servo motor channel capacity. Up to four servo controllers can be daisy-chained to a single i2c data bus. The four expansion controllers can be a mix of DC and servo motor expansion controllers. The TETRIX DC Motor Expansion Controllers (44354) can be added to increase the number of DC motor channels for programming and control. Each motor controller in the daisy chain must have a unique i2c address, or ID, in order to communicate. By default, the servo motor expansion controller uses ID Number 2, and the DC motor expansion controller uses ID Number 1. The unique ID of any additional controllers in the daisy chain can be set or changed by using software commands. ID numbers supported by the PRIZM Arduino Library are 1, 2, 3, and 4. There are programming examples in the TETRIX PRIZM Arduino Library that demonstrate how to read a motor controller ID and how to set and change the ID. The operation of the servo controller is very similar to the PRIZM controller because they use comparable command formats. The TETRIX PRIZM Arduino Library has been updated to support the servo motor expansion controller. The TETRIX PRIZM Arduino Library contains several sketches in the examples folder that demonstrate how to program using the servo motor controller and PRIZM. A thorough understanding of how to program using PRIZM and completion of the activities within the TETRIX PRIZM Robotics Controller Programming Guide are highly recommended to better understand the application of the servo motor expansion controller. The appendix provides a detailed description of each function used by the TETRIX PRIZM Arduino Library for interfacing with the servo motor controller. Please be sure to download and install the latest TETRIX PRIZM Arduino Library from the website at TETRIXrobotics.com/PRIZMdownloads. Important Safety Information Caution: Use only a TETRIX battery pack that is equipped with an in-line safety fuse. Failure to do so could result in damage or injury. Connect the TETRIX battery pack to either the top or bottom red/black power inlet row at the battery connection port. Do not connect two battery packs to the PRIZM controller.

Attaching the Servo Motor Expansion Controller The servo motor expansion controller mounting holes are spaced to align with the TETRIX hole pattern. The expansion controller can be attached to the TETRIX building elements using the screw and nut hardware included in the TETRIX robotics sets.

Supported Software and Additional Resources The servo motor expansion controller is designed with flexibility in mind and can interface with any master controller with an i2c communications bus. Pitsco Education provides software support materials and other resources that enable the servo motor controller to interface with the PRIZM controller, the LEGO MINDSTORMS EV3 Brick, and the National Instruments myrio. The servo motor controller can interface with other devices such as Raspberry Pi or Arduino, but software support is not provided. Support for LEGO MINDSTORMS EV3 While the servo motor expansion controller has been designed to work primarily with the TETRIX PRIZM Robotics Controller, it can also be connected directly to the LEGO EV3 Brick for programming and control of TETRIX DC gearhead motors. You will need a TETRIX MAX 12-volt rechargeable battery and power switch kit to supply power to the controller. The daisy chain data cable that comes with the servo motor expansion controller will connect to the EV3 sensor ports. EV3 programming blocks for the servo motor expansion controller is available for free download at TETRIXrobotics.com/TETRIX-MAX-Servo-Motor-Expansion-Controller.

Support for National Instruments myrio In addition, there is support for the National Instruments myrio platform to enable TETRIX servo motor control using the LabVIEW programming language. 34-pin MXP connector to NI myrio +3.3 V expansion port +5 V expansion port Built-in logic-level shifting circuit for connection of TETRIX motor controllers to NI myrio i2c bus 2x Grove sensor family connections LEGO style i2c port connector for connection of TETRIX motor controllers 34-pin NI myrio I/O expansion port GND expansion port 2x Grove sensor family connections A hardware adapter (41306) enables easy connection of the servo controller to the myrio MXP ports. A free downloadable TETRIX LabVIEW control palette and user documentation are available for download at TETRIXrobotics.com/Competition/WRO/Kit_and_Resources.

General Hardware Specifications This section provides details on the communications of the servo motor expansion controller. This information can be used to interface with any master controller with an i2c communications bus. Power: 12 volts DC using TETRIX MAX NiMH fuse-protected battery pack; blue LED power indicator Standard servo ports: 6 total; servo channels 1-6 Continuous rotation (CR) servo ports: 2 total; CR1 and CR2 channels Total servo power limit: 6 volts DC; 6 A max Set servo speed (0-100%) Servo motor control modes: Set servo position (0-180 degrees) Set CR servo state (Spin CW/CCW) Read servo position Battery voltage monitoring: 0-18 volt range Battery connection port: Powerpole type; additional port for daisy-chaining battery power to additional motor controllers i2c data port: 2 ports total sharing the same bus; one port used for input, the second for output to additional daisy-chained motor controllers 6 standard control servo ports 2 data ports Connect to the PRIZM expansion port using the included data cable. 2 continuous rotation servo ports Battery connection port Power is supplied to the controller from the PRIZM battery outlet port using the included Powerpole battery conversion cable.

TETRIX MAX Servo Motor Expansion Controller Library Following is a quick reference for each expansion controller function supported by the TETRIX PRIZM Arduino Library. Note: Unless changed, the default ID# for the servo motor expansion controller is 2. readsvofirmware(id#); setexpid(id#); readexpid(); WDT_STOP(ID#); ControllerEnable(ID#); ControllerReset(ID#); setservospeed(id#, servo#, speed); setservospeeds(id#, speed1, speed2, speed3, speed4, speed5, speed6); setservoposition(id#, servo#, position); setservopositions(id#, position1, position2, position3, position4, position5, position6); setcrservostate(id#, CRservo#, state); readservoposition(id#, servo#); readbatteryvoltage(id#);

TETRIX MAX Servo Motor Controller Arduino Library Functions Chart Please be sure to download and install the latest version of the TETRIX PRIZM Arduino Library for the most up-to-date programming features and functionality. The examples in the Coding Example column are shown for the controller ID# set to 2. The ID# must match the controller or controllers ID# for proper communication. Unless changed, the servo motor expansion controller s default ID# is 2. The first parameter in the function is always the controller ID#. Description Function Coding Example (for controller ID = 2) Read Servo Controller Firmware Version Reads the version number of firmware. readsvofirmware(id#); readsvofirmware(2); Return the servo motor controller s firmware version. Data Type Returned: Set/Change Expansion Controller ID Number Sets/changes the unique i2c ID address of the expansion controller. Read the Expansion Controller ID Number Reads the i2c address/id of the expansion controller. Watchdog Timer Time-Out Forces a watchdog timer reset of the expansion controller s processor. Send Controller Enable Sends an enable byte to the expansion controller to begin receiving motor commands. Send Controller Reset Sends a reset command byte causing the controller s firmware to a full reset. All conditions are set to power-up defaults after a reset occurs. Unsigned integer setexpid(id#); readexpid(); None Data Type Returned: value = integer WDT_STOP(ID#); ControllerEnable(ID#); ControllerReset(ID#); setexpid(3); Set the ID of the connected expansion controller to 3. Important: Only the controller that is being changed can be connected to the i2c bus when calling this function. readexpid(); Return the i2c address/id of the connected expansion controller. Important: Only the controller that is being read can be connected to the i2c bus when calling this function. WDT_STOP(2); Command the expansion controller to do a processor reset. ControllerEnable(2); Send an enable command byte. ControllerReset(2); Send a firmware reset command byte.

Description Function Coding Example (for controller ID = 2) Set Speed of a Servo Motor setservospeed(id#, servo#, speed); setservospeed(2, 1, 25); Sets the speed of a servo motor connected to a servo port 1-6. The speed parameter can be 0 to 100%. The servo motor channel parameter can be any number 1 to 6. If not specified, the speed of a servo defaults to 100 (maximum speed). When a servo speed has been set, it will always move at the set speed until changed. Unless it is changing speeds, it will need to be called only once at the beginning of a program. Set Speeds of All Servo Motors Sets the speeds of all six servo channels simultaneously with a single command. All six speeds are in sequential order and can be 0 to 100%. All six servo speeds may be the same or different. Set Position of a Servo Motor Sets the angular position of a servo motor connected to a servo motor port 1-6. The position parameter can be any value between 0 and 180 degrees. Any value outside this range is ignored. Not all servos are the same, so be careful when operating a servo motor at the extreme ranges. Listen closely; if a servo is buzzing, it is pressing against its mechanical stop, which might damage the motor. If this happens, limit the range to values slightly greater than 0 and slightly less than 180 to avoid damage to the servo motor. servo# = integer speed = integer Data Range: servo# = 1 to 6 speed = 0 to 100 setservospeeds(id#, speed1, speed2, speed3, speed4, speed5, speed6); speed1-speed6 = integer Data Range: speed1-speed6 = 0 to 100 setservoposition(id#, servo#, position); servo# = integer position = integer Data Range: servo# = 1 to 6 position = 0 to 180 Set the speed of servo channel 1 to 25%. setservospeed(2, 2, 50); Set the speed of servo channel 2 to 50%. setservospeeds(2, 25, 25, 25, 25, 25, 25); Set the speeds of all six servo channels to 25%. setservospeeds(2, 25, 35, 45, 55, 65, 75); Servo 1 speed = 25% Servo 2 speed = 35% Servo 3 speed = 45% Servo 4 speed = 55% Servo 5 speed = 65% Servo 6 speed = 75% setservoposition(2, 1, 90); Set the angular position of Servo Motor 1 to 90 degrees. setservoposition(2, 2, 130); Set the angular position of Servo Motor 2 to 130 degrees.

Description Function Coding Example (for controller ID = 2) Set Positions of All Servo Motors Set the angular positions of all six servo motors connected to the servo motor ports 1-6. The position parameter can be any value between 0 and 180 degrees. Any value outside this range is ignored. Not all servos are the same, so be careful when operating a servo motor at the extreme ranges. Listen closely; if a servo is buzzing, it is pressing against its mechanical stop, which might damage the motor. If this happens, limit the range to values slightly greater than 0 and slightly less than 180 to avoid damage to the servo motor. setservopositions(id#, position1, position2, position3, position4, position5, position6); position1-position6 = integer Data Range: position1-position6 = 0 to 180 setservopositions(2, 90, 90, 90, 90, 90, 90); Set the angular positions of all six servo motors connected to the servo ports 1-6 to 90 degrees. setservopositions(2, 10, 20, 30, 40, 50, 60); Set the angular positions of all six servo motors connected to the servo ports 1-6. Servo 1 position = 10 degrees Servo 2 position = 20 degrees Servo 3 position = 30 degrees Servo 4 position = 40 degrees Servo 5 position = 50 degrees Set Continuous Rotation (CR) State Sets the on/off and direction state of a CR servo connected to the CR1 and CR2 ports. A state parameter of -100 equals spin counterclockwise. A state parameter of 100 equals spin clockwise. A state parameter of 0 is off or stop. CRservo# parameter can be 1 or 2, commanding either CR1 or CR2 servo ports. Read a Servo Position Reads the most recent commanded position of a servo motor connected to the servo ports 1-6. The value returned will be 0-180. setcrservostate(id#, CRservo#, state); CRservo# = integer state = integer Data Range: CRservo# = 1 or 2 state = -100, 0, 100 readservoposition(id#, servo#); servo# = integer Data Range: servo# = 1 to 6 Data Type Returned: value = integer (0 to 180) Servo 6 position = 60 degrees setcrservostate(2, 1, 100); Spin CR1 servo continuously clockwise. setcrservostate(2, 1, 0); Stop CR1 servo. setcrservostate(2, 1, -100); Spin CR1 servo continuously counterclockwise. readservoposition(2, 1); Read the most recent commanded position of Servo 1. readservoposition(2, 2); Read the most recent commanded position of Servo 2.

Description Function Coding Example (for controller ID = 2) Read Battery Pack Voltage readbatteryvoltage(id#); readbatteryvoltage(2); Reads the voltage of the TETRIX battery pack powering the expansion controller. The value read is an integer. Data Type Returned: value = integer Read the voltage of the TETRIX battery pack powering the expansion controller. Example: A value of 918 equals 9.18 volts.

In-Depth Technical Specifications TETRIX MAX Servo Motor Expansion Controller Command Register Map Register Name HEX Byte Command Write Bytes Read Bytes R/W Assembled Data Type Description SVO_Firmware 0x26 0 1 unsigned Returns the firmware version. Set_EXP_ID 0x24 1 0 unsigned Sets/changes the i2c address/id of the motor controller. Battery_Voltage 0x53 0 2 unsigned Returns the battery voltage. WDT_STOP 0x23 0 0 none Forces a watchdog timer reset/restart of the motor controller processor. Controller_Enable 0x25 0 0 none Enables the motor controller. Controller_Reset 0x27 0 0 none Signals an internal firmware reset. Servo1_Speed 0x28 1 0 unsigned Sets speed for Servo 1. Servo2_Speed 0x29 1 0 unsigned Sets speed for Servo 2. Servo3_Speed 0x2A 1 0 unsigned Sets speed for Servo 3. Servo4_Speed 0x2B 1 0 unsigned Sets speed for Servo 4. Servo5_Speed 0x2C 1 0 unsigned Sets speed for Servo 5. Servo6_Speed 0x2D 1 0 unsigned Sets speed for Servo 6. Servo_Speeds 0x2E 6 0 unsigned Sets speed for all six servo channels. Servo1_Position 0x2F 1 0 unsigned Sets position of Servo 1. Servo2_Position 0x30 1 0 unsigned Sets position of Servo 2. Servo3_Position 0x31 1 0 unsigned Sets position of Servo 3. Servo4_Position 0x32 1 0 unsigned Sets position of Servo 4. Servo5_Position 0x33 1 0 unsigned Sets position of Servo 5. Servo6_Position 0x34 1 0 unsigned Sets position of Servo 6. Servo_Positions 0x35 6 0 unsigned Sets position of all six servo channels. CR1_Servo_State 0x36 1 0 signed Sets the spin direction of CR Servo 1. CR2_Servo_State 0x37 1 0 signed Sets the spin direction of CR Servo 2. Read_Servo1 0x38 0 1 unsigned Returns the position of Servo 1. Read_Servo2 0x39 0 1 unsigned Returns the position of Servo 2. Read_Servo3 0x3A 0 1 unsigned Returns the position of Servo 3. Read_Servo4 0x3B 0 1 unsigned Returns the position of Servo 4. Read_Servo5 0x3C 0 1 unsigned Returns the position of Servo 5. Read_Servo6 0x3D 0 1 unsigned Returns the position of Servo 6.

Command Register Functions Descriptions SVO_Firmware: Sending the command byte 0x26 returns the servo controller firmware version. The value returned is an unsigned byte. Set_EXP_ID: Sending the command byte 0x24 followed by an ID byte causes the servo motor expansion controller to change its i2c address/id to the value of the ID byte sent. The PRIZM Arduino Library supports up to four controllers in a daisy chain arrangement with IDs ranging from 1 to 4. By default, the servo motor controller ships with the ID set to 2. Additional daisy-chained servo motor expansion controllers must be set to a different ID. See the example sketches in the TETRIX PRIZM Arduino Library for setting controller IDs. Any change to the i2c address/id will be effective upon next power-up of the controller. IDs 0, 5, and 6 may not be used. Battery_Voltage: Sending the command byte 0x53 returns two bytes that when assembled into a 16-bit integer value represent the battery voltage. Actual voltage is the returned value divided by 100. The first byte is the High byte and the second byte is the Low byte. WDT_STOP: Sending the command byte 0x23 forces a watchdog timer reset condition of the servo motor controller s internal processor. When the command is received, the controller will reset after a 15 ms time-out period. When triggered, all servo control register parameters will be set to their default power-up values. Controller_Enable: Sending the command byte 0x25 enables the operation of the servo motor controller. The motor controller must receive an enable command after power-up or a reset in order to receive and execute servo motor commands. If you are using the PRIZM controller, there is no need to send this command to enable the controller. The enable command is automatically sent by the PrizmBegin function in the PRIZM Arduino Library. Controller_Reset: Sending the command byte 0x27 signals a firmware reset. All servo channels will be disabled. A Controller_Enable command will re-enable all channels. Servo1_Speed: Sending the command byte 0x28 enables the speed of Servo 1 to be set. A data byte of 0 to 100 can be written to set the speed parameter of Servo 1 from 0 to 100%. Servo2_Speed: Sending the command byte 0x29 enables the speed of Servo 2 to be set. A data byte of 0 to 100 can be written to set the speed parameter of Servo 2 from 0 to 100%. Servo3_Speed: Sending the command byte 0x2A enables the speed of Servo 3 to be set. A data byte of 0 to 100 can be written to set the speed parameter of Servo 3 from 0 to 100%. Servo4_Speed: Sending the command byte 0x2B enables the speed of Servo 4 to be set. A data byte of 0 to 100 can be written to set the speed parameter of Servo 4 from 0 to 100%. Servo5_Speed: Sending the command byte 0x2C enables the speed of Servo 5 to be set. A data byte of 0 to 100 can be written to set the speed parameter of Servo 5 from 0 to 100%. Servo6_Speed: Sending the command byte 0x2D enables the speed of Servo 6 to be set. A data byte of 0 to 100 can be written to set the speed parameter of Servo 6 from 0 to 100%. Servo_Speeds: Sending the command byte 0x2E enables the speed of servo channels 1-6 to be set all at once. Six data bytes each ranging from 0 to 100 can be written to set the individual speed parameters of all servo channels 1-6 from 0 to 100%. Servo1_Position: Sending the command byte 0x2F enables the position of Servo 1 to be set. A data byte of 0 to 180 can be written to set the position parameter of Servo 1 from 0 to 180 degrees. Servo2_Position: Sending the command byte 0x30 enables the position of Servo 2 to be set. A data byte of 0 to 180 can be written to set the position parameter of Servo 2 from 0 to 180 degrees. Servo3_Position: Sending the command byte 0x31 enables the position of Servo 3 to be set. A data byte of 0 to 180 can be written to set the position parameter of Servo 3 from 0 to 180 degrees. Servo4_Position: Sending the command byte 0x32 enables the position of Servo 4 to be set. A data byte of 0 to 180 can be written to set the position parameter of Servo 4 from 0 to 180 degrees. Servo5_Position: Sending the command byte 0x33 enables the position of Servo 5 to be set. A data byte of 0 to 180 can be written to set the position parameter of Servo 5 from 0 to 180 degrees.

Servo6_Position: Sending the command byte 0x34 enables the position of Servo 6 to be set. A data byte of 0 to 180 can be written to set the position parameter of Servo 6 from 0 to 180 degrees. Servo_Positions: Sending the command byte 0x35 enables the position of servo channels 1-6 to be set all at once. Six data bytes each ranging from 0 to 180 can be written to set the individual position parameters of all servo channels 1-6 from 0 to 180 degrees. CR1_Servo_State: Sending the command byte 0x36 enables the state of Continuous Rotation Servo 1 (CR1) to be set. A data byte of 100 can be written to spin CR1 clockwise. A data byte of -100 will spin CR1 counterclockwise. A data byte value of 0 will stop the motor. CR2_Servo_State: Sending the command byte 0x37 enables the state of Continuous Rotation Servo 2 (CR2) to be set. A data byte of 100 can be written to spin CR2 clockwise. A data byte of -100 will spin CR2 counterclockwise. A data byte value of 0 will stop the motor. Read_Servo1: Sending the command byte 0x38 returns the position of Servo 1. The value returned will be the current angular position of the servo shaft ranging from 0 to 180 degrees. Read_Servo2: Sending the command byte 0x39 returns the position of Servo 2. The value returned will be the current angular position of the servo shaft ranging from 0 to 180 degrees. Read_Servo3: Sending the command byte 0x3A returns the position of Servo 3. The value returned will be the current angular position of the servo shaft ranging from 0 to 180 degrees. Read_Servo4: Sending the command byte 0x3B returns the position of Servo 4. The value returned will be the current angular position of the servo shaft ranging from 0 to 180 degrees. Read_Servo5: Sending the command byte 0x3C returns the position of Servo 5. The value returned will be the current angular position of the servo shaft ranging from 0 to 180 degrees. Read_Servo6: Sending the command byte 0x3D returns the position of Servo 6. The value returned will be the current angular position of the servo shaft ranging from 0 to 180 degrees.

TETRIX Servo Motor Expansion Controller Technical Guide Call Toll-Free 800 835 0686 Visit Us Online at TETRIXrobotics.com