Skip to content

Status requests

Data the host asks for with a remote frame (RTR bit set, no data); the driver answers with a data frame with the same command ID. And the heartbeat, which the driver sends on its own.

Send_Respond_Ping

ID 10host → driver as a remote frame, driver → host as a data frameremote frame, 0 bytesPython: Send_Respond_Ping()

Asks the driver to answer with an empty frame, to see that it is on the bus.

The frame (0 bytes)

Byte Bit Field Type Meaning

The driver answers with Send_Respond_Ping.


Send_Respond_Temperature

ID 23host → driver as a remote frame, driver → host as a data frameremote frame, 0 bytesPython: Send_Respond_Temperature()

Asks for the thermistor temperature. Meaningful only with the thermistor enabled (#Term 1).

The frame (2 bytes)

Byte Bit Field Type Meaning
0-1 temperature signed 16-bit °C

The driver answers with Send_Respond_Temperature.


Send_Respond_Voltage

ID 24host → driver as a remote frame, driver → host as a data frameremote frame, 0 bytesPython: Send_Respond_Voltage()

Asks for the supply voltage.

The frame (2 bytes)

Byte Bit Field Type Meaning
0-1 voltage unsigned 16-bit mV

The driver answers with Send_Respond_Voltage.


Send_Respond_Device_Info

ID 25host → driver as a remote frame, driver → host as a data frameremote frame, 0 bytesPython: Send_Respond_Device_Info()

Asks for the driver's identity: hardware version and batch date from the EEPROM, the serial number, and the firmware release (from firmware 105 on this is the build's own version; before, a value from the EEPROM). This firmware does not read the serial number back from the EEPROM at power-up: it reports 1 until #SERNUM sets it.

The frame (7 bytes)

Byte Bit Field Type Meaning
0 HARDWARE_VERSION unsigned 8-bit PCB revision
1 BATCH_DATE unsigned 8-bit production batch
2 SOFTWARE_VERSION unsigned 8-bit firmware release, e.g. 108
3-6 SERIAL_NUMBER unsigned 32-bit serial number as held in RAM: 1 after a power-up

The driver answers with Send_Respond_Device_Info.


Send_Respond_State_of_Errors

ID 26host → driver as a remote frame, driver → host as a data frameremote frame, 0 bytesPython: Send_Respond_State_of_Errors()

Asks for every error flag and the calibrated, activated and watchdog states.

The frame (2 bytes)

Byte Bit Field Type Meaning
0 7 error bit any error is active
0 6 temperature_error bit motor over the temperature limit
0 5 encoder_error bit the encoder reports no magnet (too weak a field)
0 4 vbus_error bit supply voltage outside the limits
0 3 driver_error bit reserved; never set by this firmware (STEPFOC does not read a fault output of its driver stage)
0 2 velocity_error bit speed above 30,000,000 ticks/s, a fixed threshold (not #Vlimit)
0 1 current_error bit reserved; never set by this firmware
0 0 estop_error bit Send_ESTOP was received
1 7 calibrated bit the motor is calibrated
1 6 activated bit the controller is activated
1 5 watchdog_error bit the watchdog ran out

The driver answers with Send_Respond_State_of_Errors.


Send_Respond_Iq_data

ID 27host → driver as a remote frame, driver → host as a data frameremote frame, 0 bytesPython: Send_Respond_Iq_data()

Asks for the measured Iq current.

The frame (2 bytes)

Byte Bit Field Type Meaning
0-1 current signed 16-bit mA

The driver answers with Send_Respond_Iq_data.


Send_Respond_Encoder_data

ID 28host → driver as a remote frame, driver → host as a data frameremote frame, 0 bytesPython: Send_Respond_Encoder_data()

Asks for the position and the filtered speed, as 32-bit values. Python attributes position and speed.

The frame (8 bytes)

Byte Bit Field Type Meaning
0-3 position signed 32-bit encoder ticks
4-7 speed signed 32-bit encoder ticks/s

The driver answers with Send_Respond_Encoder_data.


Send_Respond_Kt

ID 33host → driver as a remote frame, driver → host as a data frameremote frame, 0 bytesPython: Send_Respond_Kt()

Asks for the torque constant Kt the driver uses. Added in firmware 105.

The frame (4 bytes)

Byte Bit Field Type Meaning
0-3 Kt float 32 Nm/A

The driver answers with Send_Respond_Kt.


Respond_Heartbeat

ID 9driver → host0 bytes

The frame the driver sends on its own at the heartbeat interval (Send_Heartbeat_Setup); empty. Off by default. Any other frame the driver sends resets the heartbeat timer, so a driver that answers motion commands at a high rate never sends a heartbeat.

The frame (0 bytes)

Byte Bit Field Type Meaning

Comments


Found a mistake on this page? Edit it on GitHub · Report it · Get help · This page as Markdown · llms.txt · The whole manual as PDF