Generation 2.5 of Sound Actuator / Active Exhaust Units

It’s been a long break since my last article (you know, the war is happening), and I’ve finally found time to continue my research. Previous article:

The template for the 010 Editor to parse both generations (2 and 2.5) was published half a year ago, but these were purely my theoretical considerations. Now I got the real GEN2.5 unit to play with.

GEN2 – on the left                                                                       GEN2.5 – on the right

The base part number of the hardware is 81A 907 159 A for the solid brick or 4K0 907 159 for the unit with mounting brackets. The main differences with GEN2 are the hardware version H08 and the new “Kendrion” logo in the sticker.

The module is installed in several modern Audis and MQB-Evo cars, so you may also find it by “personal” numbers:

4K0 907 159 C
4K0 907 159 D

4M8 907 159 A
4M8 907 159 B

5FE 907 159
5FF 907 159
5FF 907 159 A
5FF 907 159 C
81A 907 159 B

82A 907 159 A

83A 907 159
83A 907 159 A

8S0 907 159 E
8S0 907 159 F
8W0 907 159 L
8W0 907 159 M
8W0 907 159 N

8Y0 907 159

The only real change in GEN2.5 hardware is that they added one more graph to control the gain: pedal pressure. They’ve also doubled the sound sample rates, but I haven’t seen any real advantage of that – most of the firmware use old formats.

New VIN / engine / model lock became the real pain in the ass: this part was completely redesigned and split into two tables. There is a new logic to assign firmware profiles to FPA modes of the car. They also tried to save space and use half-bytes (4 bits) to store the values in the FPA lists (and a variable number of them per entry). It makes them really hard to edit – you can’t simply make properties for the 010 template but need to count byte shift every time.

⚠️ The big-endian format and the (+1) needed for every value don't make it any easier. Also note the last (7th) FPA mode using a full byte rather than half.

The complete list of entries for facelift Audi TTRS looks like this:

The firmware contains two car profiles: the first is a regular body type (I still don’t know what “G” means), and the second is for the Cabrio model. The table with FPA mode assignments now has a “Schema” byte, declaring the presence of the second (or even the third) configuration per car: in our case, this is the additional set of sound profiles used with an open roof. There should be more options available for half cylinders firing, gearbox in the parking mode, electric motor engadged and so on.

0 value indicates the Basic schema, 4 – Cabrio. Other numbers require double-check and verification.

I’m not sure where the “Default” profile column is located in the new structure, so it’s an open question how the car without Drive Select modes would behave. FPA flag (J / N / 0 values) in the Car table limits only the detection part.
It could be (potentially) stored in one of the halves of “byte_1”.

All in all, what we know so far is enough to unlock all publicly available GEN2.5 firmware.

Sound Actuator

File Car Comments
FL_5FF907159___0002.UNLOCKED.odx Seat Leon4 1.4TSI Hybrid This fw is a direct replacement of 5FE907159, both have the same graphs
FL_5FF907159C__0001.UNLOCKED.odx Cupra Formentor 2.0TSI EA888evo4
FL_4ML907159C__0005.UNLOCKED.odx Lamborghini Urus The new king of the road. The lion's roar of the mighty V8
Audi TTRS Facelift The Cabrio model uses a second profile

Active Exhaust

File Car Comments
FL_4M0907160A__0002.UNLOCKED.odx Audi Q7 3.0TDI Q7 / Q8 firmwares are 99.99% identical. There is only a few bytes difference in filters applied.
FL_4M8907160A__0002.UNLOCKED.odx Audi Q8 3.0TDI
FL_80A907160A__0002.UNLOCKED.odx Audi SQ5 3.0TDI

Just an interesting find: new AGA units also use new “cauldrons” to produce the sound.

They are smaller and flatter. No more direct connection to the pipes as well.

A New Era of Mutants starts here

While not many cars use the GEN2.5 and even fewer devices are in the hands of the community, I decided to try converting my new favorite Urus to the old, GEN2 format. Sound samples and speed / acceleration / RPM graphs could be directly copy-pasted. The only changes needed were to update the “Samples_count” and “Sample_rate” values (other table dimensions remained the same). I also copied the columns of all the 8x16 index tables to the old 8x12 placeholders, but still not sure they are used in the same way. The biggest challenge is the new quantifiers and formulas for the Gain, Pitch-Shift, and Delay tables. They all need to be recalculated and I left the old values from the 8W0 donor. The firmware still needs more work – let’s call it BETA for now. Burbling is very similar to the original GEN2.5, but it definitely does so between ignition sparks. Volume gain at lower RPMs is also a bit different.

Since I already opened Pandora’s box, I also did an AGA to SAK conversions for GEN2 firmwares, because why not?

I hope you will do more experiments and interesting findings.

Stay tuned…

PS: Some may not know this, but my bin2odx tool automatically calculates the checksum. --debug command-line parameter will show the new values.

  ← Previous
Research of MIB2 Sound Datasets


temp temp

More like this