Volkswagen PQ - commaai/openpilot GitHub Wiki

◄ Home / ◄ Volkswagen / Volkswagen PQ

This page is about Volkswagen PQ35/PQ46 platforms. For MQB platform, see Volkswagen page. Usernames are from Discord (User:Name).

There is work in progress on PQ35/PQ46 (November 2020). Currently these cars are being tested:

  • Golf Mk6 1.2 TSI DSG (User:Edgy)
  • Golf Estate (EU) | Jetta Sportwagen (NA) MK6 2.0 TDI DSG (User:Khonsu)
  • Passat B6 R36 (User:Kamold with retrofits from B7, User:Redragon_101)
  • Sharan Mk2 7N2 (User:Kubsztal)
  • Golf Mk6 (EU) 1.6 TDI manual (User:carlos-ddd)
  • Caddy 1.6 TDI manual (User:grekiki)

Drive-by-wire capabilities

Lateral Control (steering)

VW LKAS message (HCA) is used for steering currently, but HCA won't work down to 0 km/h. Gen 3 steering rack should work and SHOULD be possible being retrofitted to older vehicles (replacing generation 1 and 2 racks).

When steering via HCA then after 6 minutes (300 sec) the steering will fail for 3 seconds (we call this a "timebomb") and then HCA can be resumed again. This timeout can be prevented - after 5.5 minutes terminate HCA message for 1.05 seconds and the 300 sec timeout will reset (counting new 300 period).

There is another steering CAN message being worked on - DSR (Driver Steering Recommendation). This message could help circumvent the timeout of HCA message (using it intentionally for a while to reset the HCA timeout). DSR should allow for more torque than HCA and possibly replace HCA completely, but that is yet to be explored.

Parking assist can be used for steering up to 20 km/h but is commanded by steering angle rather than torque (as HCA and DSR is). For steering in all speeds a combination of Park assist and HCA/DSR could be used but the transition to/from PA has to be solved (probably nothing quite simple).

Rack part numbers

  • 1K0909144E (HCA steering down to 50 km/h, no steering 50-0) - SW2501
  • 1K0909144M (HCA steering down to 20 km/h, no steering 20-0) - SW3201
  • 1K0909144R (HCA steering down to 20 km/h, no steering 20-0) - SW3501

SW2xxx steers down to 50 kmh. SW3xxx steers down to 20 kmh.

If your car is not factory fitted with LKAS, you will (probably) need to enable the HCA-message-receiving-feature in your steering rack by editing its configuration. If your rack (adress 44) supports coding it is at byte 0, bit 4 (set it to 1). Some of the racks dont support coding (e.g. 1K0909144M). In this case you need to do it via Adaptations. Select "Lane Assist" (Channel 06) from the dropdown in your software and enable it (set it to 1).

EEPROM of the racks can be accessed over OBD. Rack can be flashed to different ROM (partial FW updates only though). Any SW2XXX can be flashed to R SW3501. Contact Edgy#0385 on discord for flash files.

Edit January 2022: There is a new steering rack firmware mod by Willem Melching (at the time comma employee) which removes both the timebomb and minimal steering speed issues. The delay with no steering after timebomb was shortened from 1 s to 0.01 s (effectively no delay) and the minimum steering speed set to 0 kmh. The blog demonstrated the mod for rack 1K0909144E with firmware 2501 but firmware 3501 was reported to work too. Willem wrote a VW PQ35 EPS (firmware) flasher.

Longitudinal Control (gas+brakes)

Gas

comma pedal is likely to be used for acceleration on cars not supporting ACC, ACC supported cars can and should be controlled trough mACC_System message on CAN. Note: There is no known interaction of pedal CANID's causing issues on Drivetrain nor Ext Can.

Brakes

Braking should be supported through given ABS pump that has ACC braking capability:

  • MK60EC1 H31 or newer for ACC support (part number 1K0907379)
  • MK60EC1 H46 for EPB, BSD, RTA and PLA 3.0 support (part number 1K0907379BM, -CC)
  • Other ABS pumps not yet tested

The ABS can brake if it can be coded for ACC (Byte16-Bit5 set to 0) and coding is accepted.

Currently, there is no braking below 15 km/h with MK60EC1 H31+ pump.

The MK60EC1 H46 pump which supports EPB does allow braking till 0 IF a EPB system has been retrofitted and the proper coding has been done. Aswell the pump must be flashed to BS FW (1K0907379BS_0166.sgo).

Coding needed: Byte 16 bit 5 to 0; Allow listening to mMotor_Bremse message, Byte 18 bit 2 to 1; Follow 2 Stop activation,

One issue remaining is that once at standstill the ABS faults out with: 01314 - Engine Control Module. 008 - Implausible Signal

This could probably be circumvented but more testing is needed.

A car with stock stop&go ACC functionality should naturally be able to brake down till 0 with ACC message.

Golf

ACC was not factory fitted to Golf Mk5 and Mk6.

EPB retrofit - it should be able to retrofit EPB to at least Golf Mk6. Following are the parts needed for a Golf Mk6 1.2 TSI DSG:

  • MK60EC1 H46 ABC pump (1K0 907 379BM)
  • EPB ECU (56D 907 801A) - from Chinese VW Magotan
  • EPB button (5GG 927 225)
  • EPB button for Sharan (7N0 927 225 B XSJ). Works if wired correctly. Easier to build away.
  • Golf Mk7 rear brake calipers (8v0 615 423 + 8v0 615 424)
  • following may also be needed (depends on your brake disc dimensions etc.):
    • rear brake discs 272 mm (1K0 615 601AA)
    • front calipers (8v0 615 124 + 8v0 615 123)
    • front discs 312 mm (1K0 615 301AA)
      • Note: Golf Estate | Jetta Sportwagen Mk6 does not need modification to front brakes. Only rear.

Here you can find the wiring schemes to make the harness required for EPB: https://drive.google.com/drive/u/0/folders/1n_4RoSohHVmm99WKcGKydXskf4IVxTHu

Passat B6/B7

All B6+B7 had EPB by default. On B6 there was ACC but without F2S (follow-to-stop = braking till 0) and B7 had ACC with F2S. It is possible to retrofit B7 ACC to B6 (Kamold's Passat B6 retrofit guide) - you should not need to touch the brakes (discs+calipers).

Possible Retrofits

PQ Vehicles can be retrofitted with allot of the latest MQB features if done in correct order. The first retrofits to consider if wanting to go to 2015-2017 assist systems:

  • 3D Instruments Cluster (This offers support for display of those functions including matching CP items)
  • A 2017 ABS pump (For the MK60EC1 abs it requires H46 flashed to CC Firmware)

After this retrofits you can go ahead and retrofit:

  • 5Q0 Side assist with Rear Traffic Alert
  • 3Q0 Lane assist with Sign Assist and High Beam Assist
  • 7N0 Adaptive Cruise Control
  • Park Assist 3.0

It's also possible to not retrofit some one those newer MQB assists but the Passat B7 assists this may be possible after checking some requirements. An overview of systems you could possibly retrofit:

  • 3AA Adaptive Cruise Control
  • 3AA Lane Assist with Sign Assist and High Beam Assist
  • 3AA Side Assist
  • Park Assist 1.5 and with a supported ABS Park Assist 2.0

Code

There are various openpilot forks tuned for particular PQ platforms.

PQ35

Discord user Edgy (Golf Mk6): https://github.com/CineXWorm/openpilot

  • Bleeding edge of PQ. All retrofits* : vw-private-pq-merge

Discord user Khonsu (Golf Mk6): https://github.com/actuallylemoncurd/openpilot

  • Works with most PQ's. OP Version 0.7.9, timebomb bypass : community-master-merge

Passat

Guide by Discord user Redragon_101

2010 Passat B6 PQ46 with factory ACC on powertrain setup for OP with white panda.

J533 Harness pinout:

All connections are made by taps. ie make a 3 way junction, no need to cut wires.

Example: gateway pin6, vehicle pin6, and panda pin 14 should all be wired together

  • Pin 14 on panda goes to 6 of J533 harness
  • pin 6 on panda goes to 16 of J533 harness
  • pin 4 on panda goes to 11 of J533 harness
  • pin 16 on panda goes to 1 of J533 harness
  • pin 8 on panda goes to 14 of J533 harness
  1. Install jyoungs8607 0.7.4 vw-community-private-pq branch onto EON.
  2. Add your fingerprint of your car by using Workbench. This program has a Get fingerprint command built in and add it into /data/openpilot/selfdrive/car/volkswagen/values.py of the EON using WinSCP or similar.
  3. Using WinSCP log into the EON and find /data/openpilot/selfdrive/car/volkswagen/interface.py
  4. Find this line: https://github.com/jyoung8607/openpilot/blob/6201db04268c930f30ed025b9e0851ae7248eaeb/selfdrive/car/volkswagen/interface.py#L113
  5. comment it out and add a line below saying ret.canValid = True
  6. Reboot EON and take it for a test drive. Hope this helps someone out.

Diverse notes

Extended CAN is defined for PQ since the very beginning and is still used in today’s PQ verhicles (Caddy, Sharan, Alhambra). MQB and PQ have completely different CAN messaging schemes which can’t be mixed. But there do exist units that can be coded (VCDS) to either PQ or MQB (e.g. 3Q0 camera, 5Q0 side assist radar, many PLA units, ...) The manufacturer simply programmed both messaging schemes (PQ or MQB) selectable. Thus, the same part number can be used on either platform. That’s probably why people talk about a PQ-MQB-mix which is technically very wrong. Either the unit is in PQ mode or in MQB mode. (by carlos_ddd)

When you are driving a PQ car, you cannot use the factory provided software on your EON or other device. Instead of the "master" branch you need to use a different branch. use PQ-legacy if you dont have a pedal. If you are using the J533-Harness you need the extcan variation. If you have a pedal and a supported ABS and you feel adventurous, you can use a non-legacy branch.