ODrive Pro (firmware 0.6.11)
Arc Motion motor (15 pole-pairs )
AksIM-2 off-axis magnetic encoder, 17 bit BiSS-C
Wiring (per datasheet):
MA+ → G0+ (clock+)
MA– → G0– (clock–)
SLO+ → G18+ (data+)
SLO– → G18– (data–)
- MOSI left unconnected (BiSS-C is read-only)
Code:
odrv.spi_encoder0.config.mode = SpiEncoderMode.BISSC
odrv.spi_encoder0.config.ncs_gpio = 17
odrv.spi_encoder0.config.biss_c_bits = 17
axis.config.commutation_encoder = EncoderId.SPI_ENCODER0
axis.config.load_encoder = EncoderId.SPI_ENCODER0
axis.config.encoder_bandwidth = 90
What I observe:
- In “Quick Setup” there is no BiSS-C option.
- After setting the above in Attributes, I click “Save & Reboot.”
- When I attempt MOTOR_CALIBRATION or ENCODER_OFFSET_CALIBRATION, the GUI shows no_response or not_calibrated.
Question:
What am I missing in my BiSS-C wiring or ODrive configuration? Why does the ODrive Pro not see any BiSS-C data?
Thanks for the info! Would you mind showing an actual picture of your wiring, between the ODrive and the encoder?
Additionally, can you check the status of odrv.spi_encoder0.warning
?
Note the AksIM-2 is very sensitive to mounting and installation error, I would check to make sure the status LED on the AksIM-2 is green, and not orange or red:
1. Hardware & Wiring
- Encoder: AksIM-2, 17 bit, true-absolute magnetic
- ODrive Pro pins (single-ended SPI):
- SCK → G0+ (leave G0– floating)
- nCS → G17+ (leave G17– floating)
- MISO → G18+ (leave G18– floating)
- MOSI → G14 (tied low when unused)
- 5 V → 5 V+; GND → GND
- Differential “–” pins: all left unconnected for single-ended mode
- Grounding: encoder GND, ODrive GND (and any adapter GND) common
2. GUI / Attribute Settings
python
CopyEdit
# Axis encoder assignment
odrv.axis0.config.load_encoder = EncoderId.SPI_ENCODER0
odrv.axis0.config.commutation_encoder = EncoderId.SPI_ENCODER0
# SPI-encoder settings
odrv.spi_encoder0.config.mode = SpiEncoderMode.RLS
odrv.spi_encoder0.config.ncs_gpio = 17
- I click Save & Reboot, then issue MOTOR_CALIBRATION and ENCODER_OFFSET_CALIBRATION.
- Calibration shows No_RESPONSE or not_calibrated
4. Already-checked Items
- Physical continuity on G0+, G14, G17+, G18+ — no shorts, solid solder joints.
- Power rails: encoder sees 5 V, LED on encoder lights steady when clock pulses present.
- Pin-mode: Verified in Attributes that G0/G14/G17/G18 are in SPI mode (not left in default GPIO).
- Floating “–” pins: Confirmed G0–, G17–, G18– are not tied to ground or any other signal.
Hi - sorry, you first posted BiSS-C setup and wiring, and now SPI? Are you using a BiSS-C or SPI readhead? Can you send some pictures? What’s the actual part number of your readhead?
1. Hardware Details:
- Motor: Kollmorgen TBM2G-11513 (Model A)
- Encoder: AksIM-2 (RLS), 17-bit, true-absolute, BiSS-C protocol
- Motor Connector: MB053DCC17BENT00 (Redhead)
- Controller: ODrive Pro (Firmware 0.6.11)
- Encoder Wiring (Differential BiSS-C attempt):
- MA+ → G0+ (Clock+)
- MA– → G0– (Clock–)
- SLO+ → G18+ (Data+)
- SLO– → G18– (Data–)
- MOSI left unconnected (BiSS-C is read-only)
2. Observations When Using High Current Motor Type:
When we select the High Current Motor type in the GUI, the motor fails to calibrate and frequently throws Unbalanced_Phases errors, even though the motor and wiring have been verified for continuity and correct phase connections.
3. Observations with BiSS-C Encoder:
We initially configured the encoder in BiSS-C mode, using:
odrv.spi_encoder0.config.mode = SpiEncoderMode.BISSC
odrv.spi_encoder0.config.ncs_gpio = 17
odrv.spi_encoder0.config.biss_c_bits = 17
axis.config.commutation_encoder = EncoderId.SPI_ENCODER0
axis.config.load_encoder = EncoderId.SPI_ENCODER0
Despite saving and rebooting, MOTOR_CALIBRATION or ENCODER_OFFSET_CALIBRATION fail with either no_response
or not_calibrated
. There is no BiSS-C option available in the GUI’s encoder dropdown either.
We observed:
- The LED on the AksIM-2 lights green, indicating clock signal presence.
- We verified G0/G14/G17/G18 pin modes are set to SPI and not GPIO.
- Physical wiring was confirmed to be solid with no shorts.
4. Single-Ended SPI Configuration Attempt:
Due to lack of response in BiSS-C mode, we also attempted configuring the encoder as single-ended SPI based on a forum suggestion. For that, we rewired as follows:
- SCK → G0+
- nCS → G17+
- MISO → G18+
- MOSI → G14 (tied low)
- All differential “–” pins left floating
- Common ground between encoder and ODrive
And used:
odrv.spi_encoder0.config.mode = SpiEncoderMode.RLS
odrv.spi_encoder0.config.ncs_gpio = 17
However, even with this change, ODrive fails to receive data. Motor/encoder status reports no_response
or not_calibrated
, and we are unsure if the AksIM-2 is even supported in SPI single-ended mode.
Our Key Questions:
- What is the correct mode to use with the AksIM-2 (BiSS-C encoder)? Is single-ended SPI a valid fallback or not supported at all?
- Could the phase imbalance errors be related to encoder feedback or a deeper motor compatibility issue with ODrive?
- Are there any known limitations or compatibility issues with the TBM2G series motors or AksIM-2 encoders on ODrive Pro v0.6.11?
- Can you provide guidance on how to confirm whether BiSS-C data is being received correctly at the hardware/firmware level?
Hi,
- What is the correct mode to use with the AksIM-2 (BiSS-C encoder)? Is single-ended SPI a valid fallback or not supported at all?
Not supported at all, it’s a distinctly different protocol than BiSS-C, and the encoder will not support it.
- Could the phase imbalance errors be related to encoder feedback or a deeper motor compatibility issue with ODrive?
This is almost always a wiring or configuration issue.
Your wiring here looks really sketchy. Can you confirm that these connections are adequetely soldered?
To help more, I also need your values of:
axis0.config.motor.resistance_calib_max_voltage
axis0.config.motor.calibration_current
I also worry about your connection of the encoder, are these connections all soldered?
- Are there any known limitations or compatibility issues with the TBM2G series motors or AksIM-2 encoders on ODrive Pro v0.6.11?
No, this should work fine. BiSS-C is experimental, but we know it works with 18-bit AksIM-2, it should be fine with 17-bit too.
Can you provide guidance on how to confirm whether BiSS-C data is being received correctly at the hardware/firmware level?
You will need an oscilloscope or logic analyzer. Do you have either of these?
Thanks! I solved the imbalance phases errors by changing the U,V,W phase wires.
But, I am still stuck at NO_RESPONSE error. For this, what connection should I follow then, for my encoder. I am still unclear about it. I am attaching the 8-pin connector configuration of my encoder. Please check that out once, and let me know.
Once, guide me through the connections and consequent modes to select from the GUI.
Hi - your wiring was correct in your first post. I’ve asked for additional information, can you please provide this?
- Would you mind showing an actual picture of your wiring, between the ODrive and the encoder?
- Additionally, can you check the status of
odrv.spi_encoder0.warning
?
- Please set G0/G14/G17/G18 modes to AUTO.