Resolving ODrive S1 DC Bus Trip-Level Clamping at 44 V

David Krause5 min read
Motion ControlOther ManufacturerTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

The bus-voltage trip setting accepts lower values but reads back as 44.0 whenever an engineer requests 48 or 50. On affected ODrive S1 controllers, that behavior comes from an incorrect factory configuration, not from the GUI or the normal intended limit. The reported product information identifies 50.5 V as the maximum, but confirm the current rating in the applicable product documentation before using that value as a design limit.

Configuration-Clamp Mechanism

The term here means a write-time upper clamp: the controller accepts a requested value, compares it with its configured ceiling, and stores the ceiling when the request is higher. The decisive symptom is readback, not the value displayed in the entry field.

For the affected configuration, writing 40 produces 40.0, while writing either 48 or 50 produces 44.0. That asymmetry separates a ceiling problem from a completely rejected write. Communication and parameter access are working because a value below the ceiling persists correctly.

A nominal 48 V supply does not fit a 44.0 V overvoltage ceiling. In addition to the supply's actual output tolerance, motor regeneration can raise the DC bus above the source voltage during deceleration. Raising the threshold is appropriate only within the controller's documented electrical limit; it is not a substitute for controlling regenerative energy or checking the measured bus voltage.

Controller Identity and Firmware State

Check 1: connect with ODrivetool and read the connection banner. Expect it to identify an ODrive S1, show the controller serial number, and report the installed firmware. The confirmed affected installation reported firmware v0.6.9.

If the device is not an S1, stop this decision path and use the limits and recovery procedure for the identified hardware. If the S1 runs v0.6.9, continue to the readback test. If it runs another firmware revision, record that revision and still test the parameter; the clamp behavior, rather than the revision alone, decides whether this fault signature is present.

Keep the displayed serial number with the diagnostic record. A later S1 showing the same symptom did not recover with the documented sequence, and the first information requested for further diagnosis was its serial number.

Trip-Level Readback Test

Check 2: read the current setting, write a lower test value, and read it again. Use the same property for every operation:

odrv0.config.dc_bus_overvoltage_trip_level
odrv0.config.dc_bus_overvoltage_trip_level = 40
odrv0.config.dc_bus_overvoltage_trip_level

Expect the final read to return 40.0. If it does, the session can write the configuration and the controller can retain an in-range value. If it does not, diagnose the connection, object path, write permissions, or configuration persistence before proceeding.

Check 3: request a value above 44.0 and read it back. The captured fault was reproduced with both 48 and 50:

odrv0.config.dc_bus_overvoltage_trip_level = 48
odrv0.config.dc_bus_overvoltage_trip_level

A readback of 44.0 identifies the factory-configuration clamp. A readback equal to the requested value means this specific clamp is absent. A different returned value defines another boundary or validation rule; record the requested and returned values without repeatedly increasing the setting.

Client-Path Comparison

Check 4: repeat one controlled write through the other configuration client. Expect the GUI and ODrivetool to return the same stored value because both ultimately write the controller configuration.

Reading Meaning Next action
40 reads back as 40.0; values above 44 read back as 44.0 in both clients Incorrect controller-side factory ceiling Run the firmware repair sequence
Only one client shows 44.0 Client display, stale data, or write-path problem Reconnect and diagnose that client before firmware recovery
The requested value above 44.0 reads back unchanged The reported factory clamp is not active Investigate actual DC-bus voltage and trip conditions
No test value persists General configuration-write failure Resolve access or communication first

Changing clients cannot repair a limit stored in factory configuration. Repeatedly entering larger numbers also adds no diagnostic value once both paths return the identical 44.0 ceiling.

Factory-Configuration Repair

The resolving path temporarily loads the development firmware and then returns the S1 to v0.6.9. Passing through the development image corrects the affected factory configuration; the following normal DFU restores the regular firmware while retaining the corrected capacity.

  1. Record the S1 serial number, current firmware banner, current dc_bus_overvoltage_trip_level, requested test value, and returned value.
  2. Start the development-channel update:
    odrivetool dfu --channel devel
  3. Allow that process to complete before issuing another DFU command.
  4. Run the normal update command:
    odrivetool dfu
  5. Allow the second process to complete, reconnect with ODrivetool, and confirm that the device again identifies as the intended S1.
  6. Write the required trip level within the documented product limit, then read the property back from the controller.

Do not stop after loading the development channel: the documented repair includes the second DFU operation. Do not choose a trip level merely to clear a fault from a 48 V supply. Compare the intended threshold with the supply's measured output, expected regenerative rise, and the controller rating.

Post-Repair Verification and Escalation

  1. Check 5: firmware state. Expect the connection banner to report firmware v0.6.9 after the normal odrivetool dfu operation.
  2. Check 6: corrected write ceiling. Write the engineering setpoint above 44.0 but no higher than the applicable documented limit. Expect readback to equal the requested value rather than 44.0.
  3. Check 7: independent client reading. Reconnect or open the GUI and read the same property. Expect the GUI and ODrivetool to show the same value.
  4. Check 8: operating bus behavior. Run the intended operating cycle while observing DC-bus voltage and fault status. Expect the measured voltage to remain below the configured trip level throughout acceleration, steady operation, and deceleration.

If the development-to-normal DFU sequence completes but the property still clamps at 44.0, do not repeat arbitrary threshold writes. Provide ODrive's official support channel with the S1 serial number, firmware banner, both DFU command results, and before-and-after parameter readbacks.

FAQ

Can I set the ODrive S1 overvoltage trip above 44 V?

Yes, after correcting the affected factory configuration and within the documented electrical limit. A write above 44.0 that immediately reads back as 44.0 identifies the clamp addressed by the two-stage DFU sequence.

Does a 44 V readback mean ODrivetool rejected the command?

No. When 40 persists as 40.0 but 48 or 50 returns 44.0, the write path works and the controller is applying an upper ceiling.

Can I fix the ODrive S1 clamp in the GUI?

No configuration-client change repairs this factory setting. The confirmed repair runs odrivetool dfu --channel devel to completion and then runs odrivetool dfu.

Does the repair leave the S1 on development firmware?

No. The second command returns the controller to the normal firmware path; in the documented case, reconnecting should report v0.6.9.

Can I verify the repair without running the motor?

You can verify the corrected configuration by writing a permitted value above 44.0 and reading back the same value. Final verification is an operating-cycle test: expect measured DC-bus voltage to remain below the configured trip level during acceleration, steady operation, and deceleration.

Back to blog