AQUARM Motor Driver Object Dictionary
This page documents the CANopen Object Dictionary.
Communication Overview
| Item | Value |
|---|
| Protocol | CANopen over Classic CAN / CAN FD |
| Default Node ID | 127 (0x7F) |
| Valid Node ID | 1 ~ 127 |
| SDO request COB-ID | 0x600 + Node ID |
| SDO response COB-ID | 0x580 + Node ID |
| SYNC COB-ID | 0x080 |
| Byte order | Little-endian |
Frequent SDO requests can saturate the CAN bus. Use PDO for cyclic data and SDO for configuration and diagnostics.
Data Types
| Type | Size | Description |
|---|
UNSIGNED8 | 1 byte | 8-bit unsigned integer |
UNSIGNED16 | 2 bytes | 16-bit unsigned integer |
UNSIGNED32 | 4 bytes | 32-bit unsigned integer |
REAL32 | 4 bytes | IEEE 754 single-precision floating point |
VISIBLE_STRING32 | Up to 32 bytes | Segmented SDO upload is supported; segmented download is not supported |
Area and Parameter Storage
The Area column follows the firmware's save_en flag.
- EEPROM: Included in the internal flash parameter payload when parameters are saved.
- RAM: Not included in the saved parameter payload and initialized again at boot or updated at runtime.
Changing an EEPROM-area value through SDO does not immediately write flash.
While the node is in Pre-operational state, write 0x73617665 to 0x1010:00 to save parameters.
Write 0x64616F6C to 0x1011:00 to restore defaults and reset the controller.
Control Mode Values
| Value | Mode | RPDO1 command |
|---|
0 | Idle | None |
1 | Torque Control | 0x2050:01 Torque Reference [N·m] |
2 | Speed Control | 0x2060:01 Speed Reference [rad/s] |
3 | Position Control | 0x2070:01 Position Reference [rad] |
Area (EEPROM, RAM)
| Area | Description |
|---|
| EEPROM | Values in the EEPROM area are preserved even when power is turned off (Non-Volatile). |
| RAM | The RAM area is reset to default values each time power is applied (Volatile). |
CiA 301 Core Objects
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x1000 | 00 | EEPROM | Device Type | UNSIGNED32 | R | 0x4B414354 | KACT |
0x1001 | 00 | RAM | Error Register | UNSIGNED8 | R | 0 | Bit-coded, latched error status |
0x1005 | 00 | EEPROM | COB-ID SYNC | UNSIGNED32 | RW | 0x080 | SYNC message COB-ID |
0x1008 | 00 | RAM | Manufacturer Device Name | VISIBLE_STRING32 | R | KA-RI60-1-KDA | Up to 32 bytes |
0x1009 | 00 | RAM | Manufacturer Hardware Version | VISIBLE_STRING32 | R | HW1.0 | Up to 32 bytes |
0x100A | 00 | RAM | Manufacturer Software Version | VISIBLE_STRING32 | R | SW1.0 | Up to 32 bytes |
0x1010 | 00 | RAM | Save All Parameters | UNSIGNED32 | W | 0 | Key: 0x73617665; Pre-operational only |
0x1011 | 00 | RAM | Restore All Parameters | UNSIGNED32 | W | 0 | Key: 0x64616F6C; restores defaults and resets |
0x1017 | 00 | EEPROM | Producer Heartbeat Time | UNSIGNED16 | RW | 1000 | ms; 0 disables periodic heartbeat |
0x1018 | 00 | RAM | Identity Entry Count | UNSIGNED8 | R | 4 | Highest supported sub-index |
0x1018 | 01 | RAM | Vendor ID | UNSIGNED32 | R | 0 | Not populated by current defaults |
0x1018 | 02 | RAM | Product Code | UNSIGNED32 | R | 1 | — |
0x1018 | 03 | RAM | Revision Number | UNSIGNED32 | R | 1 | — |
0x1018 | 04 | RAM | Serial Number | UNSIGNED32 | R | 1 | — |
Error Register
| Bit | Meaning | Enable / Threshold Source |
|---|
0 | Generic error | Set whenever another active error bit is set |
1 | Overcurrent | 0x20C0:02, threshold 0x20C0:03 |
2 | Under/overvoltage | 0x20C0:04, limits 0x20C0:05 and 0x20C0:06 |
3 | FET or motor overtemperature | 0x20C0:07 through 0x20C0:0A |
4 | Communication error | CAN bus-off controlled by 0x20C0:0B |
5 | Device-profile-specific error | Encoder status controlled by 0x20C0:0C |
6 | Reserved | Always 0 |
7 | Manufacturer-specific error | Gate-driver fault controlled by 0x20C0:0D |
RPDO Communication and Mapping
Mapping values use index (16 bit) | sub-index (8 bit) | length (8 bit).
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x1400 | 00 | EEPROM | RPDO1 Communication Entry Count | UNSIGNED8 | R | 2 | — |
0x1400 | 01 | EEPROM | RPDO1 COB-ID | UNSIGNED32 | RW | 0x200 for Node 1–16; otherwise 0x200 + Node ID | Synchronized after Node ID changes |
0x1400 | 02 | EEPROM | RPDO1 Transmission Type | UNSIGNED8 | RW | 1 | Synchronous |
0x1600 | 00 | EEPROM | RPDO1 Mapping Count | UNSIGNED8 | R | Dynamic: 0 or 1 | Determined by Control Mode |
0x1600 | 01 | EEPROM | RPDO1 Mapping 1 | UNSIGNED32 | R | Dynamic | Torque, speed, or position reference |
0x1600 | 02 | EEPROM | RPDO1 Mapping 2 | UNSIGNED32 | R | 0 | Unused |
0x1401 | 00 | EEPROM | RPDO2 Communication Entry Count | UNSIGNED8 | R | 2 | — |
0x1401 | 01 | EEPROM | RPDO2 COB-ID | UNSIGNED32 | RW | 0x300 + Node ID | — |
0x1401 | 02 | EEPROM | RPDO2 Transmission Type | UNSIGNED8 | RW | 255 | Event-driven |
0x1601 | 00 | EEPROM | RPDO2 Mapping Count | UNSIGNED8 | RW | 2 | — |
0x1601 | 01 | EEPROM | RPDO2 Mapping 1 | UNSIGNED32 | RW | 0x20100108 | Control Mode, 8 bit |
0x1601 | 02 | EEPROM | RPDO2 Mapping 2 | UNSIGNED32 | RW | 0x20100208 | Run, 8 bit |
0x1601 | 03–08 | EEPROM | RPDO2 Mapping 3–8 | UNSIGNED32 | RW | 0 | Available mapping slots |
0x1402 | 00 | EEPROM | RPDO3 Communication Entry Count | UNSIGNED8 | R | 2 | — |
0x1402 | 01 | EEPROM | RPDO3 COB-ID | UNSIGNED32 | RW | 0x400 + Node ID | — |
0x1402 | 02 | EEPROM | RPDO3 Transmission Type | UNSIGNED8 | RW | 255 | Event-driven |
0x1602 | 00 | EEPROM | RPDO3 Mapping Count | UNSIGNED8 | RW | 0 | Disabled by default |
0x1602 | 01–08 | EEPROM | RPDO3 Mapping 1–8 | UNSIGNED32 | RW | 0 | Available mapping slots |
0x1403 | 00 | EEPROM | RPDO4 Communication Entry Count | UNSIGNED8 | R | 2 | — |
0x1403 | 01 | EEPROM | RPDO4 COB-ID | UNSIGNED32 | RW | 0x500 + Node ID | — |
0x1403 | 02 | EEPROM | RPDO4 Transmission Type | UNSIGNED8 | RW | 255 | Event-driven |
0x1603 | 00 | EEPROM | RPDO4 Mapping Count | UNSIGNED8 | RW | 0 | Disabled by default |
0x1603 | 01–08 | EEPROM | RPDO4 Mapping 1–8 | UNSIGNED32 | RW | 0 | Available mapping slots |
TPDO Communication and Mapping
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x1800 | 00 | EEPROM | TPDO1 Communication Entry Count | UNSIGNED8 | R | 2 | — |
0x1800 | 01 | EEPROM | TPDO1 COB-ID | UNSIGNED32 | RW | 0x180 + Node ID | — |
0x1800 | 02 | EEPROM | TPDO1 Transmission Type | UNSIGNED8 | RW | 1 | Every SYNC |
0x1A00 | 00 | EEPROM | TPDO1 Mapping Count | UNSIGNED8 | RW | 6 | — |
0x1A00 | 01 | EEPROM | TPDO1 Mapping 1 | UNSIGNED32 | RW | 0x20700220 | Position Feedback, 32 bit |
0x1A00 | 02 | EEPROM | TPDO1 Mapping 2 | UNSIGNED32 | RW | 0x20600220 | Speed Feedback, 32 bit |
0x1A00 | 03 | EEPROM | TPDO1 Mapping 3 | UNSIGNED32 | RW | 0x20500220 | Torque Feedback, 32 bit |
0x1A00 | 04 | EEPROM | TPDO1 Mapping 4 | UNSIGNED32 | RW | 0x10010008 | Error Register, 8 bit |
0x1A00 | 05 | EEPROM | TPDO1 Mapping 5 | UNSIGNED32 | RW | 0x20100108 | Control Mode, 8 bit |
0x1A00 | 06 | EEPROM | TPDO1 Mapping 6 | UNSIGNED32 | RW | 0x20100308 | NMT State, 8 bit |
0x1801 | 00 | EEPROM | TPDO2 Communication Entry Count | UNSIGNED8 | R | 2 | — |
0x1801 | 01 | EEPROM | TPDO2 COB-ID | UNSIGNED32 | RW | 0x280 + Node ID | — |
0x1801 | 02 | EEPROM | TPDO2 Transmission Type | UNSIGNED8 | RW | 10 | Every 10 SYNC messages |
0x1A01 | 00 | EEPROM | TPDO2 Mapping Count | UNSIGNED8 | RW | 3 | — |
0x1A01 | 01 | EEPROM | TPDO2 Mapping 1 | UNSIGNED32 | RW | 0x20400220 | Current Feedback, 32 bit |
0x1A01 | 02 | EEPROM | TPDO2 Mapping 2 | UNSIGNED32 | RW | 0x20200C20 | DC Bus Voltage, 32 bit |
0x1A01 | 03 | EEPROM | TPDO2 Mapping 3 | UNSIGNED32 | RW | 0x20A00120 | FET Temperature, 32 bit |
0x1A01 | 04 | EEPROM | TPDO2 Mapping 4 | UNSIGNED32 | RW | 0 | Available mapping slot |
0x1802 | 00 | EEPROM | TPDO3 Communication Entry Count | UNSIGNED8 | R | 2 | — |
0x1802 | 01 | EEPROM | TPDO3 COB-ID | UNSIGNED32 | RW | 0x380 + Node ID | — |
0x1802 | 02 | EEPROM | TPDO3 Transmission Type | UNSIGNED8 | RW | 10 | Every 10 SYNC messages |
0x1A02 | 00 | EEPROM | TPDO3 Mapping Count | UNSIGNED8 | RW | 8 | — |
0x1A02 | 01 | EEPROM | TPDO3 Mapping 1 | UNSIGNED32 | RW | 0x30200008 | Encoder Status Count, 8 bit |
0x1A02 | 02 | EEPROM | TPDO3 Mapping 2 | UNSIGNED32 | RW | 0x20E00008 | GPIO Debug Count, 8 bit |
0x1A02 | 03 | EEPROM | TPDO3 Mapping 3 | UNSIGNED32 | RW | 0x20E00108 | MU_NER, 8 bit |
0x1A02 | 04 | EEPROM | TPDO3 Mapping 4 | UNSIGNED32 | RW | 0x20E00208 | PVL_NWRN, 8 bit |
0x1A02 | 05 | EEPROM | TPDO3 Mapping 5 | UNSIGNED32 | RW | 0x20E00308 | PVL_NERR, 8 bit |
0x1A02 | 06 | EEPROM | TPDO3 Mapping 6 | UNSIGNED32 | RW | 0x20E00408 | READY, 8 bit |
0x1A02 | 07 | EEPROM | TPDO3 Mapping 7 | UNSIGNED32 | RW | 0x20E00508 | NFAULT, 8 bit |
0x1A02 | 08 | EEPROM | TPDO3 Mapping 8 | UNSIGNED32 | RW | 0x20300208 | Gate-driver Fault, 8 bit |
0x1803 | 00 | EEPROM | TPDO4 Communication Entry Count | UNSIGNED8 | R | 2 | — |
0x1803 | 01 | EEPROM | TPDO4 COB-ID | UNSIGNED32 | RW | 0x480 + Node ID | — |
0x1803 | 02 | EEPROM | TPDO4 Transmission Type | UNSIGNED8 | RW | 0; 1 during calibration | Runtime-selected |
0x1A03 | 00 | EEPROM | TPDO4 Mapping Count | UNSIGNED8 | RW | 1 | — |
0x1A03 | 01 | EEPROM | TPDO4 Mapping 1 | UNSIGNED32 | RW | 0x30200320 | Encoder Raw28, 32 bit |
0x1A03 | 02–04 | EEPROM | TPDO4 Mapping 2–4 | UNSIGNED32 | RW | 0 | Available mapping slots |
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x2000 | 00 | EEPROM | Device Information Entry Count | UNSIGNED8 | R | 8 | — |
0x2000 | 01 | EEPROM | Node ID | UNSIGNED8 | RW | 127 | Valid range: 1 ~ 127 |
0x2000 | 02 | EEPROM | Product Serial Number | UNSIGNED32 | RW | 0 | Not populated by current defaults |
0x2000 | 03 | EEPROM | Firmware Version | UNSIGNED32 | RW | 0 | Not populated by current defaults |
0x2000 | 04 | RAM | Motor Name | VISIBLE_STRING32 | R | RI60 | — |
0x2000 | 05 | RAM | Motor Driver Name | VISIBLE_STRING32 | R | KD-AQA-V50A30N-V1 | — |
0x2010 | 00 | EEPROM | Control Mode Entry Count | UNSIGNED8 | R | 3 | — |
0x2010 | 01 | EEPROM | Control Mode | UNSIGNED8 | RW | 0 | See Control Mode Values |
0x2010 | 02 | RAM | Run | UNSIGNED8 | RW | 0 | 0: stop, nonzero: run |
0x2010 | 03 | RAM | NMT State | UNSIGNED8 | R | Runtime | 0x00: Boot-up, 0x04: Stopped, 0x05: Operational, 0x7F: Pre-operational |
Motor Specification
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x2020 | 00 | EEPROM | Entry Count | UNSIGNED8 | R | 12 | — |
0x2020 | 01 | EEPROM | Phase Resistance | REAL32 | RW | 0.45 | Ω |
0x2020 | 02 | EEPROM | Phase Inductance | REAL32 | RW | 0.00043875 | H |
0x2020 | 03 | EEPROM | Torque Constant | REAL32 | RW | 0.1 | N·m/A |
0x2020 | 04 | EEPROM | Velocity Constant | REAL32 | RW | 120 | rpm/V |
0x2020 | 05 | EEPROM | Rotor Inertia | REAL32 | RW | 0.000003305 | kg·m² |
0x2020 | 06 | EEPROM | Pole Pairs | UNSIGNED16 | RW | 14 | — |
0x2020 | 07 | EEPROM | Reducer Ratio | REAL32 | RW | 1 | — |
0x2020 | 08 | EEPROM | Reducer Efficiency | REAL32 | RW | 0 | Not initialized to a nonzero value in current defaults |
0x2020 | 09 | EEPROM | Maximum Speed | UNSIGNED32 | RW | 3000 | rpm |
0x2020 | 0A | EEPROM | Nominal Torque | REAL32 | RW | 0.57 | N·m |
0x2020 | 0B | EEPROM | Nominal Current | REAL32 | RW | 5.6 | A |
0x2020 | 0C | EEPROM | DC Bus Voltage | REAL32 | R | 30 at boot | V; updated at runtime |
Motor Driver and Current Controller
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x2030 | 00 | EEPROM | Motor Driver Entry Count | UNSIGNED8 | R | 6 | Reserved entries are omitted |
0x2030 | 01 | EEPROM | Gate Output Invert Enable | UNSIGNED8 | RW | 1 | Boolean |
0x2030 | 02 | RAM | Gate-driver Fault | UNSIGNED8 | R | Runtime | GPIO-derived status |
0x2030 | 03 | RAM | Gate-driver Status | UNSIGNED8 | R | Runtime | Gate-driver status register |
0x2040 | 00 | EEPROM | Current Controller Entry Count | UNSIGNED8 | R | 14 | — |
0x2040 | 01 | RAM | Current Reference | REAL32 | RW | 0 | A |
0x2040 | 02 | RAM | Current Feedback | REAL32 | R | Runtime | A |
0x2040 | 03 | EEPROM | Iq Kp | REAL32 | RW | ≈ 1.378374 | — |
0x2040 | 04 | EEPROM | Iq Ki | REAL32 | RW | ≈ 1413.7167 | — |
0x2040 | 05 | EEPROM | Iq Kd | REAL32 | RW | 0 | — |
0x2040 | 06 | EEPROM | Iq Ka | REAL32 | RW | ≈ 3.627463 | Anti-windup gain |
0x2040 | 07 | EEPROM | Iq Output Maximum | REAL32 | RW | ≈ 17.320508 | V |
0x2040 | 08 | EEPROM | Iq Output Minimum | REAL32 | RW | ≈ -17.320508 | V |
0x2040 | 09 | EEPROM | Id Kp | REAL32 | RW | ≈ 1.378374 | — |
0x2040 | 0A | EEPROM | Id Ki | REAL32 | RW | ≈ 1413.7167 | — |
0x2040 | 0B | EEPROM | Id Kd | REAL32 | RW | 0 | — |
0x2040 | 0C | EEPROM | Id Ka | REAL32 | RW | ≈ 3.627463 | Anti-windup gain |
0x2040 | 0D | EEPROM | Id Output Maximum | REAL32 | RW | ≈ 17.320508 | V |
0x2040 | 0E | EEPROM | Id Output Minimum | REAL32 | RW | ≈ -17.320508 | V |
Torque Controller
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x2050 | 00 | EEPROM | Entry Count | UNSIGNED8 | R | 6 | — |
0x2050 | 01 | RAM | Torque Reference | REAL32 | RW | 0 | N·m |
0x2050 | 02 | RAM | Torque Feedback | REAL32 | R | Runtime | N·m |
0x2050 | 03 | EEPROM | Torque Limit Maximum | REAL32 | RW | 0.57 | N·m |
0x2050 | 04 | EEPROM | Torque Limit Minimum | REAL32 | RW | -0.57 | N·m |
0x2050 | 05 | EEPROM | Torque Feedforward Gain | REAL32 | RW | 0 | — |
0x2050 | 06 | EEPROM | Torque Output Invert Enable | UNSIGNED8 | RW | 0 | Boolean |
Speed Controller
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x2060 | 00 | EEPROM | Entry Count | UNSIGNED8 | R | 14 | — |
0x2060 | 01 | RAM | Speed Reference | REAL32 | RW | 0 | rad/s |
0x2060 | 02 | RAM | Speed Feedback | REAL32 | R | Runtime | rad/s |
0x2060 | 03 | EEPROM | Speed Limit Maximum | REAL32 | RW | ≈ 314.159265 | rad/s |
0x2060 | 04 | EEPROM | Speed Limit Minimum | REAL32 | RW | ≈ -314.159265 | rad/s |
0x2060 | 05 | EEPROM | Speed Kp | REAL32 | RW | ≈ 0.010383 | — |
0x2060 | 06 | EEPROM | Speed Ki | REAL32 | RW | ≈ 3.261904 | — |
0x2060 | 07 | EEPROM | Speed Kd | REAL32 | RW | 0 | — |
0x2060 | 08 | EEPROM | Speed Ka | REAL32 | RW | ≈ 481.558073 | Anti-windup gain |
0x2060 | 09 | EEPROM | Speed Output Maximum | REAL32 | RW | 5.6 | A |
0x2060 | 0A | EEPROM | Speed Output Minimum | REAL32 | RW | -5.6 | A |
0x2060 | 0B | EEPROM | Speed Ramp Mode | UNSIGNED8 | RW | 0 | — |
0x2060 | 0C | EEPROM | Speed Ramp Maximum | REAL32 | RW | 0 | rad/s; not assigned in current defaults |
0x2060 | 0D | EEPROM | Speed Ramp Minimum | REAL32 | RW | 0 | rad/s; not assigned in current defaults |
0x2060 | 0E | EEPROM | Speed Output Invert Enable | UNSIGNED8 | RW | 0 | Boolean |
Position Controller
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x2070 | 00 | EEPROM | Entry Count | UNSIGNED8 | R | 14 | — |
0x2070 | 01 | RAM | Position Reference | REAL32 | RW | 0 | rad |
0x2070 | 02 | RAM | Position Feedback | REAL32 | R | Runtime | rad |
0x2070 | 03 | EEPROM | Position Limit Maximum | REAL32 | RW | ≈ 816814.089933 | rad |
0x2070 | 04 | EEPROM | Position Limit Minimum | REAL32 | RW | ≈ -816814.089933 | rad |
0x2070 | 05 | EEPROM | Position Kp | REAL32 | RW | 3 | — |
0x2070 | 06 | EEPROM | Position Ki | REAL32 | RW | 0 | — |
0x2070 | 07 | EEPROM | Position Kd | REAL32 | RW | 0 | — |
0x2070 | 08 | EEPROM | Position Ka | REAL32 | RW | 1 | Anti-windup gain |
0x2070 | 09 | EEPROM | Position Output Maximum | REAL32 | RW | 5.6 | A |
0x2070 | 0A | EEPROM | Position Output Minimum | REAL32 | RW | -5.6 | A |
0x2070 | 0B | EEPROM | Position Ramp Mode | UNSIGNED8 | RW | 0 | — |
0x2070 | 0C | EEPROM | Position Ramp Maximum | REAL32 | RW | ≈ 314.159265 | rad/s |
0x2070 | 0D | EEPROM | Position Ramp Minimum | REAL32 | RW | ≈ -314.159265 | rad/s |
0x2070 | 0E | EEPROM | Position Output Invert Enable | UNSIGNED8 | RW | 0 | Boolean |
Motor Monitor and Open-loop Parameters
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x2080 | 00 | EEPROM | Motor Monitor Entry Count | UNSIGNED8 | R | 7 | — |
0x2080 | 01 | RAM | Phase Current A | REAL32 | R | Runtime | A |
0x2080 | 02 | RAM | Phase Current B | REAL32 | R | Runtime | A |
0x2080 | 03 | RAM | Phase Current C | REAL32 | R | Runtime | A |
0x2080 | 04 | RAM | d-axis Current | REAL32 | R | Runtime | A |
0x2080 | 05 | RAM | q-axis Current | REAL32 | R | Runtime | A |
0x2080 | 06 | RAM | d-axis Voltage Output | REAL32 | R | Runtime | V |
0x2080 | 07 | RAM | q-axis Voltage Output | REAL32 | R | Runtime | V |
0x2090 | 00 | EEPROM | Open-loop Parameter Entry Count | UNSIGNED8 | R | 8 | Includes reserved sub-indices 06–08 |
0x2090 | 01 | RAM | Force Align Voltage Reference | REAL32 | RW | 2.0 | V |
0x2090 | 02 | RAM | Open-loop QV Voltage Reference | REAL32 | RW | 0.6 | V |
0x2090 | 03 | RAM | Open-loop QV Speed | REAL32 | RW | ≈ 2.094395 | rad/s; 20 rpm |
0x2090 | 04 | RAM | Calibration Voltage Reference | REAL32 | RW | 1.0 | V |
0x2090 | 05 | RAM | Calibration Speed | REAL32 | RW | ≈ 1.047198 | rad/s; 10 rpm |
Temperature, Filter, and Error Configuration
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x20A0 | 00 | EEPROM | Temperature Entry Count | UNSIGNED8 | R | 2 | — |
0x20A0 | 01 | RAM | FET Temperature | REAL32 | R | Runtime | °C |
0x20A0 | 02 | RAM | Motor Temperature | REAL32 | R | Runtime | °C; motor NTC is not connected in current hardware |
0x20B0 | 00 | EEPROM | Filter Entry Count | UNSIGNED8 | R | 1 | — |
0x20B0 | 01 | EEPROM | LPF Cutoff Frequency | REAL32 | RW | 80 | Hz |
0x20C0 | 00 | EEPROM | Error Monitor Entry Count | UNSIGNED8 | R | 16 | Includes reserved sub-indices 0E–10 |
0x20C0 | 01 | EEPROM | Error Register Enable | UNSIGNED8 | RW | 1 | Master enable |
0x20C0 | 02 | EEPROM | Overcurrent Error Enable | UNSIGNED8 | RW | 1 | Boolean |
0x20C0 | 03 | EEPROM | Overcurrent Limit | REAL32 | RW | 28 | A |
0x20C0 | 04 | EEPROM | Voltage Error Enable | UNSIGNED8 | RW | 1 | Boolean |
0x20C0 | 05 | EEPROM | Undervoltage Limit | UNSIGNED32 | RW | 16 | V |
0x20C0 | 06 | EEPROM | Overvoltage Limit | UNSIGNED32 | RW | 48 | V |
0x20C0 | 07 | EEPROM | FET Temperature Error Enable | UNSIGNED8 | RW | 1 | Boolean |
0x20C0 | 08 | EEPROM | FET Temperature Limit | UNSIGNED8 | RW | 100 | °C |
0x20C0 | 09 | EEPROM | Motor Temperature Error Enable | UNSIGNED8 | RW | 0 | Disabled because NTC is not connected |
0x20C0 | 0A | EEPROM | Motor Temperature Limit | UNSIGNED8 | RW | 100 | °C |
0x20C0 | 0B | EEPROM | Communication Error Enable | UNSIGNED8 | RW | 1 | CAN bus-off |
0x20C0 | 0C | EEPROM | Device Profile Error Enable | UNSIGNED8 | RW | 1 | Encoder status |
0x20C0 | 0D | EEPROM | Manufacturer Error Enable | UNSIGNED8 | RW | 1 | Gate-driver fault |
Diagnostics
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x20D0 | 00 | RAM | CAN Error Entry Count | UNSIGNED8 | R | 15 | Includes reserved sub-indices 0D–0F |
0x20D0 | 01 | RAM | CAN Bus Off | UNSIGNED8 | R | Runtime | 0 or 1 |
0x20D0 | 02 | RAM | CAN Error Passive | UNSIGNED8 | R | Runtime | Error counter over 127 |
0x20D0 | 03 | RAM | CAN Warning | UNSIGNED8 | R | Runtime | Error counter over 95 |
0x20D0 | 04 | RAM | CAN Last Error Code | UNSIGNED8 | R | Runtime | 0: none, 1: stuff, 2: form, 3: ACK, 4: bit1, 5: bit0, 6: CRC, 7: no change |
0x20D0 | 05 | RAM | CAN Data Last Error Code | UNSIGNED8 | R | Runtime | CAN FD data-phase LEC |
0x20D0 | 06 | RAM | CAN Activity | UNSIGNED8 | R | Runtime | 0: synchronizing, 1: idle, 2: receiver, 3: transmitter |
0x20D0 | 07 | RAM | CAN Protocol Exception | UNSIGNED8 | R | Runtime | 0 or 1 |
0x20D0 | 08 | RAM | CAN Tx Error Counter | UNSIGNED8 | R | Runtime | TEC |
0x20D0 | 09 | RAM | CAN Rx Error Counter | UNSIGNED8 | R | Runtime | REC |
0x20D0 | 0A | RAM | CAN Error Logging | UNSIGNED8 | R | Runtime | Hardware cumulative error log counter |
0x20D0 | 0B | RAM | CAN Rx Overrun Count | UNSIGNED32 | R | 0 | Firmware cumulative counter |
0x20D0 | 0C | RAM | CAN Bus Off Count | UNSIGNED32 | R | 0 | Counts bus-off transitions |
0x20E0 | 00 | EEPROM | GPIO Debug Entry Count | UNSIGNED8 | R | 5 | — |
0x20E0 | 01 | RAM | MU_NER | UNSIGNED8 | R | Runtime | Raw GPIO state |
0x20E0 | 02 | RAM | PVL_NWRN | UNSIGNED8 | R | Runtime | Raw GPIO state |
0x20E0 | 03 | RAM | PVL_NERR | UNSIGNED8 | R | Runtime | Raw GPIO state |
0x20E0 | 04 | RAM | READY | UNSIGNED8 | R | Runtime | Raw GPIO state |
0x20E0 | 05 | RAM | NFAULT | UNSIGNED8 | R | Runtime | Raw GPIO state |
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x3000 | 00 | EEPROM | Encoder Entry Count | UNSIGNED8 | R | 18 | Includes reserved sub-indices 10–12 |
0x3000 | 01 | EEPROM | Input Count Maximum | UNSIGNED32 | RW | 32768 | counts/revolution |
0x3000 | 02 | RAM | Input Count Value | UNSIGNED32 | R | Runtime | count |
0x3000 | 03 | RAM | Input Count Offset | UNSIGNED32 | R | Runtime | Stored internally as signed int32_t |
0x3000 | 04 | RAM | Input Mechanical Angle | REAL32 | R | Runtime | rad |
0x3000 | 05 | RAM | Input Velocity | REAL32 | R | Runtime | rad/s |
0x3000 | 06 | EEPROM | Input Direction | UNSIGNED8 | RW | 0 | Boolean |
0x3000 | 07 | EEPROM | Input Electrical Angle Offset | REAL32 | RW | 0 | rad |
0x3000 | 08 | RAM | Input Electrical Angle | REAL32 | R | Runtime | rad |
0x3000 | 09 | EEPROM | Output Entry Count | UNSIGNED8 | R | 6 | Firmware field name: Enc_Out_Count |
0x3000 | 0A | EEPROM | Output Count Maximum | UNSIGNED32 | RW | 32768 | counts/revolution |
0x3000 | 0B | RAM | Output Count Value | UNSIGNED32 | R | Runtime | count |
0x3000 | 0C | EEPROM | Output Count Offset | UNSIGNED32 | RW | 0 | Stored internally as signed int32_t |
0x3000 | 0D | RAM | Output Mechanical Angle | REAL32 | R | Runtime | rad |
0x3000 | 0E | RAM | Output Velocity | REAL32 | R | Runtime | rad/s |
0x3000 | 0F | EEPROM | Output Direction | UNSIGNED8 | RW | 0 | Boolean |
iC-Haus Calibration Results
:::warning Count mismatch in current firmware
0x3010:00 initializes to decimal 18 (0x12), but co_od_table exposes calibration data through sub-index 0x18 (decimal 24). The table below follows the entries actually exposed by co_od_table.
:::
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x3010 | 00 | EEPROM | Calibration Entry Count | UNSIGNED8 | R | 18 | Does not match highest exposed sub-index 0x18 |
0x3010 | 01 | EEPROM | Master Track GX | UNSIGNED16 | RW | 0 | GX_M |
0x3010 | 02 | EEPROM | Master Track VOSS | UNSIGNED16 | RW | 0 | VOSS_M |
0x3010 | 03 | EEPROM | Master Track VOSC | UNSIGNED16 | RW | 0 | VOSC_M |
0x3010 | 04 | EEPROM | Master Track PH | UNSIGNED16 | RW | 0 | PH_M |
0x3010 | 05 | EEPROM | Nonius Track GX | UNSIGNED16 | RW | 0 | GX_N |
0x3010 | 06 | EEPROM | Nonius Track VOSS | UNSIGNED16 | RW | 0 | VOSS_N |
0x3010 | 07 | EEPROM | Nonius Track VOSC | UNSIGNED16 | RW | 0 | VOSC_N |
0x3010 | 08 | EEPROM | Nonius Track PH | UNSIGNED16 | RW | 0 | PH_N |
0x3010 | 09 | EEPROM | SPO Base | UNSIGNED8 | RW | 0 | Stored internally as signed int8_t |
0x3010 | 0A–18 | EEPROM | SPO 0–14 | UNSIGNED8 | RW | 0 | Stored internally as signed int8_t[15] |
Encoder Commands and Status
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x3020 | 00 | EEPROM | Encoder Status Entry Count | UNSIGNED8 | R | 3 | — |
0x3020 | 01 | RAM | Encoder State | UNSIGNED8 | R | Runtime | Encoder error/status value |
0x3020 | 02 | EEPROM | Encoder Reset | UNSIGNED8 | RW | 0 | Write 1 to reset and reload encoder state |
0x3020 | 03 | RAM | Encoder Raw28 | UNSIGNED32 | R | Runtime | Calibration raw value |
0x3030 | 00 | EEPROM | iC-PVL State Entry Count | UNSIGNED8 | R | 9 | — |
0x3030 | 01 | RAM | PVL Startup Error | UNSIGNED8 | R | Runtime | — |
0x3030 | 02 | RAM | PVL Configuration Error | UNSIGNED8 | R | Runtime | — |
0x3030 | 03 | RAM | PVL Counter Error | UNSIGNED8 | R | Runtime | — |
0x3030 | 04 | RAM | PVL Position Error | UNSIGNED8 | R | Runtime | — |
0x3030 | 05 | RAM | PVL Battery Error | UNSIGNED8 | R | Runtime | — |
0x3030 | 06 | RAM | PVL Battery Warning | UNSIGNED8 | R | Runtime | — |
0x3030 | 07 | RAM | PVL Amplitude Error | UNSIGNED8 | R | Runtime | — |
0x3030 | 08 | RAM | PVL Magnet Error | UNSIGNED8 | R | Runtime | — |
0x3030 | 09 | RAM | PVL No-magnet Latch | UNSIGNED8 | R | Runtime | — |
0x3040 | 00 | EEPROM | iC-MU State Entry Count | UNSIGNED8 | R | 13 | — |
0x3040 | 01 | RAM | MU Startup Status | UNSIGNED8 | R | Runtime | STUP |
0x3040 | 02 | RAM | MU Nonius Amplitude Maximum | UNSIGNED8 | R | Runtime | AN_MAX |
0x3040 | 03 | RAM | MU Nonius Amplitude Minimum | UNSIGNED8 | R | Runtime | AN_MIN |
0x3040 | 04 | RAM | MU Master Amplitude Maximum | UNSIGNED8 | R | Runtime | AM_MAX |
0x3040 | 05 | RAM | MU Master Amplitude Minimum | UNSIGNED8 | R | Runtime | AM_MIN |
0x3040 | 06 | RAM | MU CRC Error | UNSIGNED8 | R | Runtime | — |
0x3040 | 07 | RAM | MU EEPROM Error | UNSIGNED8 | R | Runtime | — |
0x3040 | 08 | RAM | MU Multi-turn Error | UNSIGNED8 | R | Runtime | — |
0x3040 | 09 | RAM | MU Multi-turn Counter | UNSIGNED8 | R | Runtime | — |
0x3040 | 0A | RAM | MU Nonius Counter | UNSIGNED8 | R | Runtime | — |
0x3040 | 0B | RAM | MU ABZ Frequency | UNSIGNED8 | R | Runtime | — |
0x3040 | 0C | RAM | MU Conversion Frequency | UNSIGNED8 | R | Runtime | — |
0x3040 | 0D | RAM | MU Command Execution Status | UNSIGNED8 | R | Runtime | — |
Factory and User Zero
| Index | Sub | Area | Data Name | Type | Access | Initial Value | Unit / Notes |
|---|
0x3050 | 00 | EEPROM | Factory Zero Entry Count | UNSIGNED8 | R | 3 | — |
0x3050 | 01 | EEPROM | Factory Zero Command | UNSIGNED32 | RW | 0 | Key: 0x66616374 |
0x3050 | 02 | EEPROM | Factory Zero Multi-turn Offset | UNSIGNED32 | R | 0 | Internal encoder offset |
0x3050 | 03 | EEPROM | Factory Zero Single-turn Offset | UNSIGNED32 | R | 0 | Internal encoder offset |
0x3060 | 00 | EEPROM | User Zero Entry Count | UNSIGNED8 | R | 5 | — |
0x3060 | 01 | EEPROM | User Zero Command | UNSIGNED32 | RW | 0 | Write 1 to apply user zero |
0x3060 | 02 | EEPROM | User Zero Reference | REAL32 | RW | 0 | Output-axis radian reference |
0x3060 | 03 | EEPROM | Turn Reset Command | UNSIGNED8 | RW | 0 | Write 1 to reset the turn count |
0x3060 | 04 | EEPROM | User Zero Multi-turn Offset | UNSIGNED32 | R | 0 | Internal encoder offset |
0x3060 | 05 | EEPROM | User Zero Single-turn Offset | UNSIGNED32 | R | 0 | Internal encoder offset |