SPI Encoder (BiSS-C) fails to initialize when DC power is applied first

Setup

  • Controller: ODrive Pro
  • Encoder: Aksim Absolute Encoder (BiSS-C 17bit/16bit, spi_encoder0)
  • Motor: CubeMars GL100
  • Encoder power supply: Supplied from ODrive Pro’s SPI connector
  • Config reference: Absolute Encoder Reference Frame

Background

Configured absolute encoder per official documentation. absolute_setpointsCLOSED_LOOP_CONTROL worked correctly for a period of time, then the issue suddenly began occurring.


Problem

When DC (24V) is applied, the SPI encoder fails to initialize:

  • spi_encoder0.raw = 0
  • pos_vel_mapper.pos_abs = NaN
  • spi_encoder0.error keeps incrementing
  • NaN persists regardless of how long I wait after DC power-up

The only workaround found: disconnect and reconnect USB once → SPI communication recovers and pos_estimate reads correctly → then applying DC power afterward allows normal motor operation.


Questions

  1. Is there a known issue where the SPI interface fails to initialize properly during DC-only boot on ODrive Pro?
  2. Is there a way to force SPI re-initialization after boot (e.g., via odrivetool command or config flag)?
  3. Is there a recommended power-up sequence or startup delay for BiSS-C encoders powered from the SPI connector?