Sub Controller (OpenCR)

Features

Feature

Specifications

CPU

STMicroelectronics 32F746ZGT6 ARM Cortex-M7 32-bit CPU (clocked @ 216MHz) (1MB Flash, 320KB SRAM )

Interface

5x LED , 1 x Buzzer

External ports

ARDUINO UNO R3 Connector

Sensor

3-axis gyroscope, 3-axis accelerometer, supply voltage sensor

Communication

USB Port, 2 x Serial Port, 3 x TTL / 3 x RS485 Ports(for Dynamixel)

ETC

Dynamixel Power Control Unit, Interface board port

 

Mechanical and Environmental Specifications

External supply voltage

7V ~ 24v

Current consumption

Maximum 200mA , Standby 130mA

Dimensions

105.0mm x 75.0mm x 20.0mm

Operation temperature

–65°C to +80 °C

Weight

60g

 

Control Table

Control Table consists of data regarding the current status and operation of OpenCR.

The user can control OpenCR by modifying data in the Control Table with an instruction packet.

EEPROM and RAM

Data in the RAM area will be reset to initial values whenever the power is on while data in the EEPROM area are kept even if the power is down.

Address

Addresses represent the location of data.

To read from or write data to the control table, users should assign the correct address in the Instruction packet.

Access Authorities

OpenCR has two kinds of access authority for data;

Read-only access that are used mainly for sensing, and read-and-write access that are used for controlling.

Initial Values

In case of data in the EEPROM Area, the initial values in the Init column of the below Control Table are factory default settings.

In case of data in the RAM Area, the initial values in the Init column of the below Control Table are applied when the power is on.

Highest/Lowest Byte

In the Control table, some data share an identical name, but they are attached to (L) or (H) at the end of each name to distinguish the address.

This data requires 16-bit, but it is divided into 8-bit each for the addresses of (low) and (high) byte.

These two addresses should be used in a single Instruction Packet.

 

Area

Address (Hex)

Name

Description

Access

Initial Value

(Hex)

 

 

E

E

P

R

O

M

 

 

0 (0X00)

Model Number(L)

model number low byte

R

0(0X00)

1 (0X01)

Model Number(H)

model number high byte

R

116 (0X74)

2 (0X02)

Version of Firmware

firmware version

R

-

3 (0X03)

ID

OpenCR ID

RW

200 (0XC8)

4 (0X04)

Baud Rate

Dynamixel baud rate

RW

1 (0X01)

5 (0X05)

Return Delay Time

Return Delay Time

RW

0 (0X0)

16 (0X10)

Status Return Level

Status Return Level

RW

0 (0X00)

R

A

M

 

24 (0X18)

Dynamixel Power

Dynamixel On/Off

RW

0 (0X00)

25 (0X19)

LED

LED Pannel On/Off

RW

0 (0X00)

26 (0X1A)

LED_RGB(L)

LED 5 low byte

RW

0 (0X00)

27 (0X1B)

LED_RGB(H)

LED 5 high byte

RW

0 (0X00)

28 (0X1C)

Buzzer(L)

LED 6 low byte

RW

0 (0X00)

29 (0X1D)

Buzzer(H)

LED 6 high byte

RW

0 (0X00)

30 (0X1E)

Button

Button status

R

-

31 (0X1F)

Voltage

Power Voltage

R

-

32 (0X20)

Gyro_Z(L)

Gyroscope Z-axis low byte

R

-

33 (0X21)

Gyro_Z(H)

Gyroscope Z-axis high byte

R

-

34 (0X22)

Gyro_Y(L)

Gyroscope Y-axis low byte

R

-

35 (0X23)

Gyro_Y(H)

Gyroscope Y-axis high byte

R

-

36 (0X24)

Gyro_X(L)

Gyroscope X-axis low byte

R

-

37 (0X25)

Gyro_X(H)

Gyroscope X-axis high byte

R

-

38 (0X26)

ACC_X(L)

Accelerometer X-axis low byte

R

-

39 (0X27)

ACC_X(H)

Accelerometer X-axis high byte

R

-

40 (0X28)

ACC_Y(L)

Accelerometer Y-axis low byte

R

-

41 (0X29)

ACC_Y(H)

Accelerometer Y-axis high byte

R

-

42 (0X2A)

ACC_Z(L)

Accelerometer Z-axis low byte

R

-

43 (0X2B)

ACC_Z(H)

Accelerometer Z-axis high byte

R

-

44 (0X2C)

Roll(L)

IMU Roll low byte

R

-

45 (0X2D)

Roll(H)

IMU Roll high byte

R

-

46 (0X2E)

Pitch(L)

IMU Pitch low byte

R

-

47 (0X2F)

Pitch(H)

IMU Pitch high byte

R

-

48 (0X30)

Yaw(L)

IMU Yaw low byte

R

-

49 (0x31)

Yaw(H)

IMU Yaw high byte

R

-

50 (0X32)

IMU_Control

IMU Control

RW

0x00

 

GPIO Pin Assignments

Pin

Assignments

PIN_LED_R

Red LED pin

PIN_LED_G

Green LED pin

PIN_LED_B

Blue LED pin

PIN_LED_1

LED output 1

PIN_LED_2

LED output 2

PIN_LED_3

LED output 3

PIN_BUTTON_S1

Button Input S1

PIN_BUTTON_S2

Button Input S2

PIN_BUTTON_S3

Button Input S3

PIN_BUTTON_S4

Button Input S4 (Reset Dynamixel Power)

 

Address Function Help

EEPROM Area

Model Number

Represents the Model Number.

 

Firmware Version

Represents the firmware version.

 

ID

ID is a unique number to identify each Dynamixel.
Available ID values range from 0 (0x00) to 252 (0xFC) and value 254 (0xFE) is assigned for Broadcasting ID.
If the Broadcast ID is used to transmit instruction Packet, then all Dynamixels will receive the instruction packet.

Do NOT assign an identical ID for DYNAMIXELs in the same network.

 

Baud Rate

Baud Rate represents the communication speed. Baud Rate can be set from 0 (0x00) to 7 (0x07).

Data

Baud Rate[bps]

Target BPS

Margin of Error

1

1000000.0

1000000.0

0.000 %

3

500000.0

500000.0

0.000 %

4

400000.0

400000.0

0.000 %

7

250000.0

250000.0

0.000 %

9

200000.0

200000.0

0.000 %

16

117647.1

115200.0

-2.124 %

34

57142.9

57600.0

0.794 %

103

19230.8

19200.0

-0.160 %

207

9615.4

9600.0

-0.160 %

 

Return Delay Time

Return Delay Time will set a timer to hold a Status Packet transmission for a received Instruction Packet.

This data has a multiplier of 2μsec, therefore set value will be multiplied by 2 microseconds.

For example, if Return Delay Time is set to 10, a Status Packet will be transmitted after 20 microseconds after receiving an Instruction Packet.

Available data values range from 0 (0x00) to 254 (0xFE).

 

Status Return Level

Status Return Level decides whether to return a Status Packet or not for an Instruction Packet.

There are three options as below table.

If an Instruction Packet has a Broadcast ID, Status Packet will not be returned regardless of Status Return Level.

Value

Return of Status Packet

0

  No return against all commands (Except PING Command)

1

  Return only for the READ command

2

  Return for all commands

 

 

RAM Area

Dynamixel Power

Value

Meaning

0

Turn OFF the power of all Dynamixels connected to OpenCR.

1

Turn ON the power of all Dynamixels connected to OpenCR.

 

 

LED

BIT

7

6

5

4

3

2

1

0

Value

X

X

X

X

X

LED_3

LED_2

LED_1

For each set bit, corresponding LED will be turned on.

For each reset bit, corresponding LED will be turned off.

 

LED_RGB

BIT

15

14~10

9~5

4~0

Value

X

LED_B

LED_G

LED_R

Chest LED is a tricolor LED and the color can be represented with RGB values.

 

Buzzer

Value

Description

0 ~ 65535

Frequency(Hz) of Buzzer

If the Buzzer value is set to 0, the buzzer will be turned off.

 

BUTTON STATUS

BIT

7 ~ 4

3

2

1

0

Value

X

BUTTON_S4

BUTTON_S3

BUTTON_S2

BUTTON_S1

For each bit set to 1, the button is being pressed.

For each bit set to 0, the button is released.

 

VOLTAGE

This value stands for the input voltage of the controller with a multiplier of 10.

For example, when 10V is supplied to the controller, the Voltage value will be 100.

 

GYRO X/Y/Z

The following image represents the direction of Gyro axis of OpenCR.

Each arrow represents the orientation of gyroscope axis.

The data range is -2000dps ~ +2000dps.

The following graph shows relation between actual data value and angular velocity value.

 

 

Acceleration X/Y/Z

The following picture represents the direction of accelerometer axis of OpenCR.

Each arrow represents the orientation of accelerometer axis.

The data range is -2g ~ +2g.

The following graph shows relation between actual data value and acceleration value.

 

IMU_Control

This data controls roll / pitch / yaw offset values for the IMU sensor.

BIT

7

6

5

4

3

2

1

0

Value

X

X

X

X

Gyro

Yaw

Pitch

Roll

For each bit set to 1, corresponding roll, pitch, yaw, gyro values will be used for calculating offset values.

The calculation will take for 2 seconds and then each bit will be reset to 0.