Hi everyone,
I’m working on a PQ25 → MQB MIB2 CAN translator for my Polo 6R and I’m looking for some help obtaining the actual MQB CAN frames used for the multifunction steering wheel controls.
The setup is:
* Polo 6R / PQ25
* BCM Max
* MQB MIB2: 3Q0 035 844B
* Teensy 4.1 with two CAN interfaces
* Polo CAN side: 100 kbps
* MIB/MQB side: 500 kbps
I already have several parts of the translator working. For example, I’ve successfully translated the Polo ignition state to MQB Klemmen_Status_01 (0x3C0), and the MIB now correctly recognizes Terminal 15. Illumination/dimming translation is also working.
The remaining problem is the multifunction steering wheel.
I’ve already captured and decoded the Polo/PQ side. My wheel sends the following on 0x5C1:
Release 00 00 00 50
Next 02 00 00 50
Previous 03 00 00 50
Volume + 06 00 00 50
Volume - 07 00 00 50
Phone 1A 00 00 50
Voice 2A 00 00 50
Mute 2B 00 00 50
0x5BF also mirrors these frames on my Polo.
However, simply forwarding these frames to the MQB/MIB CAN at 500 kbps does not operate the MIB.
I’ve also experimentally tried PQ-style frames on 0x5C1 and 0x5BF, including:
0x5C1 06 00 00 50
0x5C1 06 00 01 11
0x5BF 06 00 00 00
with no response from the 3Q0 MIB.
So rather than continue guessing, I’m looking for a raw CAN capture from a genuine MQB vehicle with MIB2.
Ideally I need the frames seen on the Infotainment CAN / CAN network feeding J794 while individually pressing:
Volume +
Volume -
Mute
Next
Previous
Phone
Voice
A short capture of idle → button press → release → idle for each button would be perfect. CAN ID, DLC and all data bytes are what I need.
If anyone has CAN logs from a Golf Mk7, Polo 6C/AW, Tiguan AD1, Passat B8, etc. with MQB MIB2 and multifunction steering wheel, or knows the actual MQB message/ID used by J794 for these commands, I’d greatly appreciate the information.
I’m particularly interested in the actual frames reaching the infotainment side, rather than the LIN communication between the steering-wheel buttons and steering-column electronics.
I’m happy to share the finished PQ → MQB Teensy translator code and findings once this is working, as it may be useful for other people retrofitting MQB MIB2 units into PQ cars.
Thanks for any help.
Help needed: MQB MIB2 steering wheel CAN frames / MFSW button CAN IDs
- ciclo
- Bling Bling Diamond Member
- Posts: 8901
- Joined: Sun Feb 24, 2013 10:20 am
- Drives: 6R'13/G7.5'19
- Location: Earth ♥, Spain.
- Contact:
Re: Help needed: MQB MIB2 steering wheel CAN frames / MFSW button CAN IDs
Hi Hiroki
First of all, we want to thank you for trusting the knowledge of this forum. We feel flattered, but to be completely honest, you’ve brought a NASA-level engineering query to a place where we are usually busy arguing about which engine oil is better or how to change a cabin filter!
We are good at many car things, but your project is on a whole different level of specialization.
That being said, we love a good challenge and your PQ25 → MQB MIB2 translator project with the Teensy 4.1 sounds absolutely brilliant. Massive respect for already cracking the ignition state (Terminal 15 on 0x3C0) and the dimming translation. That’s a huge milestone!
Since we don't want you to leave empty-handed, here is the technical reason why your experiments aren't working on the 500 kbps MQB side:
1- State vs. Event: Your PQ25 steering wheel works on events (it shoots a frame when you press a button and another when you release it). MQB architecture is strictly cyclic (state-based). The MIB2 (J794) expects a continuous "heartbeat" message from the steering wheel controls roughly every 100ms. If you just send a single burst frame, the MIB2 simply ignores it.
2- The MQB IDs: On the MQB Infotainment bus, the Multi-Function Steering Wheel (MFL) typically broadcasts on ID 0x5BF (and sometimes interacts with 0x2C3), but the internal byte layout is completely different from your Polo's PQ format.
Where to find the exact raw logs without guessing: Instead of shooting in the dark, you should look into open-source autonomous driving projects. Check out the Comma.ai (OpenPilot) GitHub repository. If you look for their Volkswagen .dbc files (the database files that map the CAN bus), they have already reverse-engineered the entire MQB Infotainment network. You will find the exact bit-and-byte mapping for Volume +, Volume -, Mute, and Track Skip commands there.
Also, look up some GitHub projects regarding "MQB steering wheel retrofits on PQ cars". Developers there have already coded the exact translation matrices you need for your Teensy.
If you hit a brick wall with the dual-baudrate code (FlexCAN_T4), the Official PJRC Teensy Forum is your best bet. But please, once you get it working, come back here and show us! We’d love to see a Polo 6R rocking a fully functional MQB MIB2 unit thanks to a tiny Teensy.
Best of luck!
First of all, we want to thank you for trusting the knowledge of this forum. We feel flattered, but to be completely honest, you’ve brought a NASA-level engineering query to a place where we are usually busy arguing about which engine oil is better or how to change a cabin filter!
We are good at many car things, but your project is on a whole different level of specialization.
That being said, we love a good challenge and your PQ25 → MQB MIB2 translator project with the Teensy 4.1 sounds absolutely brilliant. Massive respect for already cracking the ignition state (Terminal 15 on 0x3C0) and the dimming translation. That’s a huge milestone!
Since we don't want you to leave empty-handed, here is the technical reason why your experiments aren't working on the 500 kbps MQB side:
1- State vs. Event: Your PQ25 steering wheel works on events (it shoots a frame when you press a button and another when you release it). MQB architecture is strictly cyclic (state-based). The MIB2 (J794) expects a continuous "heartbeat" message from the steering wheel controls roughly every 100ms. If you just send a single burst frame, the MIB2 simply ignores it.
2- The MQB IDs: On the MQB Infotainment bus, the Multi-Function Steering Wheel (MFL) typically broadcasts on ID 0x5BF (and sometimes interacts with 0x2C3), but the internal byte layout is completely different from your Polo's PQ format.
Where to find the exact raw logs without guessing: Instead of shooting in the dark, you should look into open-source autonomous driving projects. Check out the Comma.ai (OpenPilot) GitHub repository. If you look for their Volkswagen .dbc files (the database files that map the CAN bus), they have already reverse-engineered the entire MQB Infotainment network. You will find the exact bit-and-byte mapping for Volume +, Volume -, Mute, and Track Skip commands there.
Also, look up some GitHub projects regarding "MQB steering wheel retrofits on PQ cars". Developers there have already coded the exact translation matrices you need for your Teensy.
If you hit a brick wall with the dual-baudrate code (FlexCAN_T4), the Official PJRC Teensy Forum is your best bet. But please, once you get it working, come back here and show us! We’d love to see a Polo 6R rocking a fully functional MQB MIB2 unit thanks to a tiny Teensy.
Best of luck!
-
Hiroki
- New
- Posts: 46
- Joined: Mon Feb 27, 2023 5:34 pm
- Drives: 6r Polo 1.2 TSI 2011
- Location: Jamaica
Re: Help needed: MQB MIB2 steering wheel CAN frames / MFSW button CAN IDs
Thanks for the reply bro.
You are too kind, you are THE one and only Master Ciclo
.
Thanks for the info. Will look into it and will keep you posted
Thank you!!!
You are too kind, you are THE one and only Master Ciclo
Thanks for the info. Will look into it and will keep you posted
Thank you!!!
Re: Help needed: MQB MIB2 steering wheel CAN frames / MFSW button CAN IDs
I have no idea and knowledge about the topic, but you can check this post too, he also does mfsw upgrade with can/linbus
There are also other posts connected to this one. Check them also
https://www.drive2.ru/l/728553722946258141/
There are also other posts connected to this one. Check them also
https://www.drive2.ru/l/728553722946258141/
