table border=”1” cellpadding=”2” cellspacing=”0” class=”gridlines sheet0” id=”sheet0”
style=”float:center;text-align:center;font-size:11px ;width:100%”>
| canId |
0x001 |
RW |
uint32_t |
[10-2000] |
FDCAN bus id number |
| canBaudrate |
0x002 |
RW |
uint32_t |
[1e6;2e6;5e6;8e6] |
FDCAN bus baudrate |
| canWatchdog |
0x003 |
RW |
uint16_t |
[0-2500] |
FDCAN bus watchdog period in ms |
| canTermination |
0x004 |
RW |
uint8_t |
[0-1] |
CAN termination (available upon request) |
|
|
|
|
|
|
| motorName |
0x010 |
RW |
char[24] |
- |
motor name |
| motorPolePairs |
0x011 |
RW |
uint32_t |
[2;225] |
motor pole pair count |
| motorKt |
0x012 |
RW |
float |
>0 |
motor torque constant |
| motorKt_a |
0x013 |
RW |
float |
>0 |
optional parameter for phase specific torque constant |
| motorKt_b |
0x014 |
RW |
float |
>0 |
optional parameter for phase specific torque constant |
| motorKt_c |
0x015 |
RW |
float |
>0 |
optional parameter for phase specific torque constant |
| motorIMax |
0x016 |
RW |
float |
[1 - peak controller current] |
maximum phase current |
| motorGearRatio |
0x017 |
RW |
float |
- |
actuator gear ratio (ex 2:1 should be 0.5) <1 - reducer >1 - multiplier |
| motorTorqueBandwidth |
0x018 |
RW |
uint16_t |
[50-2500] |
torque bandwidth in Hz |
| motorFriction |
0x019 |
RO |
float32 |
- |
UNUSED |
| motorStiction |
0x01A |
RO |
float32 |
- |
UNUSED |
| motorResistance |
0x01B |
RO |
float |
[5mOhm-20Ohm] |
motor resistance in d axis |
| motorInductance |
0x01C |
RO |
float |
[5nH-100mH] |
motor inductance in d axis |
| motorKV |
0x01D |
RW |
uint16_t |
- |
motor KV rating [RPM/V] |
| motorCalibrationMode |
0x01E |
RW |
uint8_t |
[0;1] |
FULL = 0, NOPPDET = 1 |
| motorThermistorType |
0x01F |
RW |
uint8_t |
- |
- |
|
|
|
|
|
|
| outputEncoder |
0x020 |
RW |
uint8_t |
[0;1;2;3] |
NONE = 0, ME_AS_CENTER = 1, ME_AS_OFFAXIS = 2, MB053SFA17BENT00 = 3, CM_OFFAXIS = 4, M24B_CENTER = 5, M24B_OFFAXIS = 6 |
| outputEncoderDir |
0x021 |
RW |
uint8_t |
0 |
RESERVED |
| outputEncoderDefaultBaud |
0x022 |
RW |
uint32_t |
115200 |
optional parameter for setting default output encoder baudrate |
| outputEncoderVelocity |
0x023 |
RO |
float |
- |
output encoder velocity in rad/s (calculated in a 5kHz loop) |
| outputEncoderPosition |
0x024 |
RO |
float |
- |
output encoder position in rad (read in 5kHz loop) |
| outputEncoderMode |
0x025 |
RW |
uint8_t |
[0;1;2;3;4] |
NONE = 0, STARTUP = 1, MOTION = 2, REPORT = 3, MAIN = 4 |
| outputEncoderCalibrationMode |
0x026 |
RW |
uint8_t |
[0;1] |
FULL = 0, DIRONLY = 1 |
|
|
|
|
|
|
| motorPosPidKp |
0x030 |
RW |
float |
- |
position PID proportional gain |
| motorPosPidKi |
0x031 |
RW |
float |
- |
position PID integral gain |
| motorPosPidKd |
0x032 |
RW |
float |
- |
position PID derivative gain |
| motorPosPidWindup |
0x034 |
RW |
float |
- |
position PID integral windup limit |
|
|
|
|
|
|
| motorVelPidKp |
0x040 |
RW |
float |
- |
velocity PID proportional gain |
| motorVelPidKi |
0x041 |
RW |
float |
- |
velocity PID integral gain |
| motorVelPidKd |
0x042 |
RW |
float |
- |
velocity PID derivative gain |
| motorVelPidWindup |
0x044 |
RW |
float |
- |
velocity PID integral windup limit |
|
|
|
|
|
|
| motorImpPidKp |
0x050 |
RW |
float |
- |
impedance PD proportional gain |
| motorImpPidKd |
0x051 |
RW |
float |
- |
impedance PD derivative gain |
|
|
|
|
|
|
| mainEncoderVelocity |
0x062 |
RO |
float |
- |
main encoder velocity in rad/s (calculated in a 40kHz loop) |
| mainEncoderPosition |
0x063 |
RO |
float |
- |
main encoder position in rad (read in 40kHz loop) |
| motorTorque |
0x064 |
RO |
float |
- |
motor output shaft torque in Nm (read in 40kHz loop) |
|
|
|
|
|
|
|
|
|
|
|
|
| runSaveCmd |
0x080 |
WO |
uint8_t |
other than 0 to run |
save non-volatile memory |
| runTestMainEncoderCmd |
0x081 |
WO |
uint8_t |
other than 0 to run |
runs main encoder test routine |
| runTestOutputEncoderCmd |
0x082 |
WO |
uint8_t |
other than 0 to run |
runs output encoder test routine |
| runCalibrateCmd |
0x083 |
WO |
uint8_t |
other than 0 to run |
runs main calibration routine |
| runCalibrateOutputEncoderCmd |
0x084 |
WO |
uint8_t |
other than 0 to run |
runs output encoder calibration routine |
| runCalibratePiGains |
0x085 |
WO |
uint8_t |
other than 0 to run |
runs current PI loop calibration routine |
| runRestoreFactoryConfig |
0x087 |
WO |
uint8_t |
other than 0 to run |
reverts config to factory state |
| runReset |
0x088 |
WO |
uint8_t |
other than 0 to run |
resets the controller |
| runClearWarnings |
0x089 |
WO |
uint8_t |
other than 0 to run |
clears all warnings |
| runClearErrors |
0x08A |
WO |
uint8_t |
other than 0 to run |
clears non-critical errors |
| runBlink |
0x08B |
WO |
uint8_t |
other than 0 to run |
blinks onboard LEDs |
| runZero |
0x08C |
WO |
uint8_t |
other than 0 to run |
sets new zero position |
| runCanReinit |
0x08D |
WO |
uint8_t |
other than 0 to run |
reinitializes can peripheral |
|
|
|
|
|
|
| calOutputEncoderStdDev |
0x100 |
RO |
float |
- |
output encoder test result (standard deviation) |
| calOutputEncoderMinE |
0x101 |
RO |
float |
- |
output encoder test result (min error) |
| calOutputEncoderMaxE |
0x102 |
RO |
float |
- |
output encoder test result (max error) |
| calMainEncoderStdDev |
0x103 |
RO |
float |
- |
main encoder test result (standard deviation) |
| calMainEncoderMinE |
0x104 |
RO |
float |
- |
main encoder test result (min error) |
| calMainEncoderMaxE |
0x105 |
RO |
float |
- |
main encoder test result (max error) |
|
|
|
|
|
|
| positionLimitMax |
0x110 |
RW |
float |
- |
maximum valid position |
| positionLimitMin |
0x111 |
RW |
float |
- |
minimum valid position |
| maxTorque |
0x112 |
RW |
float |
- |
maximum torque |
| maxVelocity |
0x113 |
RW |
float |
- |
maximum velocity |
| maxAcceleration |
0x114 |
RW |
float |
- |
maximum acceleration |
| maxDeceleration |
0x115 |
RW |
float |
- |
maximum deceleration |
|
|
|
|
|
|
| profileVelocity |
0x120 |
RW |
float |
- |
profile velocity |
| profileAcceleration |
0x121 |
RW |
float |
- |
profile acceleration |
| profileDeceleration |
0x122 |
RW |
float |
- |
profile deceleration |
| quickStopDeceleration |
0x123 |
RW |
float |
- |
quick stop deceleration in case of a non-critical error |
| positionWindow |
0x124 |
RW |
float |
- |
position window within position is considered to be reached |
| velocityWindow |
0x125 |
RW |
float |
- |
velocity window within velocity is considered to be reached |
|
|
|
|
|
|
| motionModeCommand |
0x140 |
WO |
uint8_t |
- |
commands a motion mode change: IDLE = 0x00,
POSITION_PID = 0x01,
VELOCITY_PID = 0x02,
RAW_TORQUE = 0x03,
IMPEDANCE = 0x04,
POSITION_PROFILE = 0x07,
VELOCITY_PROFILE = 0x08 |
| motionModeStatus |
0x141 |
RO |
uint8_t |
- |
shows the currently set motion mode |
| state |
0x142 |
RW |
uint16_t |
- |
returns the internal state machine state of the controller |
|
|
|
|
|
|
| targetPosition |
0x150 |
RW |
float |
- |
sets target position in rad |
| targetVelocity |
0x151 |
RW |
float |
- |
sets target velocity in rad/s |
| targetTorque |
0x152 |
RW |
float |
- |
sets target torque in Nm |
|
|
|
|
|
|
|
|
|
|
|
|
| userGpioConfiguration |
0x160 |
RW |
uint8_t |
- |
0 - OFF, 1 - AUTO-BRAKE, 2 - GPIO INPUT |
| userGpioState |
0x161 |
RO |
uint16_t |
- |
GPIO input state |
|
|
|
|
|
|
| reverseDirection |
0x600 |
RW |
uint8_t |
- |
used to change the direction of the main encoder when using other encoders than the onboard one. Always recalibrate after changing this setting |
|
|
|
|
|
|
| shuntResistance |
0x700 |
RO |
float |
[0.001 - 0.01] |
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. |
|
|
|
|
|
|
| buildDate |
0x800 |
RO |
uint32_t |
- |
software build date |
| commitHash |
0x801 |
RO |
char[8] |
- |
commit hash |
| firmwareVersion |
0x802 |
RO |
uint32_t |
- |
- |
| hardwareVersion |
0x803 |
RO |
uint8_t |
- |
- |
| bridgeType |
0x804 |
RO |
uint8_t |
- |
type of the mosfet driver |
| quickStatus |
0x805 |
RO |
uint16_t |
- |
quick status vector |
| mosfetTemperature |
0x806 |
RO |
float |
- |
power stage temperature |
| motorTemperature |
0x807 |
RO |
float |
- |
motor temperature (if thermistor is mounted) |
| motorShutdownTemp |
0x808 |
RW |
uint8_t |
- |
temperature at which the MD series motor controller will enter IDLE mode |
| mainEncoderErrors |
0x809 |
RO |
uint32_t |
- |
main encoder errors |
| outputEncoderErrors |
0x80A |
RO |
uint32_t |
- |
output encoder errors |
| calibrationErrors |
0x80B |
RO |
uint32_t |
- |
calibration errors |
| bridgeErrors |
0x80C |
RO |
uint32_t |
- |
bridge errors |
| hardwareErrors |
0x80D |
RO |
uint32_t |
- |
hardware errors |
| communicationErrors |
0x80E |
RO |
uint32_t |
- |
communication errors |
| motionErrors |
0x810 |
RO |
uint32_t |
- |
motion errors |
|
|
|
|
|
|
/table>