For your NXT or EV3
Accelerometer, Compass & Gyro
Motor Multiplexers & Controllers
Wireless Control
Sensor Adapters & Multiplexers
RC Servos, Mountings & Pneumatics

Sensor Kits
Flexi-Cables & Cable Extenders
Classroom packs of Flexi-Cables
Plugs and Connectors
Power Options
Other Robotics accessories

EV3 Console Adapter
EV3 Sensor Adapter for NXT or Arduino
EV3 Compatibility Info

Android App for NXT/EV3

Arduino Products
Shields and Controllers

Raspberry Pi Products
For your Raspberry Pi

Connect with us
Shopping Cart
Your cart is empty.

Ordering Information
Our Distributors
World Wide Shipping
How to Order and Pay
Paying by Credit Card
Your satisfaction is important to us
Site Map

Yondering ...
Coming Soon ...
End of Life Products
Robotics related Links

NXT Product Docs and Software
User Guides
EV3 Blocks
API's and Sample Programs
NXT-G Blocks
All Downloads

EV3 Programming Environment
Which Programming Environment do you prefer for EV3?
EV3 Home Edition
EV3 Edu Edition

[View Result]

Votes: 1236
Translate this site
Translate this site: (Courtesy of Google™)
Search Web Pages

Need Quote for your School?
Write e-mail to:
Need Technical Support?
Write e-mail to:
Note your order number in the support request.
You can find order number on your Packing-slip or Order confirmation e-mail.

Proud Supporter of:

Trinity College Fire Fighting Robot Contest.


8623 Mayland Drive
Henrico, VA 23294-4703 USA.
Phone: (804) 767-8116
Fax: (804) 747-5303
Official PayPal Seal
8-channel Servo Controller (I2C-SC8)
Servo controller (I2C-SC8)

The I2C-SC8 is an 8-channel servo controller module. This ESC can control position and speed of the servo individually. I2C-SC8 module can drive up to 8 RC servos at a 24mS refresh rate regardless of the number of servo's used and servo position. It can be operated by sending commands over the I2C bus.

This controller can not be used with Mindstorms NXT.
Power Supply
I2C-SC8 module requires two different power sources. A 5V supply for the logic section and a separate 6v-7.2v supply for the servos. 5V supply comes from I2C bus port and servo supply comes from separate connector for servo power. The logic and servo grounds are internally connected on the PCB. The I2C-SC8 monitors the servo battery voltage, which is available for reading from an internal register.
Supported Servos
Any servo motors with "1500 us neutral" specifications.
The common brands available for this spec are: Hitec, Futaba.

Supported connectors: Futaba-J and Hitec-S compatible plugs.

Look here for details of connectors:
How to connect servo motors
How to connect Servo motors

The servo motors are plugged directly onto the I2C-SC8, with your signal pin towards the thick white line adjacent to the connector.
Control Registers:
Servo Position Register
The position (low byte/high byte) is a 16-bit number, which directly sets the output pulse width in uS. Setting the position to 1500 (1500uS or 1.5mS) will typically set servos to their center position. The range of pulse widths that are normally supported are from 500uS (0.5mS) to 2500uS (2.5mS). Take care though, as it?s easy to make the servo run into internal stops, if you give it pulse widths at the upper or lower extremes.

The registers can also be read back. The position will be the current position of the servo during a speed-controlled movement, so you can track its progress towards the requested position. Setting the servo position to 00 will deactivate the servo output.

Servo Speed Register
The speed register controls the speed at which the servo moves to its new position. The servo pulses are automatically refreshed every 24mS. On power up the Speed registers are set to the EEPROM stored value stored using STORE command.

If the Speed register is zero (0x00) then the servo is simply set to the requested position.
If the Speed register is set to something other than zero then that value is added to the current position every 24mS until the target position is reached. e.g. If you wish to move from 1000 to 2000 and the Speed register is set to 10, then it will take 2.4 seconds to reach the set position. The formula for the time it will take to make the move is: ((Target position-Start position)/Speed Reg)*24mS
Summary of Registers
Control Register:
Control register allows you to change the I2C address of the device as well store and reset the start up conditions. By default, factory shipped I2C-SC8 Servo module has all registers set to 0x00. That is, all the servo are disabled on power up. However you can select the desired start up condition by storing it in the internal EEPROM.

To Store the startup condition write the desired values in the registers, write Set 'S' (0x53) command at control register address (0x00). It takes around 100 ms to store the registers in the EEPROM memory.
To reset to the factory default value (does not reset the I2C address) write the Reset 'R' (0x52) command at control register.

Servo Register:
For precision control of the servos there is the real 16-bit register, which sets the each servo position directly in uS. For low resource controllers the servo's can be controlled by 8-bit extended register set.

Extended registers:
Extended register set allows the quick change in the servo position possible at reduced resolution. Servo timing pulse for extended register set is 500us +8*extended register.
Although extended registers are not direct readable the servo position can be read back using servo position register.

Software Revision Number:
Register 00 contains the software release number.
Current Release Number is 1.0 (0x0a).

Battery Voltage:
Register 0x19 contains the servo battery voltage in 39mV units up to a maximum of 10v.
A battery voltage of 7.2v will read about 184. 6v will read about 154. It is updated every 24mS whether its read or not.

I2C Address:
factory shipped The I2C-SC8 Servo module has address of 0xb0 on the I2C bus. This address can be changed to any thing above 0xa0 for user convenience. At power up the present I2C address is indicated by using Morse code. Control Register allows you to change the I2C address of the device.

Sequence used to change the I2C address is 0xa0 0xaa 0xa5 (new I2C address)
Register Tables

Basic Register Set:

RegisterRead Operation Write Operation
0x00sw versioncontrol reg
0x01Servo 1 speedServo 1 speed
0x02Servo 1 Position low byte in uSServo 1 Position low byte in uS
0x03Servo 1 Position hi byte in uSServo 1 Position hi byte in uS
0x04Servo 2 speedServo 2 speed
0x05Servo 2 Position low byte in uSServo 2 Position low byte in uS
0x06Servo 2 Position hi byte in uSServo 2 Position hi byte in uS
0x07Servo 3 speed Servo 3 speed
0x08Servo 3 Position low byte in uSServo 3 Position low byte in uS
0x09Servo 3 Position hi byte in uSServo 3 Position hi byte in uS
0x0a Servo 4 speedServo 4 speed
0x0bServo 4 Position low byte in uSServo 4 Position low byte in uS
0x0cServo 4 Position hi byte in uSServo 4 Position hi byte in uS
0x0d Servo 5 speedServo 5 speed
0x0eServo 5 Position low byte in uSServo 5 Position low byte in uS
0x0fServo 5 Position hi byte in uSServo 5 Position hi byte in uS
0x10Servo 6 speedServo 6 speed
0x11Servo 6 Position low byte in uSServo 6 Position low byte in uS
0x12Servo 6 Position hi byte in uSServo 6 Position hi byte in uS
0x13 Servo 7 speedServo 7 speed
0x14Servo 7 Position low byte in uSServo 7 Position low byte in uS
0x15Servo 7 Position hi byte in uSServo 7 Position hi byte in uS
0x16 Servo 8 speedServo 8 speed
0x17Servo 8 Position low byte in uSServo 8 Position low byte in uS
0x18Servo 8 Position hi byte in uSServo 8 Position hi byte in uS
0x19battery voltageNone

Extended Register Set:

RegisterRead Operation Write Operation
0x1AN/AServo position 1
0x1bN/AServo position 2
0x1cN/AServo position 3
0x1dN/AServo position 4
0x1eN/AServo position 5
0x1fN/AServo position 6
0x20N/AServo position 7
0x21N/AServo position 8

What's Related
These might interest you as well
Web Pages



Link Manager

Photo Albums