Hardware Development Enabling audio output on VW MkVI GTI w/ Dynaudio

Search This thread

AxesofEvil

Member
May 28, 2011
41
27
I'm not sure this is the best place for this, but given how hard it was to find good information about this combination, I thought I'd put it here.

I purchased a M500S for my MkVI GTI, however when I installed it, I couldn't get any audio output. Searching the internet for how to use the stock amp with an aftermarket head-unit yielded lots of different information, most of it wrong. I talked to the vendor, but they were less than helpful, indicating that Dynaudio was unsupported with this head unit (true) and that VW used an optical signal to communicate between the head unit and amplifier (untrue). I saw a post from @COASTER19 regarding reading the steering wheel buttons on an Audi here, which looked awfully similar to my steering-wheel/gauge cluster, so figured I'd give it a go myself.

So I built hooked a cheap CAN bus controller to a Raspberry Pi, and analyzed my current (working head unit). I was able to determine that:
  • The media CAN bus runs at 100 kbps (as opposed to the drivetrain canbus which runs at 500 kbps)
  • The amplifier has an identifier of 0x6C7
  • The amplifier can be powered on/off via CAN bus commands
  • Once powered on, the M500S audio worked fine
  • The amplifier supports direct balance/fade commands (which may be useful some day in the future)
With this info, in hand, I made a simple circuit from an Arduino Pro Mini + MCP2515 module that is activated from the 'Amp Power' lead on the back of the radio. It simply replays the messages I snooped from the current head-unit, and now my M500S works perfectly with the stock Dynaudio amplifier/speakers. I don't currently send the fade/balance commands to the amp, so maybe the quality could be better, but that is a project for another day.

I have released the schematics, code and what CAN info I have on GitHub here.

In theory this project could completely replace the module that came with the unit and/or provide music/navigation updates on the gauge cluster as well, but that requires figuring out how to get that info out of the head unit, and I don't have the time to write an Android application to do so right now.
 

AxesofEvil

Member
May 28, 2011
41
27
While trying to identify the CAN ids, I found this post by @hugovw1976
regarding a Golf 6 with some CAN bus commands: https://forum.xda-developers.com/t/mtcd-kgl-px5-canbus-problem-with-vw-golf-6.3632690/post-73939457

That post identifies the following canids:
  • 0x2C3: power on/off
  • 0x635: lights on/off
  • 0x470: doors open
  • 0x35B: RPM
  • 0x527: Speed and outside temperature
  • 0x621: Wiper state and fuel level
  • 0x65D: odometer
  • 0x351: reverse and brake
  • 0x571: battery voltage
  • 0x151: seat-belt state
I didn't spend too much time investigating these, but I at least see some correlation with the battery voltage, door-open, and fuel-level canids, so they are probably accurate. However, I was not able to correlate the odometer, so probably further investigation is needed there.
 
Last edited:
  • Like
Reactions: criszz and marchnz

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    I'm not sure this is the best place for this, but given how hard it was to find good information about this combination, I thought I'd put it here.

    I purchased a M500S for my MkVI GTI, however when I installed it, I couldn't get any audio output. Searching the internet for how to use the stock amp with an aftermarket head-unit yielded lots of different information, most of it wrong. I talked to the vendor, but they were less than helpful, indicating that Dynaudio was unsupported with this head unit (true) and that VW used an optical signal to communicate between the head unit and amplifier (untrue). I saw a post from @COASTER19 regarding reading the steering wheel buttons on an Audi here, which looked awfully similar to my steering-wheel/gauge cluster, so figured I'd give it a go myself.

    So I built hooked a cheap CAN bus controller to a Raspberry Pi, and analyzed my current (working head unit). I was able to determine that:
    • The media CAN bus runs at 100 kbps (as opposed to the drivetrain canbus which runs at 500 kbps)
    • The amplifier has an identifier of 0x6C7
    • The amplifier can be powered on/off via CAN bus commands
    • Once powered on, the M500S audio worked fine
    • The amplifier supports direct balance/fade commands (which may be useful some day in the future)
    With this info, in hand, I made a simple circuit from an Arduino Pro Mini + MCP2515 module that is activated from the 'Amp Power' lead on the back of the radio. It simply replays the messages I snooped from the current head-unit, and now my M500S works perfectly with the stock Dynaudio amplifier/speakers. I don't currently send the fade/balance commands to the amp, so maybe the quality could be better, but that is a project for another day.

    I have released the schematics, code and what CAN info I have on GitHub here.

    In theory this project could completely replace the module that came with the unit and/or provide music/navigation updates on the gauge cluster as well, but that requires figuring out how to get that info out of the head unit, and I don't have the time to write an Android application to do so right now.
    2
    While trying to identify the CAN ids, I found this post by @hugovw1976
    regarding a Golf 6 with some CAN bus commands: https://forum.xda-developers.com/t/mtcd-kgl-px5-canbus-problem-with-vw-golf-6.3632690/post-73939457

    That post identifies the following canids:
    • 0x2C3: power on/off
    • 0x635: lights on/off
    • 0x470: doors open
    • 0x35B: RPM
    • 0x527: Speed and outside temperature
    • 0x621: Wiper state and fuel level
    • 0x65D: odometer
    • 0x351: reverse and brake
    • 0x571: battery voltage
    • 0x151: seat-belt state
    I didn't spend too much time investigating these, but I at least see some correlation with the battery voltage, door-open, and fuel-level canids, so they are probably accurate. However, I was not able to correlate the odometer, so probably further investigation is needed there.