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>