Skip to content

Revo 2 dexterous hand Communication Protocol Design

The Revo 2 Basic version supports two types of external communication interfaces: RS485 and CAN FD. Design a set of protocols compatible with both communication interfaces, ensuring efficiency, reliability, and ease of expansion while being compatible with different communication protocols.

Communication Interface Features

RS485 Features

  • Communication speed:Up to 10 Mbps, commonly used rate is 9600 bps~1 Mbps。
  • Frame length: Supports variable-length frames, with the maximum frame length constrained by the specific application.
  • Verification method:The software needs to implement CRC16 or checksum verification methods to adapt to complex electromagnetic environments.
  • Communication mode:Half-duplex communication requires a collision detection mechanism.
  • Reliability:Strong anti-interference ability, suitable for long-distance communication.

CAN FD Features

  • Communication speed:The data segment rate can reach 5 Mbps, while the header maintains the traditional CAN speed.
  • Frame length:Supports up to 64-byte data segments, extending CAN's data payload capability.
  • Verification method:Hardware built-in verification, no software implementation required.
  • Communication mode:Compatible with traditional CAN communication devices.

Compatibility Protocol Design

Modbus-RTU Protocol is a master-slave request-response communication protocol, widely used in industrial automation systems. The protocol frame includes an address, function code, data field, and CRC check to ensure the reliability of communication.

Data frame format

Header/Device IDFunction CodeDataCRC16
1byte1byten bytes2 Bytes

Header/Device ID: Device identifier, used to distinguish between different devices. Function Code: Function code, indicating the type of operation requested. Data: Data field, containing the data for the specific operation. CRC16: CRC check, used to verify the integrity of the data.

RS485Compatible Modbus RTU:

RS485 does not define a specific communication protocol itself, but is usually used in conjunction with the Modbus RTU protocol and is widely used for data transmission in industrial automation and monitoring systems.

CANFD Compatible Modbus RTU:

Canfd uses extended frames, and the arbitration frame baud rate is fixed at 1 MbThe data field in the CAN FD protocol can include the Device ID, master ID, and data length in the frame ID, and the data field contains the entire Modbus RTU format.

Host sends frame:

CAN FD ID(29bit)Data (≤64Bytes)
24~28bit 0b00000
16~23bit Device ID
8~15bit Master ID
0 ~7bit Payload len
Header/Device IDFunction CodeDataCRC16

Device response frame

CAN FD ID(29bit)Data (≤64Bytes)
24~28bit 0b00000
16~23bit Device ID
8~15bit Master ID
0 ~7bit Payload len
Header/Device IDFunction CodeDataCRC16

Function code

The function code is used to identify the type of operation requested. Each function code corresponds to a specific operation and is mainly used to read data from the device, write data, or perform other control tasks.

Function CodeDescription
03HRead Holding Registers
06HWrite Single Holding Register
10HWrite Multiple Holding Registers
04HRead Input Registers

Registers

Hand Registers (Control Type)

AddressTypeDescriptionLengthProperties
900Holding RegisterEntry OTA2 bytesW
901Holding RegisterLeft/Right Hand Read2 bytesR
902Holding RegisterInternal Gesture Restore Default2 bytesW
903Holding RegisterRestore Factory Settings2 bytesW
904Holding RegisterBackhand Light Switch2 bytesW/R
905Holding RegisterBuzzer Switch2 bytesW/R
906Holding RegisterVibration Motor Switch2 bytesW/R
910Holding RegisterFactory KEY20Bytes(10 uint16)W/R
920Holding RegisterSN20Bytes(10 uint16)W/R
930Holding RegisterThumb Flex Protection Current2 bytesW/R
931Holding RegisterThumb Aux Protection Current2 bytesW/R
932Holding RegisterIndex Finger Protection Current2 bytesW/R
933Holding RegisterMiddle Finger Protection Current2 bytesW/R
934Holding RegisterRing Finger Protection Current2 bytesW/R
935Holding RegisterLittle Finger Protection Current2 bytesW/R
936Holding RegisterThumb Aux Lock Current2 bytesW/R
937Holding RegisterUnit Mode Setting2 bytesW/R
938Holding RegisterFinger Minimum Position Setting4 bytesW
940Holding RegisterFinger Maximum Position Setting4 bytesW
942Holding RegisterFinger Maximum Speed Setting4 bytesW
944Holding RegisterFinger Maximum Current Setting4 bytesW
946Holding RegisterFinger Minimum Position Reading12 bytesR
952Holding RegisterFinger Maximum Position Reading12 bytesR
958Holding RegisterFinger Maximum Speed Reading12 bytesR
964Holding RegisterFinger Maximum Current Reading12 bytesR
1000Holding RegisterDevice ID2 bytesW/R
1001Holding RegisterRS485 Baud Rate2 bytesW/R
1002Holding RegisterCANFD Baud Rate2 bytesW/R
1003Holding RegisterCANFD arbitration field sample point configuration2bytesW/R
1009Holding RegisterStore Data/Restart2 bytesW/R
1010Holding RegisterMulti-Finger Position Time Control24 bytes (12 uint16)W/R
1022Holding RegisterMulti-Finger Position Speed Control24 bytes (12 uint16)W/R
1034Holding RegisterMulti-Finger Speed Control12 bytes (6 uint16)W/R
1040Holding RegisterMulti-Finger Current Control12 bytes (6 uint16)W/R
1046Holding RegisterMulti-Finger PWM Control12 bytes (6 uint16)W/R
1052Holding RegisterSingle Finger Position Time Control6 bytes (3 uint16)W
1055Holding RegisterSingle Finger Position Speed Control6 bytes (3 uint16)W
1058Holding RegisterSingle Finger Speed Control4 Bytes (2 uint16)W
1060Holding RegisterSingle Finger Current Control4 Bytes (2 uint16)W
1062Holding RegisterSingle Finger PWM Control4 Bytes (2 uint16)W
1064Holding RegisterLED Settings2 bytesW/R
1065Holding RegisterTurbo Mode2 bytesW/R
1066Holding RegisterTurbo Mode Time Parameters4 bytesW/R
1068Holding RegisterPosition Auto-Calibration2 bytesW/R
1069Holding RegisterPosition Calibration2 bytesW
1070Holding RegisterFast Position Control Mode6 bytes (3 uint16)W
1098Holding RegisterACTION_CMD_ID2bytes(1 uint16)W
1099Holding RegisterACTION_STEP_NUMBER2bytes(1 uint16)W/R
1100Holding RegisterACTION_STEP_PARAMS54bytes(27 uint16)W/R
2000Input RegisterActual Position Value12 bytes (6 uint16)R
2006Input RegisterActual Speed Value12 bytes (6 uint16)R
2012Input RegisterActual Current Value12 bytes (6 uint16)R
2018Input RegisterMotor Status12 bytes (6 uint16)R
2025Input RegisterButton Status2 bytesR
3000Input RegisterFW Version20 bytes (10 uint16)R
3010Input RegisterSN20 bytes (10 uint16)R

Register Description

Enter OTA/900

The settings take effect immediately after entering OTA.After entering OTA mode, pass throughUpgrade Agreement perform transmission mirroring.After the transmission is completed, the device enters bootloader mode to copy the firmware. Once the copy is finished, it automatically restarts and enters the normal program.

Parameter SettingMeaning
1Enter OTA mode

Left and Right Hand Reading / 901

To distinguish left and right hands, a register is used to read the current device's hand information.

Register AddressPurposeValue
901Hand Recognition1: Right Hand
2: Left Hand

Restore Default Values for Internal Gesture Sequence /902

Register AddressPurposeTypeWrite ValueFunction Description
902Restore default values for 6 internal gesturesW0x5A5ARestore default values for 6 internal gestures
  • Writing the fixed value 0x5A5A to register 902 can trigger the device to restore all internal gesture sequences to factory default values.
  • Changes take effect and are saved immediately after restoring default gestures, and the default gesture configuration remains even after the device is restarted.

Factory Reset Register /903

Register AddressPurposeTypeWrite ValueFunction Description
903Factory ResetW0xA5A5Performs factory reset
  • Writing the fixed value 0xA5A5 to register 903 can trigger the device to restore factory settings.
  • Default ID:Left hand → Reset to 0x7E(126);Right hand → Reset to 0x7F(127)
  • RS485 Baud rate: Reset to 460800 bps.
  • CAN FD Baud rate: Reset to 5 Mbps.

Backlight Switch /904, Buzzer Switch /905, Vibration Motor Switch /906

Register AddressNameDescriptionValue RangeDefault
904Backlight SwitchControls the back LED light on the hand0: Off
1: On
1
905Buzzer SwitchControls whether the buzzer sounds0: Off
1: On
1
906Vibration Motor SwitchControls whether the vibration motor is enabled (vibration)0: Off
1: On
0

Finger Protection Current Settings / 930-935

Register AddressPurposeCorresponding FingerUnitRangeDefault Value (mA)
930Thumb FLEX Protection CurrentThumb Tip (FLEX)mA100 ~ 1500500
931Thumb AUX Protection CurrentThumb Base (AUX)mA100 ~ 1500500
932Index Finger Protection CurrentIndex FingermA100 ~ 1500500
933Middle Finger Protection CurrentMiddle FingermA100 ~ 1500500
934Ring Finger Protection CurrentRing FingermA100 ~ 1500500
935Little Finger Protection CurrentLittle FingermA100 ~ 1500500
  • This register can perform read and write operations, and is used to read and set the current protection threshold for the fingers.
  • When writing the protection current, writing will be rejected if it exceeds the range.
  • The written protection current is only effective during the current operation; it will automatically revert to the default value upon shutdown or restart.

Thumb AUX lock current /936

Register AddressPurposeTypeUnitRangeDefault Value
936Thumb AUX Lock Current SettingW/RmA100-500200
  • The thumb AUX has no mechanical locking. Due to the rebound force of the wrinkled silicone, it is necessary to maintain the locking state using motor current.

Unit Mode Settings /937

Determine the units of input/output data for all fingers:

ValueMode NameInput/Output Format
0Normalized Mode0-1000 (no unit)
1Physical Unit ModeAngle (°), Speed (°/s), Current (mA)
  • Mode Description:
ModePosition RangeSpeed RangeCurrent Input RangeDescription
Normalized Mode0-1000
(mapped to min-max position)
0-1000
(mapped to max speed)
0-1000
(mapped to max current)
Applicable for unitless control, where the upper computer does not need to care about specific hardware parameters
Physical Units ModeAngle (°)Angular Speed (°/s)Current (mA)Applicable for precise control, where physical values can be set directly

Finger maximum/minimum value settings /938-944

All settings for maximum/minimum positions, maximum speed, and maximum current need carry Motor number + Target value,Each setting occupies 2 bytes of registers.

** Starting address of the register **Parameter typeData format
938Finger Minimum Position (°)[Motor number] [Minimum position value]
940Finger Maximum Position (°)[Motor number] [Maximum position value]
942Finger Maximum Speed (°/s)[Motor number] [Maximum speed value]
944Finger Maximum Current (mA)[Motor number] [Maximum current value]
  • Default values for each finger:
Finger NameMotor NumberDefault Minimum Position (°)Default Maximum Position (°)Default Maximum Speed (°/s)Default Maximum Current (mA)
Thumb Flex059°145°/s1000mA
Thumb Aux190°150°/s1000mA
Index281°130°/s1000mA
Middle381°130°/s1000mA
Ring481°130°/s1000mA
Pinky581°130°/s1000mA

Description:

  • Position angle The minimum and maximum values can be modified.,The default minimum value is 0°, but it can be adjusted dynamically.
  • The minimum values of speed and current are fixed at 0, non-configurable, while the maximum values can be dynamically adjusted.
  • After shutting down, all fingers’s Maximum/minimum position, maximum speed, and maximum current will all restore to default values.

Finger Max/Min Value Readings /946-964

Register AddressPurposeThumb TipThumb BaseIndex FingerMiddle FingerRing FingerLittle Finger
946 - 951Minimum Position Readings (°)946947948949950951
952 - 957Maximum Position Readings (°)952953954955956957
958 - 963Maximum Speed Readings (°/s)958959960961962963
964 - 969Maximum Current Readings (mA)964965966967968969

Description

  1. Minimum/Maximum Position (°): Used to read the range of motion for each finger, where the minimum and maximum angles for each finger can be dynamically adjusted, but take effect only after powering on; they revert to default values after powering off.
  2. Maximum Speed (°/s): Used to read the maximum speed of finger movement, which is configurable, but takes effect only after powering on; it reverts to default values after powering off.
  3. Maximum Current (mA): Used to read the maximum allowable current for the finger drive motor, which is configurable, but takes effect only after powering on; it reverts to default values after powering off.

Modify Device ID / 1000

Modify Device ID. The set range is: 1 - 254.After setting the ID, it takes effect immediately and is saved to flash.

Default ID: Left hand default ID is 0x7e, right hand default ID is 0x7f.

RS485 Device Baud Rate/1001

RS485 device baud rate, you can set the parameters below:

Setting ParametersBaud Rate
0115200
157600
219200
3460800
41000000
52000000
65000000

CANFD Device Baud Rate/1002

The baud rate of the CANFD device can be set with the parameters below

Set ParameterBaud Rate
0100 kbps
1125 kbps
2200 kbps
3250kbps
4400kbps
5500kbps
6800kbps
71Mbps
82Mbps
94Mbps
105Mbps

CANFD Arbitration Field Sampling Point Configuration /1003

CANFD Arbitration domain sampling points can be set with the following parameters

Set parametersBaud rate / Sampling point
01000 kbps 75% Sampling point
11000 kbps 80% Sampling point

** Restart/1009**

Set the Restart/1009 register, and the dexterous hand will restart.

Multiple Finger Position Time Control/1010

Each mechanical hand includes 6 motors, with the thumb driven by 2 motors. The table below lists the correspondence between registers and the motors for each finger.The value of the position register can be in a normalized range of 0 to 1000, or in an actual position range (unit: °).

To achieve a control precision of 0.1°, position values are uniformly scaled by a factor of 10 before being sent (i.e., 1 represents 0.1°). Here, 0 represents fully open, and 1000 represents fully closed.

The expected time register has a value range of 1 to 2000, with units in milliseconds (ms). When the set expected time is less than the fastest execution time allowed by the motor, the motor will operate at maximum speed.

FingerRegister AddressRegister Value
Thumb FlexPosition Register 10100 - 1000 or
Minimum - Maximum Position (°)
Expected Time Register 10111-2000
Thumb AuxPosition Register 10120 - 1000 or
Minimum - Maximum Position (°)
Expected Time Register 10131-2000
Index Finger
Position Register 10140 - 1000 or
Minimum - Maximum Position (°)
Expected Time Register 10151-2000
Middle FingerPosition Register 10160 - 1000 or
Minimum - Maximum Position (°)
Expected Time Register 10171-2000
Ring Finger
Position Register 10180 - 1000 or
Minimum - Maximum Position (°)
Expected Time Register 10191-2000
Little Finger
Position Register 10200 - 1000 or
Minimum - Maximum Position (°)
Expected Time Register 10211-2000

Multiple Finger Position Speed Control / 1022

Each robotic hand consists of 6 motors, with the thumb driven by 2 motors. The table below lists the correspondence between registers and the motors of each finger.The values of the position register can be either in the normalized range of 0 to 1000 or in actual angle range (unit: °).

To achieve a control precision of 0.1°, the position values are uniformly scaled up by a factor of 10 when issued (i.e., 1 represents 0.1°). Here, 0 represents fully open, while 1000 represents fully closed.

The expected speed register can be in a normalized range of 1 to 1000 or in the actual angular speed range (unit: °/s), which is used to control the rotation speed of the fingers.When the set expected speed exceeds the maximum speed of the motor, the motor will operate at its maximum speed.

FingerRegister AddressRegister Value
Thumb FlexPosition Register 10220 - 1000 or
Minimum-Maximum Position (°)
Desired Speed Register 10231 - 1000 or
Desired Speed (1-Maximum Speed °/s)
Thumb AuxPosition Register 10240 - 1000 or
Minimum-Maximum Position (°)
Desired Speed Register 10251 - 1000 or
Desired Speed (1-Maximum Speed °/s)
Index Finger
Position Register 10260 - 1000 or
Minimum-Maximum Position (°)
Desired Speed Register 10271 - 1000 or
Desired Speed (1-Maximum Speed °/s)
Middle FingerPosition Register 10280 - 1000 or
Minimum-Maximum Position (°)
Desired Speed Register 10291 - 1000 or
Desired Speed (1-Maximum Speed °/s)
Ring Finger
Position Register 10300 - 1000 or
Minimum-Maximum Position (°)
Desired Speed Register 10311 - 1000 or
Desired Speed (1-Maximum Speed °/s)
Little Finger
Position Register 10320 - 1000 or
Minimum-Maximum Position (°)
Desired Speed Register 10331 - 1000 or
Desired Speed (1-Maximum Speed °/s)

Multiple Finger Speed Control/1034

The normalization mode is set to a range of -1000 to 1000, and the physical unit mode range is (-maximum speed - miximum speed), where the sign indicates the direction: positive indicates the gripping direction, and negative indicates the releasing direction. The unit of speed value in physical unit mode is: °/s

Register AddressFingerRegister Value
1034Thumb Flex-1000 - 1000 or
Desired Speed (-maximum speed - miximum speed °/s)
1035Thumb Aux-1000 - 1000 or
Desired Speed (-maximum speed - miximum speed °/s)
1036Index Finger-1000 - 1000 or
Desired Speed (-maximum speed - miximum speed °/s)
1037Middle Finger-1000 - 1000 or
Desired Speed (-maximum speed - miximum speed °/s)
1038Ring Finger-1000 - 1000 or
Desired Speed (-maximum speed - miximum speed °/s)
1039Little Finger-1000 - 1000 or
Desired Speed (-maximum speed - miximum speed °/s)

Multi-finger Current Control / 1040

The normalization mode setting range is -1000 to 1000, and the physical unit mode range is (-maximum current - maximum current), where the sign indicates direction: positive for gripping direction and negative for releasing direction. The unit of the current value in physical unit mode is: mA

Register AddressFingerRegister Value
1040Thumb Flex-1000 to 1000 or
expected current (-maximum current - maximum current)
1041Thumb Aux-1000 to 1000 or
expected current (-maximum current - maximum current)
1042Index Finger-1000 to 1000 or
expected current (-maximum current - maximum current)
1043Middle Finger-1000 to 1000 or
expected current (-maximum current - maximum current)
1044Ring Finger-1000 to 1000 or
expected current (-maximum current - maximum current)
1045Little Finger-1000 to 1000 or
expected current (-maximum current - maximum current)

Multi-finger PWM Control / 1046

Finger PWM control, where the symbol indicates direction: positive indicates the gripping direction, and negative indicates the releasing direction.

Register AddressFingerRegister Value
1046Thumb Flex-1000 - 1000
1047Thumb Aux-1000 - 1000
1048Index Finger-1000 - 1000
1049Middle Finger-1000 - 1000
1050Ring Finger-1000 - 1000
1051Little Finger-1000 - 1000

Single Finger Position Time Control / 1052

In order to achieve a control precision of 0.1°, the position values are uniformly amplified by 10 times before being issued (i.e., 1 represents 0.1°).

Register AddressRegister NameRegister Value
1052Finger number0-5
1053position1-1000 or
Minimum - Maximum Position(°)
1054Expected time1- 2000

Single Finger Position Speed Control / 1055

In order to achieve a control precision of 0.1°, the position values are uniformly amplified by 10 times before being sent out in physical quantity mode (i.e., 1 represents 0.1°).

Register AddressRegister NameRegister Value
1055Finger number0-5
1056Position0-1000 or
minimum-Maximum position(°)
1057Expected speed(°/s)1 - 1000 or
Expected speed(1-Maximum speed°/s)

Single Finger Speed Control/1058

Register AddressRegister NameRegister Value
1058Finger number0-5
1059Speed-1000 - 1000 or
Expected speed(-Maximum speed —— Miximum speed°/s)

###Single finger current control / 1060

Register AddressRegister NameRegister Value
1060Finger number0-5
1061Current-1000 - 1000或
Expected current (-maximum current —— maximum current mA)

Single finger PWM control/1062

Register AddressRegister NameRegister Value
1062Finger number0-5
1063PWM-1000-1000

LED Control/1064

Register value

c
uint8_t led_mode = 1;
uint8_t led_color = 2;
uint16_t register_value = ((uint16_t)led_mode << 8) + led_color;
LED MODEDescriptionRegister Value
1LED_MODE_SHUTDOWN1
2LED_MODE_KEEP2
3LED_MODE_BLINK3
4LED_MODE_ONE_SHOT4
5LED_MODE_BLINK0_5HZ5
6LED_MODE_BLINK2HZ6
LED COLORDescriptionRegister Value
1LED_COLOR_R1
2LED_COLOR_G2
3LED_COLOR_RG3
4LED_COLOR_B4
5LED_COLOR_RB5
6LED_COLOR_GB6
7LED_COLOR_RGB7

Turbo Mode/1065

Turbo mode resets to the default off state after power loss.

Register ValueDescription
0Off
1On

Turbo mode time parameters / 1066

Turbo mode is implemented based on the stall feature, where the motor stops moving for a period of time (stall time) after the stall, then switches to a continue motion time, periodically executing stop and continue motion.

Register AddressDescription
1066Stall time, no movement, unit ms, default is 500 ms
1067Continue motion time, unit ms, default is 500 ms

Position Auto Calibration / 1068

Position auto calibration retention register, used to enable or disable the dexterous hand to automatically perform position calibration after power-on. Position calibration refers to the process in which the dexterous hand searches for the starting position of the fingers after power-on, during which all fingers will be activated.

The valid values for this register are 1 and 0, where 1 enables position auto calibration, which is the default state; 0 disables position auto calibration.When position auto calibration is turned off, users need to perform manual position calibration.

There are two ways for manual position calibration: through the Position Calibration (1069) retention register, or by briefly pressing the backlight button after power-on.

Note1: During the position calibration process, if the dexterous hand has a grasped object, there may be a risk of dropping.

Note2: After powering on the dexterous hand, a position calibration must be performed to enable normal control.

Position Calibration/1069

The position calibration hold register; this command is only valid when 'Position Auto Calibration' (1068) is turned off. The valid value for this register is '1', which means to start position calibration.

Fast Position Control Mode/1070-1072

Fast control mode is a high-response mode with simplified inputs, achieving quick finger control by setting the percentage position value (0-100).

Register AddressByte OffsetCorresponding FingerControl ParameterDescription
1070byte0Thumb Base (Aux)Percentage Position (0-100)Position control at maximum speed
1070byte1Thumb Tip (Flex)Percentage Position (0-100)Position control at maximum speed
1071byte0Index FingerPercentage Position (0-100)Position control at maximum speed
1071byte1Middle FingerPercentage Position (0-100)Position control at maximum speed
1072byte0Ring FingerPercentage Position (0-100)Position control at maximum speed
1072byte1Little FingerPercentage Position (0-100)Position control at maximum speed
  • Writing should be completed in one go for 3 registers (1070~1072), which is 6 bytes.
  • The percentage position represents a normalized value relative to the minimum/maximum position range of the finger: 0 indicates the minimum position, and 100 indicates the maximum position.
  • Ultimate goal perspective = Minimum position + percentage * (Maximum position - Minimum position) / 100

Action Sequence ACTION_CMD_ID/1098

Includes commands and action sequence Index. Action sequence

c
uint8_t cmd = 1;
uint8_t id = 2;
uint16_tregister_value = ((uint16_t)cmd << 8) + id;
CMDDescription
1SET_START
2SET_FINISH
3READ_START
4READ_FINISH
5SAVE
6RUN
Action IDDescription
1Built-in open actionW/R
2Built-in fist actionW/R
3Built-in two-finger pinch gestureW/R
4Built-in three-finger pinch gestureW/R
5Built-in side pinch gestureW/R
6Built-in single-finger tap gestureW/R
7Gesture sequence 1W/R
8Gesture sequence 2W/R
9Gesture sequence 3W/R
10Gesture sequence 4W/R
11Gesture sequence 5W/R
12Gesture sequence 6W/R
............W/R
30Gesture sequence 24W/R

Action Step Count Register/1099

Readable and writable, indicates the number of steps included in the action. Maximum of 8.

Action Step Parameter Register/1100Readable and writable, this represents the sequence, time, position, speed, and force parameters in the action step, where position refers to the finger position (°). When the position is set to -1, it indicates that the finger maintains its original angle, and the speed refers to the finger rotation speed (°/s).

Register AddressRegister NameDescription
1100indexIndicates the action sequence, range 0-8W/R
1101duration_msRuntimeW/R
1102ctrl typePosition time control: 1
Position speed control: 2
Current control: 3
Speed control: 4
W/R
1103positions[0]Thumb Flex position valueW/R
1104positions[1]Thumb Aux position valueW/R
1105positions[2]Index position valueW/R
1106positions[3]Middle finger position valueW/R
1107positions[4]Ring finger position valueW/R
1108positions[5]Little finger position valueW/R
1109expect_interval[0]Thumb Flex Position Control Movement TimeW/R
1110expect_interval[1]Thumb Aux Position Control Movement TimeW/R
1111expect_interval[2]Index Finger Position Control Movement TimeW/R
1112expect_interval[3]Middle Finger Position Control Movement TimeW/R
1113expect_interval[4]Ring Finger Position Control Movement TimeW/R
1114expect_interval[5]Little Finger Position Control Movement TimeW/R
1115speed[0]W/R
1116speed[1]W/R
1117speed[2]W/R
1118speed[3]W/R
1119speed[4]W/R
1120speed[5]W/R
1121force[0]
1122force[1]
1123force[2]
1124force[3]
1125force[4]
1126force[5]

Write the action sequence

img

Read action sequence

img

Actual Position Value / 2000

In order to achieve a control precision of 0.1°, the position values in physical quantity mode are uniformly amplified by 10 times before reporting (i.e., 1 represents 0.1°)

Register AddressFingerRegister Value
2000Thumb Flex0 - 1000 or
Actual Angle (°)
2001Thumb Aux0 - 1000 or
Actual Angle (°)
2002Index Finger0 - 1000 or
Actual Angle (°)
2003Middle Finger0 - 1000 or
Actual Angle (°)
2004Ring Finger0 - 1000 or
Actual Angle (°)
2005Little Finger0 - 1000 or
Actual Angle (°)

Actual Speed Values/2006

The speed value indicates the magnitude of speed, and the symbol indicates the direction of the motor finger movement.

Register AddressFingerRegister Value
2006Thumb Flex-1000-1000 or
Actual Speed (°/s)
2007Thumb Aux-1000-1000 or
Actual Speed (°/s)
2008Index Finger-1000-1000 or
Actual Speed (°/s)
2009Middle Finger-1000-1000 or
Actual Speed (°/s)
2010Ring Finger-1000-1000 or
Actual Speed (°/s)
2011Little Finger-1000-1000 or
Actual Speed (°/s)

Actual Current Value/2012

The current value indicates the magnitude of the current, and the symbol indicates the direction of finger movement for the motor.

Register AddressFingerRegister Value
2012Thumb Flex-1000-1000 or
Actual current value (mA)
2013Thumb Aux-1000-1000 or
Actual current value (mA)
2014Index Finger-1000-1000 or
Actual current value (mA)
2015Middle Finger-1000-1000 or
Actual current value (mA)
2016Ring Finger-1000-1000 or
Actual current value (mA)
2017Little Finger-1000-1000 or
Actual current value (mA)

Motor Status/2018

Register AddressFingerRegister Value
2018Thumb Flex0 - 3
2019Thumb Aux0 - 3
2020Index Finger0 - 3
2021Middle Finger0 - 3
2022Ring Finger0 - 3
2023Little Finger0 - 3
Register ValueDescription
0Motor Idle
1Motor Running
2Motor Stalled
3Turbo

Key Status/2025

Read the key status. 0 means not pressed, 1 means pressed.

FW Version/3000

Read firmware version, 10 registers, maximum length of 20 strings.

The string is converted to multiple uint16_t registers in big-endian format.

Big-endian uint16_tCharString
0x302E, 0x302E, 0x342E, 0x530030 2E 30 2E 34 2E 53 000.0.4.S

SN/3010

Read SN version, 10 registers, maximum length of 20 characters.

The string is converted to multiple uint16_t registers in big-endian format.

Big-endian uint16_tCharString
0x534E, 0x3132, 0x3334, 0x3738, 0x3930, 0x3132, 0x3334, 0x350053 4E 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 00SN123456789012345