.co.uk Designer Systems PRODUCT DESIGN AND MANUFACTURING 18 Channel Servo Driver Shield for ArduinoTM and Raspberry-PITM Technical Data DS-SCX18.S Description TM Arduino UNO Shield standard form factor for simple integration into any Arduino project Frees up the ArduinoTM IO lines normally used for servo control I2C interface for simple connection to Arduino or Raspberry-PI Dual on-board 5Volt 3Amp regulators, with heatsinking, for servo power with enable jumpers Sixteen (16) level speed control for each servo Movement complete and soft-start complete status for each servo Global activation control ensures all servos start moving together, important for multi-legged robots I2C address links allow up to four [4] shields to be used together to provide up to 72 servos LVD, RoHS and WEEE compliant product The Designer Systems DSSCX18.S is an eighteen [18] channel RC servo driver with advanced servo control features. Specifically targeted at the Arduino UNO board user [all other Arduino boards supported] and the Raspberry-PI the SCX18.S features high speed I2C communication for easy project integration and smooth speed control. Once connected each servo can be positioned (with speed control), enabled, reversed and soft-started by simply writing a value to an internal register over the connected I2C interface. The SCX18.S caters for the majority of servos by providing a wide pulse width range of 0.50mS to 2.50mS with 8uS per step accuracy and also provides global activation of new servo position, softstart & movement complete registers for superior control. The SCX18.S provides dual high power regulators capable of supplying 5V @ 3A to the connected servos from an external Li-Pol or Ni-MH battery pack of 7.2 to 8.4V and features a disable link to allow the use of low voltage battery packs of 3.6 to 4.8V. The on-board I2C pull-ups are jumper configurable to allow disconnection when connecting to the Raspberry-PI, which has its own pull-ups. Applications The SCX18.S has applications in robotics, including quadruped, hexapod and octopod robots, process control & sensor manipulation when used in conjunction with standard RC servos. Selection Guide Description 18 Channel Servo Driver Shield HS311 Standard hobby servo Part Number DS-SCX18.S DS-HS311 Raspberry-PI, Arduino, NANO, UNO & MEGA are trademark. (c) 2013 Designer Systems CNTRL15.03.13 Revision 1.01 Page 1 of 8 CONTROL MODULES Features Power requirements The DS-SCX18.S takes the power necessary for operation (approx. 225mA) from an external battery or power adaptor or power from the Arduino or Raspberry-PI board. The SCX18 provides three PCB pads, two marked `GND' and one marked `Vin' in the same format as that present on the UNO board, which should be connected to negative and positive battery/power supply terminals respectively. The input voltage range is 4.75 - 16VDC with the internal circuitry being protected against power supply reversal. The two on-board servo regulators provide a clean regulated 5V supply for the connected servos at a maximum current of 3Amps each, the left hand regulator powering servos 1 to 9 and the right hand regulator servos 10-18. The following table indicates if a regulator needs to be enabled or disabled dependant on supply voltage: Status Disabled Enabled Battery pack/supply voltage 3.6V to 4.8V 7.2V to 8.5V The servo regulators are enabled or disabled with on-board double links just above the regulator heat-sinks which can be configured as follows: Enabled (ON): I2C connection 2 The I C connections are marked `SDA' and `SCL' and allow connection to the Arduino UNO board `ANALOG IN' pins 4 and 5 or the Rasperberry-PI GPIO port pins 3 and 5 (see Fig. 2.0) or another I2C Master device. The DS-SCX18.S is fitted with pullup jumpers that can be configured to provide the source current necessary for I2C communication. The following jumpers should normally be set when using the UNO board, as long as the I2C bus does not have existing pull-up's provided by another device. These jumpers MUST be removed when using the Raspberry-PI: SDA SCL PULL UP I2C communication Up to four DS-SCX18.S modules may be connected to the same UNO / Raspberry-PI board or I2C bus and accessed individually using their own individual address. The address is configured with the following jumpers: ADDRESS Refer to the voltage rating of the servos you wish to use before configuring the servo regulator. Connection of the external supply battery / mains adaptor - to the SCX18 module is through a two (2) way pluggable screw terminal block marked `3-8.5VDC @ 6A Max'. Note: This supply is NOT reverse connection protected but is marked with a series of `+++++' signs to denote positive. (c) 1997-2013 Designer Systems INTERFACE 13.04.13 Revision 1.00 The following table shows how the jumpers are placed for the different binary addresses: A0 ON OFF ON OFF N7 N6 N5 SCX I2C address 1. 1 1 1 XX = SCX18 address N4 N3 0 1 N2 X Register address R0 U U B B B B B..B = 0 to 37 U..U = unused on this implementation N1 N0 X 0 B B Servo 1 position R1 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 2 position R3 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 2 control R4 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 3 position R5 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 3 control R6 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) A1 Address xx 00 (default) 01 10 11 There are 37 individual registers that can be written within the SCX18 that control output as follows: Servo 1 control R2 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) A0 Disabled (OFF): To access individual registers a device write must be undertaken by the I2C Master which consists of a Start condition, device ID (`D' bit cleared), register to start write, one or more bytes of data to be written and a stop condition (see Figure 1.0 for I2C write protocol). A1 ON ON OFF OFF The binary address (xx) above is used in conjunction with the device ID 11101xxD to form the complete device address i.e. if both jumpers are left connected (default) then the device address would be 1110100Dbinary. The `D' bit determines if a read or a write to the SCX18 is to be performed. If the `D' bit is set `1' then a register read is performed or if clear `0' a register write. Servo 4 position R7 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 4 control R8 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 5 position R9 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 5 control R10 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 6 position R11 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 6 control R12 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Page 2 of 8 Servo 7 position R13 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 7 control R14 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 8 position R15 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 8 control R16 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 9 position R17 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 9 control R18 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 10 position R19 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 10 control R20 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 11 position R21 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 11 control R22 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 12 position R23 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 12 control R24 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 13 position R25 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 13 control R26 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 14 position R27 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 14 control R28 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 15 position R29 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 15 control R30 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 16 position R31 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 16 control R32 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 17 position R33 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 17 control R34 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo 18 position R35 P P P P P P P P P..P = Servo position 0 to 255 (0.5mS to 2.50mS) Servo 18 control R36 A B C D S S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) Servo global enable register R37 X X X X X..X = Any value X X X Each control register consists of four control bits and a four bit speed control value defined as follows: Bit (A) 128decimal is the operate bit which when set activates the servo being controlled. Bit (B) 64decimal is the reverse bit which reverses the position value for the servo being controlled. Bit (C) 32decimal is the soft-start bit which when set on servo first activation, see operate bit above, feeds position pulses to the servo in a ramping manner until position is attained. Bit (D) 16decimal is the speed control enable bit which when set applies the speed value 0 to 15, contained in the four bits (SSSS) 1,2,4,8 decimal , to the servo being controlled. Once all the required position & control registers have been set a write to the R37 (Global enable register) must be made to activate all the new positions. Example. To set the first nine servos to new positions with servos 1 to 4 running at speed 0 and servos 5 to 8 running at speed 5 in reverse mode, first write: Byte 1 (SCX18 Adr) 11101000binary Byte 2 (Register 0) 0decimal (c) 1997-2013 Designer Systems INTERFACE 13.04.13 Revision 1.00 X Byte 3 (Register 1) Byte 4 (Register 2) Byte 5 (Register 3) Byte 6 (Register 4) Byte 7 (Register 5) Byte 8 (Register 6) Byte 9 (Register 7) Byte 10 (Register 8) Byte 11 (Register 9) Byte 12 (Register 10) Byte 13 (Register 11) Byte 14 (Register 12) Byte 15 (Register 13) Byte 16 (Register 14) Byte 17 (Register 15) Byte 18 (Register 16) 30decimal 144decimal, 90hex 35decimal 144decimal, 90hex 40decimal 144decimal, 90hex 45decimal 144decimal, 90hex 127decimal 213decimal, D5hex 130decimal 213decimal, D5hex 140decimal 213decimal, D5hex 150decimal 213decimal, D5hex then to activate write: Byte 1 (SCX18 Adr) 11101000binary Byte 2 (Register 0) 37decimal Byte 3 (Register 37) 0decimal To read the status registers a device write then read must be undertaken by the OOPic / I2C Master. The write consists of a Start condition, device ID (`D' bit cleared), register to start read and a Stop condition. This is followed by a read, which consists of a Start condition, device ID (`D` bit set), followed by data from the status register and terminated with a Stop condition (see Figure 1.1 for I2C read protocol). Status registers There are 18 registers that can be read within the SCX18 as follows: N7 N6 N5 SCX I2C Address 1. 1 1 1 XX = SCX18 address N4 0 N3 1 N2 X N1 X N0 1 Servo 1 status R0 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 2 status R1 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 3 status R2 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 4 status R3 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 5 status R4 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 6 status R5 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Page 3 of 8 Servo 7 status R6 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 14 status R13 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Bit (C) 32decimal is the soft-start bit which when set indicates that softstart is in progress. Servo 8 status R7 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 15 status R14 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 9 status R8 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 16 status R15 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 10 status R9 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 17 status R16 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 11 status R10 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 18 status R17 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Servo 12 status R11 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) Firmware version R18 M M M M V V V M..M = Firmware major revision number 1-15 V..V = Firmware minor revision number 1-15 Movement complete determination Bit (D) 16decimal is cleared to indicate if the current servo movement has completed. This indication is not derived from mechanical or electrical feedback from the servo being controlled but is a function of the current servo speed selected and position. When the slowest servo speed (0) is selected the determination of movement completion is at its best. This is because the positional change of the servo between its current and final position has been split into many sub-positions which must be attained before the final position is reached. These many subpositions ensure that the mechanical position closely relates to the position requested by the pulse width and therefore the determination of final position (movement complete) will closely relate to mechanical position. As servo speed is increased the error between mechanical position and pulse width position increases and movement completion accuracy is degraded. Servo 13 status R12 A B C D 0 0 0 0 A = Operation (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start (0 - Complete 1 - In-progress) D = Movement (0 - Complete 1 - In-progress) V Bit (A) 128decimal is the operate bit which when set indicates that the servo is operational. Bit (B) 64decimal is the reverse bit which when set indicates that position values written to the servo will be reversed. Electrical Characteristics (TA = 25oC Typical) Parameter Supply Voltage (Servo power) Supply Current (Servo power) Supply Voltage (on-board VCC) Supply Current (on-board VCC) I2C pull-up resistance I2C speed Minimum 3.8 1 4.75 2 - Maximum 12 2x 2800 16 25 4700 400 Units V mA V mA kHz Notes 1,2 3 Minimum -0.5 0 Maximum +30 4.5 Units V A Notes 5 4 Absolute Maximum Ratings Parameter Supply Voltage (Servo power) Supply Current (Servo power) Environmental Parameter Operating Temperature Storage Temperature Humidity Dimensions Weight Immunity & emissions Minimum Maximum Units o 0 70 C o -10 80 C 0 80 % Length 56.25mm, Width 53.5mm, Height 15mm 25g See statement on page 8 Notes: 1.Servo voltage below 5V requires that the servo regulator be disabled (see above). 2.Voltages above 6-12V may require force cooling of the heat-sinks if servo load is high. 3.Values given are based on maximum and minimum loading for each regulator. 4.Values given are for servos being not driven and driven. 5.Value given is based on maximum and minimum loading. (c) 1997-2013 Designer Systems INTERFACE 13.04.13 Revision 1.00 Page 4 of 8 Calculating binary bit values: The registers used above use the binary notation to allow the control of servo operation, reversal, soft-start & speed selection. Each register is made up of eight (8) bits, which can be set or cleared to produce the desired operation, the individual bits having a value associated with them as follows: 128 64 32 16 8 4 2 1 If we take for example one of the servo control registers we can see it is made up of four (4) separate bits A, B, C & D plus a four bit value SSSS: Servo 1 control R1 A B C D S S S A = Operate (0 - Servo disabled 1 - Servo enabled) B = Reverse (0 - Servo normal 1 - Servo reversed) C = Soft-start control (0 - Disabled 1 - Enabled) D = Speed control (0 - Disabled 1 - Enabled) S..S = Servo speed value 0 to 15 (0 = slowest) S Each bit is defined to control a particular function for the servo it controls, so if for example we wanted to enable servo 1 we would need to set bit `A' which controls the servo operation. We know from the bit values defined above that the value associated with the `A' bit is 128, so by writing this value to register 1 we can enable servo 1. If we need to enable additional functions such as the speed control - `D' - as well as the servo enable, the value of this bit is added to the value written to the register i.e. 128 + 16 = 144. In addition we could also add a speed value of 5 that would make the total value 128 + 16 + 5 = 149. ACK ACK ACK 1 1 1 0 1 A1 A0 DATA BYTE STOP REGISTER ADDRESS SCX18 ADDRESS R / W=0 START Figure 1.0 (I2C write protocol) Multiple bytes may be written before the `STOP' condition. Data is written into registers starting at `REGISTER ADDRESS', then `REGISTER ADDRESS' +1, then `REGISTER ADDRESS' +2 etc. Each byte transfer is acknowledged `ACK' by the SCX18 until the `STOP' condition. STOP DATA BYTE 2 NACK ACK R / W=1 ACK ACK DATA BYTE 1 GPM ADDRESS 1 1 1 0 1 A1 A0 ACK 1 1 1 0 1 A1 A0 START REGISTER ADDRESS SCX18 ADDRESS R / W=0 START Figure 1.1 (I2C read protocol) `DATA BYTE 1 & 2' are register values returned from the SCX18. Each byte written is acknowledged `ACK' by the SCX18 , every byte read is acknowledged `ACK' by the I2C Master. A Not-acknowledge `NACK' condition is generated by the I2C Master when it has finished reading. (c) 1997-2013 Designer Systems INTERFACE 13.04.13 Revision 1.00 Page 5 of 8 Figure 2.0 (Connection Schematic for Arduino UNO or Raspberry-Pi I2C communication) OFF 3A M M ax @ 3A 5V @ 5V V0 D 70 _V P1 Raspberry Pi ON OFF ax ON 00 1. C3 C7 R5 R4 18 17 16 15 14 13 12 10 R2 11 8 7 6 5 9 R1 C4 CN1 4 3 2 1 SV V+ GND 3V3 L1 R3 C5 A0 C2 D1 A1 U2 5 ADDRESS 18 Channel Servo Driver with speed control SDA RESET R7 U3 (c) Designer Systems R6 SCL 0 ANALOG IN 1 2 3 4 U1 PULL-UP POWER 5V Gnd Vin ++++ ++++ DS-SCX18.Shield www.arduino.cc U4 C6 1 .0 3 - 8.5VDC @6A Max SDA SCL C1 BLACK RED YELLOW GREEN (c) 1997-2013 Designer Systems INTERFACE 13.04.13 Revision 1.00 Page 6 of 8 Mechanical Specifications - Units millimetres OFF ON OFF 5V V0 D 5V @ @ 3A 3A M ax M ax ON 70 _V 00 1. C3 C7 R5 18 17 R4 16 15 14 13 12 10 R2 11 8 7 6 5 U1 9 R1 C4 CN1 4 3 2 1 SV V+ GND ++++ ++++ R6 R7 DS-SCX18.Shield U3 L1 A0 ADDRESS A1 R3 C5 SDA C2 D1 SCL U2 PULL-UP 18 Channel Servo Driver with speed control (c) Designer Systems 53.50 U4 C6 1 .0 3 - 8.5VDC @6A Max 15.00 C1 56.25 Revision History: 1.00 Release version (c) 1997-2013 Designer Systems INTERFACE 13.04.13 Revision 1.00 Page 7 of 8 WEEE Consumer Notice This product is subject to Directive 2002/96/EC of the European Parliament and the Council of the European Union on Waste of Electrical and Electronic Equipment (WEEE) and, in jurisdictions adopting that Directive, is marked as being put on the market after August 13, 2005, and should not be disposed of as unsorted municipal/public waste. Please utilise your local WEEE collection facilities in the disposition and otherwise observe all applicable requirements. For further information on the requirements regarding the disposition of this product in other languages please visit www.designersystems.co.uk RoHS Compliance This product complies with Directive 2002/95/EC of the European Parliament and the Council of the European Union on the Restriction of Hazardous Substances (RoHS) which prohibits the use of various heavy metals (lead, mercury, cadmium, and hexavalent chromium), polybrominated biphenyls (PBB) and polybrominated diphenyl ethers (PBDE). Declaration of Conformity Copyright 2013 by Designer Systems Ltd Apparatus name / model number DS-SCX18.S Manufacturer Designer Systems, 11 Castle Street, Truro, Cornwall Conformity via Generic Standard EN61000-1 TR1 3AF, United Kingdom Generic Standard EN61000-3 Description of apparatus Robotic interface peripheral Conformity criteria For use only within commercial, residential and light industrial applications We certify that the apparatus identified above conforms to the requirements of Council Directive 2004/108/EC & 2006/95/EC Signed. Date 20/6/13 Having made this declaration the CE mark is affixed to this product, its packaging, manual or warranty. The information appearing in this data sheet is believed to be accurate at the time of publication. However, Designer Systems assumes no responsibility arising from the use of the information supplied. The applications mentioned herein are used solely for the purpose of illustration and Designer Systems makes no warranty or representation that such applications will be suitable without further modification, nor recommends the use of its products for application that may present a risk to human life due to malfunction or otherwise. Designer Systems reserves the right to alter its products without prior notification. (c) 1997-2013 Designer Systems INTERFACE 13.04.13 Revision 1.00 Page 8 of 8