English
English
简体中文
日本語
I2C / Protocol reference
PDF

RoverC-Pro I2C Control Protocol


1. Basic Information

Item Description
Product RoverC-Pro
SKU K036-B
Bus I2C, slave mode
I2C Address (7-bit) 0x38
Recommended Communication Speed 100 ~ 400 kHz
Register Address Width 8 bit
Register Data Width 8 bit

1.1 Access Permissions

Permission Description
R/W Read/write
Reserved Reserved; do not access

1.2 General Access Flow

Register Write

The host sends a 1-byte register address followed by the register data:

START + SlaveAddr(W) + RegAddr + Data + STOP

Register Read

The host first writes the 1-byte register address and then reads the register data:

START + SlaveAddr(W) + RegAddr + RESTART + SlaveAddr(R) + Data + STOP

1.3 Data Types and Byte Order

  • Motor speed uses INT8, with a range of -127 ~ 127.
  • Servo angle uses UINT8, with a range of 0 ~ 180°.
  • Servo pulse width uses UINT16, with a range of 500 ~ 2500 us.
  • Servo pulse width uses big-endian byte order: the high byte is at the lower address and the low byte is at the higher address.

2. Register Overview

Address/Range Name Length Access Default Summary Details
0x00 ~ 0x03 Motor Speed 4 R/W Not specified Four-channel motor speed control 4.1
0x10 ~ 0x11 Servo Angle Control 2 R/W Not specified Two-channel servo angle control 4.2
0x20 ~ 0x23 Servo Pulse Control 4 R/W Not specified Two-channel servo pulse width control 4.3

3. Address Conventions

3.1 Address Regions

Address/Range Region Description
0x00 ~ 0x03 Motor Control Four motor speeds
0x10 ~ 0x11 Servo Angle Control Two servo angles
0x20 ~ 0x23 Servo Pulse Control Two servo pulse widths

3.2 Reserved Addresses

All addresses not listed in Section 2 are undefined in the original protocol and must be treated as Reserved. The host must not read or write these addresses or rely on their returned values or write behavior.


4. Register Details

4.1 Motor Speed

Address Parameter Type/Range Access Description
0x00 Motor1Speed INT8, -127 ~ 127 R/W Motor 1 speed
0x01 Motor2Speed INT8, -127 ~ 127 R/W Motor 2 speed
0x02 Motor3Speed INT8, -127 ~ 127 R/W Motor 3 speed
0x03 Motor4Speed INT8, -127 ~ 127 R/W Motor 4 speed
  • Positive and negative values select the two rotation directions.
  • 127 and -127 represent the maximum speed in each direction.
  • 0 stops the motor.

4.2 Servo Angle Control

Address Parameter Type/Range Access Description
0x10 Servo1Angle UINT8, 0 ~ 180 R/W Servo 1 target angle in °
0x11 Servo2Angle UINT8, 0 ~ 180 R/W Servo 2 target angle in °

Write a value from 0 ~ 180 to set the target angle of a 180° servo.

4.3 Servo Pulse Control

Address Parameter Type Access Description
0x20 Servo1PulseHighByte UINT8 R/W High byte of servo 1 pulse width
0x21 Servo1PulseLowByte UINT8 R/W Low byte of servo 1 pulse width
0x22 Servo2PulseHighByte UINT8 R/W High byte of servo 2 pulse width
0x23 Servo2PulseLowByte UINT8 R/W Low byte of servo 2 pulse width

Combine the pulse width as follows:

pulse_us = (PulseHighByte << 8) | PulseLowByte

The valid range is 500 ~ 2500 us. The default servo control frequency is 50 Hz; 500 ~ 2500 us corresponds to a servo angle of 0 ~ 180°.

For example, to set the servo 1 pulse width to 1500 us:

1500 = 0x05DC
0x20 = 0x05
0x21 = 0xDC

5. Version History

Document Version Date Description
V1.0 2026-08-05 Converted the official RoverC-Pro I2C Control Protocol PDF to structured Markdown without changing the protocol