For visitors and new users
What is OpenHaldex and where did it come from?
OpenHaldex is an open-source haldex controller effort maintained by the community, with support for Gen 1, 2,
4, and now Gen 5 Haldex platforms. If you want project
lineage and references, use OpenHaldex History.
Does OpenHaldex support Gen 5?
Yes. Gen 5 support is now part of the project, and Gen 5 cars use MQB CAN decoding instead of PQ. That matters
for mapped inputs, decoded signal selection, and CAN View.
Where do I start without breaking anything?
Use Getting Started first. Select the correct Haldex generation before
mapping inputs, keep all lock targets conservative, verify telemetry quality, and only move one setting at a time.
What docs are easiest to follow?
The step-by-step user guides in
`data/ui-dev/docs/user`
are written for non-developers.
What is the AP password setting for?
It secures the controller's own hotspot. This is different from STA credentials, which are used when the
controller joins your existing network.
For tuning and operation
Why does low-speed behavior matter?
Parking lot and tight-turn scenarios can bind driveline components when lock is requested too early. Use mode
disengage thresholds carefully and validate behavior at low speed.
When should Haldex broadcast be disabled?
If aggressive command levels cause persistent plausibility or communication issues, disabling broadcast can reduce
visibility to other modules. This should be considered an advanced/experimental option.
Why do some decoded signals only appear sometimes in Setup or CAN View?
The decoded signal lists are built from frames currently seen on the bus. If a source frame is not present or not
recent, that signal will not appear yet. This is especially important on Gen 5 cars, where the correct MQB frames
have to be present before mapping inputs.
Can full throttle bypass low-speed disengage?
Yes, launch-oriented behavior can allow full-throttle override so lock request logic is not held back by low-speed
disengage gating.
For debugging and development
Where do I find API behavior details?
See API + UI Contract for endpoint usage and state model expectations.
Where should I start in firmware code?
src/functions/can/can_rx.cpp for signal intake and mapping.
src/functions/core/calcs.cpp for mode output and torque request logic.
src/functions/io/frames.cpp for generation-specific frame output.
src/functions/storage/filelog.cpp for scoped logging behavior.
How do I report or discuss issues?
Try the OpenHaldex Firmware Demo
Preview the real OpenHaldex firmware UI in your browser with simulated live CAN traffic and interactive pages for tuning, diagnostics, logs, setup, and OTA workflows.
Open firmware demo