X axis is time in seconds before the crash and y axis is steering wheel angle.
At the time of the accident, the steering wheel angle jumped from an even course with fluctuations of a maximum of 4 degrees to 0 at the time of the accident.
In the manufacturer’s statement, these jumps are dismissed as plausible.
This picture shows that the accident took place on a bend. There are 2 waiting vehicles at the traffic lights. You can see that the accident took place almost exactly at the apex of the bend. Suddenly steering straight out would have meant that my vehicle would not have driven perfectly straight behind the other three, but would have caused a collision that was shifted to the side.
An earlier failure of the steering wheel’s data bus value is also documented in the fault memory:
Bufferoverflow
The event data recorder stores the data of the accident as a block of data in hex values and this dump is also contained in the PDF that was read out by the expert. We have already been able to determine the position of the steering wheel angle in the accident data memory:
5B contains the speed values, 5C is the accelerator padel position, 5E is the steering wheel input.
Values of my ID first:
Values from a C. B. accident, engine speed values are already available from beginning:
From later model years, the engine speed is also available in the ID:
The steering wheel angles are stored as 8-bit unsigned values. An 8-bit value means a maximum size of 28 = 256 values. If a larger value is written there, an overflow occurs (buffer overflow).
Technical similarities with the other vehicles
The accidents involving vehicles of another brand (C.B.) are also listed here because they are technically closely related to my vehicle. That is why the manuals for these vehicles are also identical. Both vehicle types use the MEB (Modular Electric Drive Kit) platform.
If you look at the values of the identical vehicle, the stored “invalid data” can be explained by a buffer overflow:
The steering wheel angle is calculated from the hex data as follows:
take the raw value * factor 2 and subtract the offset of – 254. If you then define steering angles greater than 254° or less than -254° as “invalid”, you get exactly the stored values.
In contrast, there is diagnostic data for the steering wheel angle which suggests that the angle has values up to 289°: “Encoder for steering angle, offset straight ahead -289°”
If the steering wheel angles have an offset of 289, it can be assumed that they have values around +- 300.
The available data of the other drivers are from accidents in which they wanted to park in a parking space and a very strong acceleration took place, triggered by the driver according to the accident data memory.
One driver was about to park diagonally forwards to the right into a parking space.
The second accident data memory entry comes from a vehicle that was parked diagonally to the left.
Engine speed
The stored value of the engine speed from the hex dump is multiplied by 64 to arrive at the decimal value in the tabular display of the accident data memory.
Brake
The value of the brake is recorded in binary form.
What can an overflow in software do?
An overflow means that when programming a certain value that you want to save, you have calculated a maximum size for the value and have therefore provided a space of this size for it. In the case shown here, it is the steering wheel angle that is to be saved in an 8-bit value. An 8-bit value means a maximum size of 28 = 256 values. If you write a larger value there, an overflow occurs and, depending on the system, a 0 may suddenly appear there, which corresponds to a straight line.
Famous examples of an overflow: Software errors in space travel: everything crashed in the nineties – Golem.de https://glm.io/117537?n
Whether these overflowed values are only used when saving in the accident data memory or have also found their way into the driver assistance systems as input parameters and lead to unexpected effects cannot be clarified without inspecting the code. Possible effects on the driver assistance systems can be found in the chapter on the power of driver assistance systems.
In addition, the stored steering wheel value at the time of the accident does not match the position of the vehicle in front of the wall. This is because in order to stand straight in front of the wall, as is usual when parking, the wheels have to be steered straight again at the end. The car was straight in front of the wall at the time of the accident.