Self test#

The self test command performs basic integrity checks of the drive, including the motor, sensors, VSI, etc. The motor has to be connected for the self test to succeed.


The self test command can be invoked via Cyphal by requesting uavcan.node.ExecuteCommand with command code 1 (one). The command will be rejected unless the current state is standby. If the self-test is started, the service call will return success immediately, and the test will continue running asynchronously.

Example using Yakut assuming node-ID 125:

y cmd 125 1


The outcome of the test can be deduced by observing the next state activated upon completion of the test: standby upon success, fault upon failure. In case of failure, detailed information can be accessed via the system status register. The meaning of the error codes reported by the self test is specified below.




DC link voltage invalid or sensor malfunction


Transistor malfunction, phase current/voltage sensor malfunction, driver malfunction, motor disconnected


High current zero bias on phase A, or the phase current error variance is configured incorrectly






Malfunction of inverter half-bridge or phase voltage feedback of phase A





Error codes can be summed to indicate multiple errors at once. The sum has to be decomposed into powers of 2 to obtain the error information.

Enter a number to obtain its power-of-2 decomposition: =

For undocumented error codes, please reach out to Zubax Robotics with a brief description of your application.

System status register#

This command is indicated via the system status register using the following schema.

{ "self_test": UNSPECIFIED }

UNSPECIFIED may be replaced with an arbitrary value.