MD communication#
The easiest way to communicate with MD controllers is to use a CANdle device connected to a PC. Even though we are aware some customers want to integrate the MD controllers in their product with minimal setup to reduce the costs and the system’s complexity. This manual will guide you through the process of communicating with MD actuators from your custom CAN master controller.
Hardware requirements#
From firmware version 2.5.0 upwards, MDs are capable of either FDCAN mode communication or CAN2.0 compatible mode. FDCAN is a preferred protocol to use, as it allows for far greater flexibility and bandwidth. CAN2.0 is supported but not recommended, as the protocol was not optimized for it, and basic operations and control may require multiple CAN frames to be exchanged, significantly reducing the bandwidth, especially with multiple actuators on a single bus.
FDCAN#
The main requirement for the host system is to be equipped with an FDCAN peripheral (either a built-in one or an external one) and an FDCAN transceiver capable of speeds up to 8Mbps. Lower maximum speed transceivers can be used as well, however for the cost of limited update rates. Depending on your custom setup you should be able to integrate a 120 ohm terminating resistor on both ends of your CAN bus.
CAN2.0#
While MD was designed with FDCAN protocol in mind, CAN2.0 compatibility was introduced. In CAN2.0 mode, the driver can only operate in 1M baudrate, and some registers (that are more than 4 bytes in size) are not available for modification, i.e motorName register. Additionally only some of the Frame Types are supported in this mode - READ_REGISTER_CAN2.0 and WRITE_REGISTER_CAN2.0. In most cases, access in 2.0 mode has to happen 1 register at a time (one register per can frame), with an exception of accessing two U8 type registers. Apart from maximum frame length, the contents of the frames will be the same as in FDCAN version of protocol.
Note
MD controllers can be upgraded to software controlled termination on demand. Please contact us for more information before placing your order.
Communication Structure#
Communication with MD, happen is a strict Master-Slave structure. The MD will never produce a CAN frame by itself, it will only respond to direct commands from a host. Each MD device has configurable CAN ID, that serves as its unique identifier on the CAN bus. There may never be more than one MD with the same CAN ID, as this will lead to conflicts and errors.
All communication with the particular drive will happen only via messages with particular ID. For example:
Note
Host sends a request (command) to drive with Id 100, the drive will execute the command and respond with a CAN frame that also has the ID of 100
The communication stack is based on a register access using two frames - register read and register write. The list of available registers can be found at the end of this chapter. All fields are little-endian - least significant byte first, and all float32 fields are 4 bytes long (32 bit) encoded in IEEE-754 standard.
The MD will response with one of the three possible frame types, based on the hosts’ command:
Register Data frame,
Quick Data frame,
Error frame.
Warning
For pre 3.0.0 firmware versions (v2.5.x),
wrong access, incorrect data values or other communication errors are not reported explicitly.
Command that failed (regardless of the reason), will result in the drive not producing any response.
Generally if the drive does not start producing a CAN frame with 100us of the the last bit of the command,
the host may consider the command has failed.
Frame Structure#
All frames (FDCAN and CAN2.0) are composed in the same fashion. The first byte is a Frame Type, then a padding byte, followed by the contents of a message.
Message contents are similar in both read and write operations. They follow a pattern of repeating sequence: register id (2 bytes) and register value (1-24 bytes depending on a register). The number of registers to be accessed is only limited by a size of message - 64 bytes for FDCAN, and 8 bytes for CAN2.0.
| BYTE 0 | BYTE 1 | BYTE 2-3 | BYTE 4-X | BYTE X+1-X+2 | BYTE X+4-X+Y | ... |
| FRAME ID | PADDING (0x00) | REG ID 1 | VALUE 1 | REG ID 2 | VALUE 2 | ... |
For example, a frame that would read a value of the current position, velocity and torque from a drive, would, have a length of 20 bytes, and look like the following:
| BYTE 0 | BYTE 1 | BYTE 2-3 | BYTE 4-7 | BYTE 8-9 | BYTE 10-13 | BYTE 14-15 | BYTE 16-19 |
| FRAME ID | PADDING (0x00) | regId - mainEncoderPosition | PADDING | regId - mainEncoderVelocity | PADDING | regId - motorTorque | PADDING |
| `0x41 | `0x00 | `0x0063 | `0x00 00 00 00 | `0x0062 | `0x00 00 00 00 | `0x0064 | `0x00 00 00 00 |
Frame Types#
Although there are basically only two possible genres of frames - read and write register - the frames can trigger different behaviours, apart of reading and writing. Here is a brief description of the frame behaviours by their id:
| Frame ID | Name | Description |
| `0x40 | WRITE_REGISTER_LEGACY | performs write operation, and makes the drive respond with legacy response. This is sometimes useful in high frequency control loops, to minimize number of frames exchanged. For frame contents, refer to Write Register Frame . |
| `0x41 | READ_REGISTER | performs read operation, and responds with state of the registers. Refer to Read Register Frame |
| `0x42 | WRITE_REGISTER | performs write operation, and responds with state of the registers AFTER operation. Useful for verification of write operation. For more info, refer to Write Register Frame |
| `0x43 | READ_REGISTER_CAN2.0 | performs read operation, and responds with state of the registers. Works same as Read Register Frame , but is limited to 8 bytes and produces CAN2.0 compatible response. |
| `0x44 | WRITE_REGISTER_CAN2.0 | performs write operation, and responds with state of the registers AFTER operation. Useful for verification of write operation. Works same as Write Register Frame , but is limited to 8 bytes and produces CAN2.0 compatible response. |
| `0xA0 | QUICK DATA (LEGACY Response) | RESPONSE ONLY. A response produced as a result of some frames. Contains data, most commonly required in fast control loops - more info here. |
| `0xA1 | ERROR RESPONSE | RESPONSE ONLY. A response produced as a result of failed register write or read attempt. Contains an error code and failed register id. |
Write register frame#
Write register frame is used to modify values of the user-modifiable registers. Only registers with write access can be modified.
| FRAME NAME | DRIVE ID | LENGTH | BYTE 0 [ID] | BYTE 1 | BYTE 2-3 | BYTE 4-X | BYTE X+1-X+2 | BYTE X+4-X+Y |
| WRITE_REGISTER | 10-1000 | X (64 max) | 0x42 | 0x00 | reg ID | value | reg ID | value |
Params:
regID (uint16) - first register ID (please see the end of this section)
value (uint8/uint16_t/uint32_t/float/char[]) - first register value to be written
regID (uint16) - second register ID (please see the end of this section)
value (uint8/uint16_t/uint32_t/float/char[]) - second register value to be written
… (up to 64 bytes total)
EXAMPLE Write target position and velocity
Command, send from host to MD:
| BYTE 0 | BYTE 1 | BYTE 2-3 | BYTE 4-7 | BYTE 8-9 | BYTE 10-13 |
| FRAME ID | PADDING (0x00) | regId - targetPosition | (float) 0.25 | regId - targetVelocity | (float) -7.4 |
| `0x42 | `0x00 | `0x0150 | `0x3E 80 00 00 | `0x0151 | `0xC0 EC CC CD |
Response, send from MD to Host:
| BYTE 0 | BYTE 1 | BYTE 2-3 | BYTE 4-7 | BYTE 8-9 | BYTE 10-13 |
| FRAME ID | PADDING (0x00) | regId - targetPosition | (float) 0.25 | regId - targetVelocity | (float) -7.4 |
| `0x42 | `0x00 | `0x0150 | `0x3E 80 00 00 | `0x0151 | `0xC0 EC CC CD |
Read Register Frame#
Read register command is used to retrieve certain register values. The actuator will respond with a frame consisting of the addresses and values of the registers issued in the master request. The master request should have the following form:
| FRAME NAME | DRIVE ID | LENGTH | BYTE 0 [ID] | BYTE 1 | BYTE 2-3 | BYTE 4-X | BYTE X+1-X+2 | BYTE X+4-X+Y |
| READ_REGISTER | 10-2000 | X (64 max) | 0x41 | 0x00 | reg ID | 0x00 | reg ID | 0x00 |
When all read operations succeed the `0x00 fields will be filled with appropriate register data when transmitted back to master by the MDxx controller.
| FRAME NAME | DRIVE ID | LENGTH | BYTE 0 [ID] | BYTE 1 | BYTE 2-3 | BYTE 4-X | BYTE X+1-X+2 | BYTE X+4-X+Y |
| Response to register read | 10-2000 | X (64 max) | 0x41 | 0x00 | reg ID | reg value | reg ID | reg value |
EXAMPLE Read MD status and position
Command, send from host to MD:
| BYTE 0 | BYTE 1 | BYTE 2-3 | BYTE 4-5 | BYTE 6-7 | BYTE 8-11 |
| FRAME ID | PADDING (0x00) | regId - quickStatus | PADDING (2 bytes) | regId - mainEncoderPosition | PADDING (4 bytes) |
| `0x41 | `0x00 | `0x0805 | `0x00 00 | `0x0062 | `0x00 00 00 00 |
Response, send from MD to Host:
| BYTE 0 | BYTE 1 | BYTE 2-3 | BYTE 4-5 | BYTE 6-7 | BYTE 8-11 |
| FRAME ID | PADDING (0x00) | regId - quickStatus | status (u16) | regId - mainEncoderPosition | 16.74 (float) |
| `0x41 | `0x00 | `0x0805 | `0x80 00 | `0x0062 | `0x41 85 EB 85 |
Legacy response#
| BYTE 0 | BYTE 1-2 | BYTE 3 | BYTE 4-7 | BYTE 8-11 | BYTE 12-15 | BYTE 16-19 | BYTE 20-23 | |
| NAME | FRAME ID | QUICK STATUS | MOTOR TEMPERATURE | MAIN ENCODER POSITION | MAIN ENCODER VELOCITY | MOTOR TORQUE | OUTPUT ENCODER POSITION | OUTPUT ENCODER VELOCITY |
| TYPE | uint8 | uint16 | uint8 [*C] | float32 [rad] | float32 [rad/s] | float32 [Nm] | float32 [rad] | float32 [rad/s] |
| VALUE | 0x0A | 0x0000 - `0xFFFF | 0 - 255 | - | - | - | - | - |
Error response#
Error response is present in MD firmware v3.0.0 and newer. For older versions (v2.x.x), when the error occurs, no response is produced at all, and error handling must happen via timeout handling.
| BYTE 0 | BYTE 1 | BYTE 2-3 | |
| NAME | FRAME ID | ERROR CODE | REGISTER ID |
| TYPE | uint8 | int8 | uint16 [*C] |
| VALUE | 0xA1 | -255 - 0 | 0x0000 - `0xFFFF |
Error codes are int8 based negative values.
Error Code |
Error Name |
Description |
|---|---|---|
|
NONE |
No error |
|
DEPRECATED |
Register deprecated - can be treated as warning. The call had no effect |
|
INVALID |
Frame composition invalid - usually incorrecy size of frame layout |
|
UNKNOWN |
Register ID unknown - The call has no effect |
|
OUT_OF_RANGE |
Register value was parsed, but was out of acceptable range. Refer to register table below. |
|
ACCESS |
Trying to write to read-only register, or read write-only register |
EXAMPLE Write invalid motor kv
Command, send from host to MD:
| BYTE 0 | BYTE 1 | BYTE 2-3 | BYTE 4-5 |
| FRAME ID | PADDING (0x00) | regId - motorKv | (u16) 65001 |
| `0x42 | `0x00 | `0x001D | `0xFDE9 |
Acceptable range here is 1 - 65000, so value 65001 is out of range, producing error response.
Response, send from MD to Host:
| BYTE 0 | BYTE 1 | BYTE 2-3 |
| FRAME ID | Error Code | RegisterId |
| `0xA1 | `0xFC | `0x001D |
Register Table#
Below is full register list supported by MD drives. The list is being updated regularely as MD firmware releases introduce new features.
Communications#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
canId |
|
RW |
uint32 |
10–2000 |
FDCAN bus ID number |
Active |
canBaudrate |
|
RW |
uint32 |
1M, 2M, 5M, 8M |
FDCAN bus baudrate |
Active |
canWatchdog |
|
RW |
uint16 |
0–2500 [ms] |
FDCAN watchdog timeout |
Active |
canTermination |
|
RW |
uint8 |
0–1 |
Toggle CAN bus termination (only on selected HW revisions) |
Deprecated |
Actuator Parameters#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
motorName |
|
RW |
char[24] |
– |
User-defined motor name. |
Active |
motorPolePairs |
|
RW |
uint32 |
2–225 |
Number of motor pole pairs. |
Active |
motorKt |
|
RW |
float32 |
> 0 |
Motor torque constant (Nm/A). |
Active |
motorIMax |
|
RW |
float32 |
> 0 |
Maximum allowable phase current. |
Active |
motorGearRatio |
|
RW |
float32 |
– |
Gear ratio. Values < 1 indicate a reducer, values > 1 indicate a multiplier (e.g. 2:1 reduction → 0.5). |
Active |
motorTorqueBandwidth |
|
RW |
uint16 |
50–2500 Hz |
Desired torque control bandwidth. |
Active |
motorResistance |
|
RO |
float32 |
5 mΩ–20 Ω |
Measured motor phase resistance (d-axis). |
Active |
motorInductance |
|
RO |
float32 |
5 nH–100 mH |
Measured motor phase inductance (d-axis). |
Active |
motorKV |
|
RW |
uint16 |
0 - 65000 |
Motor speed constant (RPM/V). |
Active |
motorCalibrationMode |
|
RW |
uint8 |
0 or 1 |
Calibration mode ( |
Active |
motorThermistorType |
|
RW |
uint8 |
– |
Connected motor thermistor type. |
Active |
Aux (Output) Encoder#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
outputEncoder |
|
RW |
uint8 |
[0 - 11] |
NONE=0, |
Active |
outputEncoderDir |
|
RW |
float32 |
-1 or 1 |
Aux encoder direction, CCW or CW - automatically set during calibration |
Active |
outputEncoderDir (legacy) |
|
RW |
int8 |
-1 or 1 |
Aux encoder direction, CCW or CW - automatically set during calibration |
up to v2.5.4 |
outputEncoderVelocity |
|
RO |
float32 |
- |
Aux encoder velocity [rad/s], computed @ 5kHz |
Active |
outputEncoderPosition |
|
RO |
float32 |
- |
Aux encoder position [rad], read @ 5kHz |
Active |
outputEncoderMode |
|
RW |
uint8 |
[0;1;2;3;4] |
NONE=0, |
Active |
outputEncoderCalibrationMode |
|
RW |
uint8 |
[0;1] |
FULL=0, |
Active |
Main Encoder#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
mainEncoder (new) |
|
RW |
uint8 |
[0; 1; 3; 8; 9; 10;] |
NONE=0, |
Active |
mainEncoderDir (new) |
|
RW |
float32 |
-1 or 1 |
Main encoder direction, CCW or CW - automatically set during calibration |
Active |
Motion Control#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
motorPosPidKp |
|
RW |
float32 |
- |
Position PID proportional gain |
Active |
motorPosPidKi |
|
RW |
float32 |
- |
Position PID integral gain |
Active |
motorPosPidKd |
|
RW |
float32 |
- |
Position PID derivative gain |
Active |
motorPosPidWindup |
|
RW |
float32 |
- |
Position PID integral windup limit |
Active |
motorVelPidKp |
|
RW |
float32 |
- |
Velocity PID proportional gain |
Active |
motorVelPidKi |
|
RW |
float32 |
- |
Velocity PID integral gain |
Active |
motorVelPidKd |
|
RW |
float32 |
- |
Velocity PID derivative gain |
Active |
motorVelPidWindup |
|
RW |
float32 |
- |
Velocity PID integral windup limit |
Active |
motorImpPidKp |
|
RW |
float32 |
- |
Impedance PD proportional gain |
Active |
motorImpPidKd |
|
RW |
float32 |
- |
Impedance PD derivative gain |
Active |
velocity (was mainEncoderVelocity) |
|
RO |
float32 |
- |
Actuator velocity in rad/s |
Active |
position (was mainEncoderPosition) |
|
RO |
float32 |
- |
Actuator position in rad |
Active |
torque (was motorTorque) |
|
RO |
float32 |
- |
Actuator torque in Nm |
Active |
targetPosition |
|
RW |
float32 |
- |
Sets target position in rad |
Active |
targetVelocity |
|
RW |
float32 |
- |
Sets target velocity in rad/s |
Active |
targetTorque |
|
RW |
float32 |
- |
Sets target torque in Nm |
Active |
System Commands#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
runSaveCmd |
|
WO |
uint8 |
1 to run |
Save non-volatile memory |
Active |
runTestMainEncoderCmd |
|
WO |
uint8 |
1 to run |
Runs main encoder test routine |
Active |
runTestOutputEncoderCmd |
|
WO |
uint8 |
1 to run |
Runs output encoder test routine |
Active |
runCalibrateCmd |
|
WO |
uint8 |
1 to run |
Runs main calibration routine |
Active |
runCalibrateOutputEncoderCmd |
|
WO |
uint8 |
1 to run |
Runs output encoder calibration routine |
Active |
runCalibratePiGains |
|
WO |
uint8 |
1 to run |
Runs current PI loop calibration routine |
Active |
runRestoreFactoryConfig |
|
WO |
uint8 |
1 to run |
Reverts config to factory state |
Active |
runReset |
|
WO |
uint8 |
1 to run |
Resets the controller |
Active |
runClearWarnings |
|
WO |
uint8 |
1 to run |
Clears all warnings |
Active |
runClearErrors |
|
WO |
uint8 |
1 to run |
Clears non-critical errors |
Active |
runBlink |
|
WO |
uint8 |
1 to run |
Blinks onboard LEDs |
Active |
runZero |
|
WO |
uint8 |
1 to run |
Sets new zero position |
Active |
runCanReinit |
|
WO |
uint8 |
1 to run |
Reinitializes CAN peripheral |
Active |
Test Results#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
calOutputEncoderStdDev |
|
RO |
float32 |
- |
Aux encoder test result (standard deviation) |
Active |
calOutputEncoderMinE |
|
RO |
float32 |
- |
Aux encoder test result (min error) |
Active |
calOutputEncoderMaxE |
|
RO |
float32 |
- |
Aux encoder test result (max error) |
Active |
calMainEncoderStdDev |
|
RO |
float32 |
- |
Main encoder test result (standard deviation) |
Active |
calMainEncoderMinE |
|
RO |
float32 |
- |
Main encoder test result (min error) |
Active |
calMainEncoderMaxE |
|
RO |
float32 |
- |
Main encoder test result (max error) |
Active |
Limits#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
maxPosition (was positionLimitMax) |
|
RW |
float32 |
> 0 |
Maximum valid position |
Active |
minPosition (was positionLimitMin) |
|
RW |
float32 |
< 0 |
Minimum valid position |
Active |
maxTorque |
|
RW |
float32 |
> 0 |
Maximum torque |
Active |
maxVelocity |
|
RW |
float32 |
> 0 |
Maximum velocity |
Active |
maxAcceleration |
|
RW |
float32 |
> 0 |
Maximum acceleration |
Active |
maxDeceleration |
|
RW |
float32 |
> 0 |
Maximum deceleration |
Active |
Motion Profiles#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
profileVelocity |
|
RW |
float32 |
- |
up to v2.5.4 - profile velocity |
Discontinued |
profileAcceleration |
|
RW |
float32 |
- |
Profile acceleration |
Active |
profileDeceleration |
|
RW |
float32 |
- |
Profile deceleration |
Active |
quickStopDeceleration |
|
RW |
float32 |
- |
Quick stop deceleration in case of a non-critical error |
Active |
positionWindow |
|
RW |
float32 |
- |
Position window within position is considered to be reached |
Active |
velocityWindow |
|
RW |
float32 |
- |
Velocity window within velocity is considered to be reached |
Active |
State#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
motionModeCommand |
|
WO |
uint8 |
- |
IDLE=0x00, |
Active |
motionModeStatus |
|
RO |
uint8 |
- |
Shows the currently set motion mode |
Active |
state |
|
RW |
uint16 |
- |
Current status of drivers’ state machine |
Active |
GPIO / Add-ons#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
userGpioConfiguration |
|
RW |
uint8 |
- |
0 - OFF, |
Active |
userGpioState |
|
RO |
uint16 |
0 or 1 |
GPIO input state |
Active |
Driver Info#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
shuntResistance |
|
RW |
float32 |
> 0 |
Current sense resistor value. Setting this register to a value that is not coherent with the hardware may damage the controller. In this cases warranty is not respected. |
Outdated |
shuntResistance |
|
RO |
float32 |
> 0 |
Current sense resistance. |
Active |
maxDriverCurrent |
|
RO |
float32 |
> 0 |
Max measurable (peak) current. |
Active |
productionDate |
|
RO |
uint32 |
> 0 |
Production date encoded in ddmmyy format |
Active |
productionBatch |
|
RO |
uint32 |
> 0 |
Production batch code |
Active |
productionUID |
|
RO |
uint32 |
> 0 |
Unique Identifier of MD |
Active |
hardwareRevision |
|
RO |
uint32 |
> 0 |
Hardware revision |
Active |
hardwareType |
|
RO |
uint32 |
> 0 |
Hardware yype id |
Active |
firmwareBuildDate (was buildDate) |
|
RO |
uint32 |
- |
Firmware build date, as ddmmyy number |
Active |
firmwareHash (was commitHash) |
|
RO |
char[8] |
- |
Firmware hash |
Active |
firmwareVersion |
|
RO |
uint32 |
- |
Firmware Version |
Active |
hardwareVersion |
|
RO |
uint8 |
- |
Hardware Version |
Active |
dcBusVoltage |
|
RO |
float32 |
0 - 100V |
Voltage measured on the DC bus |
Active |
Status#
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
quickStatus |
|
RO |
uint16 |
- |
Quick status vector |
Active |
mosfetTemperature |
|
RO |
float32 |
- |
Driver temperature |
Active |
motorTemperature |
|
RO |
float32 |
- |
Motor temperature (if thermistor is mounted) |
Active |
motorShutdownTemp |
|
RW |
uint8 |
- |
Temperature at which the MD will enter IDLE mode |
Active |
mainEncoderStatus (was mainEncoderErrors) |
|
RO |
uint32 |
- |
Main encoder status |
Active |
auxEncoderStatus (was outputEncoderErrors) |
|
RO |
uint32 |
- |
Aux encoder status |
Active |
calibrationStatus (was calibrationErrors) |
|
RO |
uint32 |
- |
Calibration status |
Active |
bridgeStatus (was bridgeErrors) |
|
RO |
uint32 |
- |
Bridge status |
Active |
hardwareStatus (was hardwareErrors) |
|
RO |
uint32 |
- |
Hardware status |
Active |
communicationStatus (was communicationErrors) |
|
RO |
uint32 |
- |
Communication status |
Active |
motionStatus (was motionErrors) |
|
RO |
uint32 |
- |
Motion status |
Active |
miscStatus |
|
RO |
uint32 |
- |
Misc status |
Active |
configStatus |
|
RO |
uint32 |
- |
Config status |
Active |
Deprecated#
These registers have been used in some points in the past, but are now not used or replaced.
Register |
Addr |
R/W |
Type |
Value |
Description |
Status |
|---|---|---|---|---|---|---|
motorKt_a |
|
RW |
float32 |
> 0 |
Optional phase A torque constant. |
Deprecated |
motorKt_b |
|
RW |
float32 |
> 0 |
Optional phase B torque constant. |
Deprecated |
motorKt_c |
|
RW |
float32 |
> 0 |
Optional phase C torque constant. |
Deprecated |
motorFriction |
|
RO |
float32 |
– |
Actuator dynamic friction |
Temporarily disabled |
motorStiction |
|
RO |
float32 |
– |
Actuator static friction |
Temporarily disabled |
outputEncoderDefaultBaud |
|
RW |
uint32 |
115200 |
optional parameter for default output encoder baudrate |
Deprecated |
bridgeType |
|
RO |
uint8 |
- |
type of the mosfet driver |
Deprecated |
homingMode |
|
RW |
uint8 |
- |
Homing Mode |
Temporarily disabled |
homingMaxTravel |
|
RW |
float32 |
- |
Max distance to travel looking for homing point |
Temporarily disabled |
homingVelocity |
|
RW |
float32 |
- |
Target velocity during homing |
Temporarily disabled |
homingTorque |
|
RW |
float32 |
- |
Max torque during homing |
Temporarily disabled |
homingStatus |
|
RO |
uint32 |
- |
Homing status bitfield |
Temporarily disabled |