OpenHaldex is an open‑source Haldex AWD controller for Volkswagen and Audi Group vehicles using Haldex Generation 1, 2, 4 (PQ Chassis) and 5 (MQB) differentials.
Install is easy with the new harnesses for later PQ & MQB chassis:
Lift seat -> Plug in -> Drive it
Performance doesn't need to be expensive or complicated!
Starting from the codebase from A-Banging-Donk for Generation 1 differentials; OpenHaldexC6 has grown to adapt Generation 2, 4 and 5.
The firmware runs on an ESP32‑C6 and reads CAN bus messages from the vehicle, allowing the controller to modify or generate commands so the Haldex differential behaves exactly as you've configured.
It can operate using OEM CAN signals or it is also able to run in Standalone mode - this makes it perfect for conversions!
- Features
- Purchase
- Overview
- Hardware
- Advantages Over Other 'OpenHaldex' Solutions
- Supported Platforms
- Modes
- Expert Mode
- Installation
- Firmware Installation
- CAN Sniffing
- PCB & Enclosure
- Acknowledgements
- Disclaimer
- Two TWAI (CAN) interfaces for reading and bridging CAN traffic
- Built‑in Wi‑Fi for on‑device configuration and diagnostics
- Multiple preset modes plus customisable mode profiles
- Tune your Haldex system directly from your phone via Wi-Fi
- Configurable inputs features onboard and external mode switching options
- Configurable outputs include two high-side drivers for handbrake and brake outputs (or PWM control for optional oil cooling!)
- SavvyCAN support
Assembled modules are available from Forbes Automotive if you do not wish to build one yourself:
➡ OpenHaldex C6 Controller – Forbes Automotive
OpenHaldex sits between your vehicle and the OEM Haldex controller. It can operate as a passthrough (OEM behaviour), or modify messages to request different amounts of differential lock.
This is the original source of Generation 2, 4 and 5 logic - any forks or code copied from this project is NOT the work of Forbes Automotive and therefore we cannot support other work unless it is remains part of this project.
Supported generations: Gen1, Gen2, Gen4 and Gen5
Gen3 is currently unsupported.
The PCB is based around an ESP32‑C6 Mini (with Wi‑Fi) but has superior protection against ESD and transient voltages. It has a built-in fuse and uses quality automotive based components for a reliable system.
Two TWAI/CAN controllers are built into the PCB along with external IO control:
- External mode button
- On‑board RGB LED
- Brake / handbrake management (for Generation 1 systems) *Note: some brake/handbrake outputs may require a 10k pulldown resistor on certain platforms(!)
These two high‑side drivers for brake/handbrake could be repurposed for other functions like oil coolers!
This platform replaces the earlier Teensy (OpenHaldex T4) design to provide better wireless support and on‑device configuration.
- The 'proprietary PCB' is equally as proprietary as the LILYGO T-2Can
- The LILYGO T-2Can does not feature any suitable means of over-voltage or fused protections
- The LILYGO T-2Can does not feature an onboard mode LED - so no immediate user feedback of current mode
- The LILYGO T-2Can does not offer external mode changing for quick 'on-the-fly' changes
- The LILYGO T-2Can does not offer additional high-sided drivers for brake/handbrake control on Gen1 or Gen2 systems
- The LILYGO T-2Can uses MS4553S as CAN interface chips - these have lower ESD protection and in high-voltage or short circuit situations will destroy their irreplaceable protection fuses
- No optional JTAG break-out (which could be repurposed for other features - like GPS, for example)
- No pre-designed enclosure
- Terminations are screw-type - which can lead to poor user installation / connections - leading to sporadic communication faults or failures within the vehicles CAN network - this could include no-starts or steering failures
- It's still a custom made piece of hardware including the custom wiring harness YOU'D need to make: collect connectors, crimp/solder or twist & tape, it won't be pretty
- The cost is comparative
- Generation 1 - PQ
- Generation 2 - PQ
- Generation 4 - PQ
- Generation 5 - MQB
The controller provides several preset modes along with a fully customisable mode:
| Mode | Behaviour | LED Colour |
|---|---|---|
| Stock | OEM behaviour | Red |
| FWD | Zero lock | Green |
| 7525 | 25% lock | Cyan |
| 6040 | 40% lock | Magenta |
| 5050 | 100% lock | Blue |
| Expert | User‑defined lock profile | White |
Expert mode allows lock targets to be configured based on speed and throttle setpoints using a table inside the Web UI. This is true full control over your Haldex system. No guesswork. You tune it and it'll do exactly what you want it to do, every time. It requires OEM CAN messages to be present for throttle/speed inputs.
Expert mode grid configuration interface within the OpenHaldex C6 UI.
Allow the controller to learn your Haldex by replacing the original methodology of approximating a lock percentage by cycling through all of the available lock percentages.
Use the 'Learn Haldex' in the Settings page and within one minute the controller will learn how to get EXACTLY the lock percentage you request. No more guess-work, just exact values.
Modes can be changed using multiple interfaces:
On‑board button
Press the Mode button to cycle through modes.
Wi‑Fi
Use the Web UI at:
192.168.1.1 or openhaldex.local
CAN
Send a CAN message containing the mode number in Byte 0.
Stock = 0
FWD = 1
5050 = 2
6040 = 3
7525 = 4
Expert = 5
Default CAN ID:
0x6B0
Note
Broadcasting can conflict with other devices. The CAN ID can be adjusted in code if required.
The module broadcasts its current state on the CAN bus. This can be used by aftermarket ECUs or FIS displays to show current status
data[1] = standalone_flags (bitmask for Gen1/Gen2/Gen4/Gen5)
data[2] = processed_haldex_engagement (requested by firmware)
data[3] = lock_target_percent (actual lock, returned by differential)
data[4] = vehicle_speed
data[5] = mode_override_flag
data[6] = current_mode_number
data[7] = pedal_value
- Connect to the access point OpenHaldex‑C6
- Open a browser and navigate to
192.168.1.1 or openhaldex.local
- Access the Web UI
If the Wi‑Fi interface becomes unresponsive:
- Long‑press the
Modebutton to reset Wi‑Fi.
Tip
Recommended for quick installation (and removal) — typically <10 minutes on Generation 1 Controllers. The latest harnesses for Generation 2, 4 and 5 are even simpler and you'll be experiencing your Haldex controller in less than 30 seconds:
- Lift the rear seat
- Split the factory 6-pin Haldex connector
- Install your new harness & OpenHaldexC6 Controller
- Drive it (you can put the seat back down too, if you want!)
For Generation 1 Controllers: Route cables as required and connect harness ends as described in the harness instructions.
For full step‑by‑step instructions see the OpenHaldex Installation Guide.
▶ Installation demo (YouTube Short): https://youtube.com/shorts/iUkNh9NbyKY?si=IhgqLIi0WM8wXqe9
▶ Installation demo (YouTube Short): https://youtu.be/Wu-u-Dz1444
Warning
Modules sold without a harness include connector pins for manual wiring. This is a little harder and more involved than using the optional harness, but following the installation guide above it can still be completed easily. Give us a shout if you need a hand.
Gen1:
- Chassis Connector:
1J0‑973‑714 - Haldex Conneector:
1J0‑973‑814
Gen4>:
- Haldex Connector —
VW 1J0‑973‑713 - Vehicle Connector —
VW 1J0‑973‑813
Build this as a Y-branch harness between the two VW 6-pin connectors, with a long tail to the MX plug.
Routing summary:
-
Pins 1, 2, 3 are pass-through between Vehicle and Haldex.
-
Permanent power (Term30) and ground (MALT) must also be branched to the OpenHaldex controller:
- Term30 -> MX Pin 1
- Ground/MALT -> MX Pin 2
-
Chassis CAN is taken from the Vehicle side and sent to the controller:
- Vehicle Pin 5 -> MX Pin 3 (Chassis CAN Low)
- Vehicle Pin 6 -> MX Pin 4 (Chassis CAN High)
-
Returned CAN from the controller then goes to the Haldex side:
- MX Pin 5 -> Haldex Pin 5 (Haldex CAN Low)
- MX Pin 6 -> Haldex Pin 6 (Haldex CAN High)
-
Vehicle Connector —
VW 1J0‑973‑813:
| Pin | Signal | Notes |
|---|---|---|
| 1 | Term15 | Pass-through: Vehicle → Haldex |
| 2 | Ground/MALT | Pass-through: Vehicle → Haldex and branch to MX Pin 2 |
| 3 | Term30 | Pass-through: Vehicle → Haldex and branch to MX Pin 1 |
| 4 | N/A | Not used |
| 5 | Chassis Low | To MX Pin 3 (chassis side) |
| 6 | Chassis High | To MX Pin 4 (chassis side) |
- Haldex Connector —
VW 1J0‑973‑713:
| Pin | Signal | Notes |
|---|---|---|
| 1 | Term15 | Pass-through: Vehicle → Haldex |
| 2 | Ground/MALT | Pass-through from Vehicle side |
| 3 | Term30 | Pass-through from Vehicle side |
| 4 | N/A | Not used |
| 5 | Haldex Low | From MX Pin 5 (returned CAN) |
| 6 | Haldex High | From MX Pin 6 (returned CAN) |
| Pin | Signal | Notes |
|---|---|---|
| 1 | Vbatt | +12 V |
| 2 | Ground/MALT | Ground |
| 3 | Chassis CAN Low | To chassis/ECU side |
| 4 | Chassis CAN High | To chassis/ECU side |
| 5 | Haldex CAN Low | To Haldex differential |
| 6 | Haldex CAN High | To Haldex differential |
| 7 | Switch Mode External | +12 V to activate |
| 8 | Brake Switch In | +12 V input |
| 9 | Brake Switch Out | Gen1 differentials only |
| 10 | Handbrake Switch In | +12 V input |
| 11 | Handbrake Switch Out | Gen1 differentials only |
Firmware can be installed directly from your browser using ESP Web Tools.
This is the recommended method for most users.
- Connect the OpenHaldex controller to your computer using a data-capable USB-C cable.
- Open the firmware installer page: Module Software Updater
- Click Connect and select the OpenHaldex serial port.
- Click Install and follow the prompts.
- Wait for the firmware to flash and the device to reboot.
Note
Some USB-C cables are power-only and will not work for flashing.
If the device does not appear, try a different cable or USB port.
Adding more functionality couldn't be easier - you just need to know the feature you want and grab some CAN data to help implement it. Using the SavvyCAN interface, you can listen to the CAN messages to see what the car is talking about...
Enable Analyzer Mode in the setup menu to capture CAN frames.
Warning
Enabling Analyzer Mode disables active Haldex control and returns the device to OEM 'pass-through' behaviour.
-
Connect to the OpenHaldex Wi‑Fi AP
-
In Settings, enable SavvyCAN
-
In SavvyCAN:
Open 'Connection'
Add New Device Connection → Network Connection (GVRET)
- Enter:
IP: 192.168.1.1
Port: 23
- Set CAN speed:
500000
Gerber files and enclosure designs are available in the PCB folder. You can use these to get your own units if you wish.
Pinout and functionality remain consistent across supported enclosure versions.
- Flashing LED indicator when CAN message transmission fails
- Forbes Automotive — Lead development of the OpenHaldex C6 platform, including reverse‑engineering and open‑source implementation for Gen2, Gen4 and Gen5 Haldex systems, along with ongoing maintenance of the project
- A Banging Donk — Original OpenHaldex project for Gen1 vehicles
- Arwid Vasilev — PCB redesign (V1.02)
- LVT Technologies — OTA update integration (now deprecated, but still appreciated)
Caution
This device modifies Haldex behaviour and should only be used off‑road or on a closed course.
The unit may behave unpredictably and could increase drivetrain wear.
Use at your own risk. Forbes Automotive is not responsible for damages resulting from the use of this device or software.






