User Guide
9. CAN Protocol Specification
Please refer also to the C++ implementations found on www.githu.com/CPR-Robots
for code examples. The Mover6 has the standard CAN IDs 0x10, 0x20, 0x30, 0x40,
0x50 and 0x60 for the four joint modules.
9.1 Commands
It is important to send the commands with the correct length, otherwise the board
controller will ignore them!
Command
CAN Command
Comments
Reset Error
0x01 0x06
Sets Error Code to 0x04 (Motor not enabled)
SetPosition
0x01 0x08
Send posH in byte 3, posL in byte 4
Typical: 0x01 0x08 0x7D 0x00
To ensure data integrity this command has to be send
twice within the time of 0.5 s to take effect.
Enable Motor
0x01 0x09
Also resets errors
Disable Motor
0x01 0x0A
Set DOut 1
0x01 0x20
Third byte 0x01 for true, 0x00 for false
Set DOut 2
0x01 0x21
See above. DOut 3 and 4 via 0x22 und 0x23
Set parameter
0x02 …
See following table for parameter and standard values
Get Parameter
0x03 0x50
Answer: 8 bytes with 0x50, maxMissedCom-H,
maxMissedCom-L, maxLag-H, maxLag-L, maxCurrent,
maxTorque, torqueBias
0x03 0x51
Answer: parameter of the position control loop
0x51, (P*1000)-H, (P*1000)-L, (I*10000)-H, (I*10000)-L,
(D*1000)-H, (‘D*1000)-L, antiWindUp
0x03 0x52
Answer: parameter of the velocity control loop
0x51, (P*1000)-H, (P*1000)-L, (I*10000)-H, (I*10000)-L,
(D*1000)-H, (‘D*1000)-L, antiWindUp
0x03 0x54
Answer: Working hours.
0x54, workinghours-H, workinghours-L,
workingMinutes, workingSeconds, firmwareVersion1,
firmwareVersion2, 0x00
Set Joint Pos
0x04
See section 9.3
Set Velocity
0x05
See section 9.4