WEBVTT 00:00:00.399 --> 00:00:09.269 ♪ (preroll music) ♪ 00:00:09.269 --> 00:00:15.829 Angel: After half a year, Volkswagen committed to tweaks to their emission readings. 00:00:15.829 --> 00:00:19.939 Those two boys, Daniel Lange and Felix Domke here on my left, 00:00:19.939 --> 00:00:22.170 will share some insights with us. 00:00:22.170 --> 00:00:24.330 Daniel will not only focus on the ECUs, 00:00:24.330 --> 00:00:26.759 which is the acronym for the Electronic Control Unit, 00:00:26.759 --> 00:00:29.599 and I think we're seeing one over here already, 00:00:29.599 --> 00:00:34.370 whereby Felix will show us some tricks to extract and tweak the firmware. 00:00:34.370 --> 00:00:37.750 On both sides we will see how many people have been involved in the entire process 00:00:37.750 --> 00:00:42.460 and we would get an idea what everything is involved in there. 00:00:42.460 --> 00:00:47.860 So, you applause and I'm gonna take over the Bildschirm. 00:00:47.860 --> 00:00:51.440 Good luck! 00:00:53.040 --> 00:00:56.810 Felix: Alright. Hello? Okay. 00:00:56.810 --> 00:01:01.210 Hey, so, I'm Felix Domke. 00:01:01.210 --> 00:01:04.220 Do we see the video output yet? No. 00:01:04.220 --> 00:01:05.740 Anyway, I'm Felix Domke. 00:01:05.740 --> 00:01:08.470 I'm here on my own because I was personally interested 00:01:08.470 --> 00:01:12.810 in how Volkswagen is cheating on their emission control. 00:01:12.810 --> 00:01:17.450 And maybe we get video at some point. 00:01:18.890 --> 00:01:21.150 I want to stress that I was self-funded. 00:01:21.150 --> 00:01:26.380 I did this with my own money because I was personally interested in this. 00:01:26.380 --> 00:01:30.280 So I did not do this on behalf of anyone else. 00:01:30.280 --> 00:01:34.869 Daniel: Let's start the Keynote again and see whether that one works better then. 00:01:34.869 --> 00:01:37.720 F: I am sure we figure this out. 00:01:37.720 --> 00:01:40.850 D: Oh, it worked before? 00:01:42.000 --> 00:01:47.140 Yes, that's because one of us two wanted to use a Mac. 00:01:47.140 --> 00:01:48.880 audience laughs 00:01:48.880 --> 00:01:52.690 F: But I wanted to use Keynote, I don't care which operating system. 00:01:52.690 --> 00:01:54.080 D: This one works. 00:01:54.080 --> 00:01:58.010 F: Anyway. So I will now hand off to Daniel which will give the first part of this talk 00:01:58.010 --> 00:02:01.020 and after that I will give the second part of this talk. 00:02:01.020 --> 00:02:04.290 D: Okay, thanks Felix. My name is Daniel. 00:02:04.290 --> 00:02:09.559 I used to work for a big Bavarian auto manufacturer which is not Audi... 00:02:09.559 --> 00:02:12.629 audience laughing 00:02:12.629 --> 00:02:14.189 ...for 14 years. 00:02:14.189 --> 00:02:19.129 I've been running the IT strategy, I've been doing IT architecture. 00:02:19.129 --> 00:02:20.909 And most relevant to this talk, 00:02:20.909 --> 00:02:26.200 I've been responsible for the process chain electronics and electric. 00:02:26.200 --> 00:02:30.680 I've done the rollout of Connected Drive in China. 00:02:30.680 --> 00:02:35.180 So I kind of have quite deep insight into how the automotive industry works 00:02:35.180 --> 00:02:37.219 and I'd like to share a bit with you. 00:02:37.219 --> 00:02:41.430 I'm an Engineer by training, I guess many of you are. 00:02:41.430 --> 00:02:45.269 And I want to share how the engineers think 00:02:45.269 --> 00:02:48.799 inside such a big corporation like Volkswagen, 00:02:48.799 --> 00:02:52.560 and what pressures, what boundary conditions they are working on. 00:02:52.560 --> 00:02:55.900 I have my own company now which makes my life a bit easier 00:02:55.900 --> 00:02:59.099 than Felix's, as you see in the legal disclaimer. 00:02:59.099 --> 00:03:04.400 Those are folks from the UK. 00:03:04.400 --> 00:03:10.150 They're called "Brandalism", I hope you notice the "McDonald's"-M at the end. 00:03:10.150 --> 00:03:15.450 Those are folks who started a few years ago to reclaim the public space. 00:03:15.450 --> 00:03:18.709 They were just annoyed by all of that advertising. 00:03:18.709 --> 00:03:24.049 And when the Paris negotiations for the eco treatment came, 00:03:24.049 --> 00:03:27.790 they just felt a big invitation to use the opportunity 00:03:27.790 --> 00:03:30.650 that Volkswagen has created for all of us 00:03:30.650 --> 00:03:34.639 and make advertising in their style, but perhaps not in the message 00:03:34.639 --> 00:03:36.879 they would usually have conveyed. 00:03:36.879 --> 00:03:40.749 I'm a strategist. 00:03:40.749 --> 00:03:46.939 So what is the thing that defines how the automotive indusry works today? 00:03:46.939 --> 00:03:50.709 We are in a saturated market. 00:03:50.709 --> 00:03:56.579 In the developed countries, so everywhere in Europe, in the North Americas, 00:03:56.579 --> 00:03:59.639 everybody has a car that wants one. Some have two. 00:03:59.639 --> 00:04:01.870 So when you want to sell another car 00:04:01.870 --> 00:04:07.049 you're basically talking about replacing an existing car with another one. 00:04:07.049 --> 00:04:09.779 The only growth you have is in the BRIC states. 00:04:09.779 --> 00:04:12.969 BRIC is: Brazil, Russia, India, and China. 00:04:12.969 --> 00:04:15.989 And, here, especially in China. 00:04:15.989 --> 00:04:19.978 You have a big overcapacity. There's just too many automotive manufacturers 00:04:19.978 --> 00:04:22.419 and there's too many plants they have. 00:04:22.419 --> 00:04:26.690 So all of them basically struggle to get the loads on the plants, 00:04:26.690 --> 00:04:31.729 to produce enough cars and to have those cars sold at some point in time. 00:04:31.729 --> 00:04:35.050 Because the queueing in between production and sales 00:04:35.050 --> 00:04:41.849 is actually the big parking spaces you see in Bremerhaven or so 00:04:41.849 --> 00:04:45.979 where there's ten thousands, in some countries even hundreds of thousands of cars 00:04:45.979 --> 00:04:50.800 basically stored in between production and sales. 00:04:50.800 --> 00:04:53.629 Ten years ago, fifteen years ago, that didn't exist. 00:04:53.629 --> 00:04:58.419 The cars were basically sold off the factory. 00:04:58.419 --> 00:05:02.770 But people have been moving away very, very slowly from cars. 00:05:02.770 --> 00:05:04.539 They have, as I said, a saturated market. 00:05:04.539 --> 00:05:08.819 It's just not that easy to sell a car anymore. 00:05:08.819 --> 00:05:12.259 That is because of social shifts. 00:05:12.259 --> 00:05:15.620 When I was young, there was "The Dukes of Hazzard", 00:05:15.620 --> 00:05:20.289 there was "General Lee", this car that basically is the star of the show. 00:05:20.289 --> 00:05:24.500 There was "Knight Rider" and nobody watched it for David Hasselhoff, not even the girls. 00:05:24.500 --> 00:05:27.870 They watched it for KITT. 00:05:27.870 --> 00:05:30.720 When I was young, I wanted to own a car. 00:05:30.720 --> 00:05:33.810 I wanted to have KITT, possibly. 00:05:33.810 --> 00:05:37.430 And when I grew old enough, I found out I can get a car that looks like KITT 00:05:37.430 --> 00:05:39.710 but, you know, all the fun stuff is not in there, 00:05:39.710 --> 00:05:43.840 so I turned to computers. 00:05:43.840 --> 00:05:48.710 The next thing is organization, megacities. 00:05:48.710 --> 00:05:51.259 We live in very condensed spaces in those cities. 00:05:51.259 --> 00:05:56.460 If you talk about a place like Beijing where there's like 21 million people 00:05:56.460 --> 00:06:01.669 in an area that is one city, where there's nothing big inbetween, 00:06:01.669 --> 00:06:04.259 there's no river, there's no forest, 00:06:04.259 --> 00:06:06.389 it's just like one city. 00:06:06.389 --> 00:06:09.990 If you go to Tokyo, Yokohama, you can drive on the motorway 00:06:09.990 --> 00:06:14.879 for nearly three hours when you enter the city before you leave the city. 00:06:14.879 --> 00:06:18.229 And you're driving on the motorway, you're driving on an elevated road 00:06:18.229 --> 00:06:21.620 for which you paid toll so you actually can drive. 00:06:21.620 --> 00:06:25.099 But it's three hours before you leave the city again. 00:06:25.099 --> 00:06:28.050 And in these cities owning a car and operating a car 00:06:28.050 --> 00:06:31.710 is about the worst thing you can do. You just don't want to do that. 00:06:31.710 --> 00:06:41.039 The average speed of a car in Beijing these days is 12 km/h. 00:06:41.039 --> 00:06:43.819 If you're a good runner you can beat that. 00:06:43.819 --> 00:06:49.180 And incidentally this is exactly the speed that a horse carriage makes. 00:06:49.180 --> 00:06:55.889 audience laughs and applauds 00:06:55.889 --> 00:07:01.039 We have managed to undo all of the innovation of the last 200 years, 00:07:01.039 --> 00:07:05.729 it's just the interior is a little bit more comfortable. 00:07:05.729 --> 00:07:10.189 The actual getting from A to B is the same as with a horse carriage these days. 00:07:10.189 --> 00:07:12.330 And then there's technology shifts. 00:07:12.330 --> 00:07:17.879 The problem is, there are big things, big visions that everybody follows, 00:07:17.879 --> 00:07:20.919 like electric mobility. Electric mobility means: 00:07:20.919 --> 00:07:24.449 You buy a car that's one and a half times the price of your standard car, 00:07:24.449 --> 00:07:28.870 you lug around 300 kg of batteries for no apparent reason to do so, 00:07:28.870 --> 00:07:31.789 and you now need to install something in your garage — 00:07:31.789 --> 00:07:34.780 which you most probably don't have, look at megacities — 00:07:34.780 --> 00:07:38.740 to be able to recharge the car because it only goes a hundred miles. 00:07:38.740 --> 00:07:44.960 So it's currently not a very compelling thing to sell to the end customer. 00:07:44.960 --> 00:07:49.430 There's self-driving cars, which is kind of a great, big vision. 00:07:49.430 --> 00:07:51.520 But I would really call that a "vision". 00:07:51.520 --> 00:07:56.169 A "vision" is something that's not being implemented in my lifetime. 00:07:56.169 --> 00:07:57.569 And then there's downsizing. 00:07:57.569 --> 00:07:59.689 Downsizing means ... 00:07:59.689 --> 00:08:01.699 Everybody wanted to have the biggest engine, 00:08:01.699 --> 00:08:04.770 everybody wanted to have the biggest car, let's say, 10 years ago. 00:08:04.770 --> 00:08:08.580 You wanted to have that six cylinder that was giving you status. 00:08:08.580 --> 00:08:12.289 But now the automotive industry has an overall cap 00:08:12.289 --> 00:08:17.469 on how much emissions the average new car fleet my have. 00:08:17.469 --> 00:08:22.009 And they can only reach that if they manage to sell smaller engines to you. 00:08:22.009 --> 00:08:24.349 Because for everybody who buys a really big engine 00:08:24.349 --> 00:08:26.999 that will never ever make that emission cap, 00:08:26.999 --> 00:08:30.240 they need somebody whom they've sold a small car to — 00:08:30.240 --> 00:08:34.909 preferrably an electric car, because they even have statistical advantages 00:08:34.909 --> 00:08:37.220 to make them a bit more attractive — 00:08:37.220 --> 00:08:38.820 to set that off. 00:08:38.820 --> 00:08:43.230 So very literally the poor guy with the small car needs to exist 00:08:43.230 --> 00:08:47.850 for the rich guy that drives the eight cylinder and doesn't give a shit. 00:08:50.700 --> 00:08:57.940 Strategy-wise, there's only two things that an automotive car company is driven in. 00:08:57.940 --> 00:09:00.980 And that's really everything there is. 00:09:00.980 --> 00:09:03.340 There is "reach a target ROCE". 00:09:03.340 --> 00:09:07.260 ROCE is: Return on Capital Employed. That is just two numbers: 00:09:07.260 --> 00:09:12.200 your EBIT, which is your Earnings Before Income Tax, 00:09:12.200 --> 00:09:17.230 and the amount of money you have in your company, the employed capital, 00:09:17.230 --> 00:09:19.160 which you got from people that lent it to you 00:09:19.160 --> 00:09:22.660 or from your stakeholders, from your investors. 00:09:22.660 --> 00:09:25.520 And that is what the company is measured against. 00:09:25.520 --> 00:09:27.900 Every automotive company basically runs like this. 00:09:27.900 --> 00:09:30.870 Just this one figure, it's a percentage like "30%." 00:09:30.870 --> 00:09:39.330 "30%" means: On the money you have you made a 30% return during that year. 00:09:39.330 --> 00:09:44.750 The downside of measuring in ROCE is that everytime you use that Euro or Dollar 00:09:44.750 --> 00:09:48.520 it counts again because the money works for you. 00:09:48.520 --> 00:09:50.010 That means what you're looking at 00:09:50.010 --> 00:09:55.480 is a company that gradually moves from a very industrial type of application 00:09:55.480 --> 00:09:57.370 to something that tries to move faster, 00:09:57.370 --> 00:10:03.180 that tries to be quick and regain money faster. 00:10:03.180 --> 00:10:05.100 And then there's "outperform the competition." 00:10:05.100 --> 00:10:08.200 You have to understand the situation 00:10:08.200 --> 00:10:10.790 that there's a good dozen companies 00:10:10.790 --> 00:10:14.420 and everybody has the same strategic position: 00:10:14.420 --> 00:10:17.240 "We will outperform the competition." 00:10:17.240 --> 00:10:20.140 So statistically, you will know that half of them are going to fail 00:10:20.140 --> 00:10:25.460 because that won't happen, right? Somebody has to be the lower half. 00:10:25.460 --> 00:10:29.220 But the only thing I have seen in about five or six companies 00:10:29.220 --> 00:10:33.180 where I know the strategy in detail, is: the sequence. 00:10:33.180 --> 00:10:36.680 Is the first or is the latter the more important one? 00:10:36.680 --> 00:10:38.710 And sometimes that depends on markets. 00:10:38.710 --> 00:10:41.890 There's this new emerging market and you want to outperform the competition, 00:10:41.890 --> 00:10:43.620 you want to grow more. 00:10:43.620 --> 00:10:48.180 And then there's this laggard market somewhere in the European Union 00:10:48.180 --> 00:10:51.870 where you just look at the money, you know, how much money are we making on this. 00:10:51.870 --> 00:10:56.810 But that's all, that is how an engineer is basically steered, that is the strategy. 00:10:56.810 --> 00:11:03.530 And that means when you break that down through the levels of hierarchy, what is counting is: 00:11:03.530 --> 00:11:07.330 How much money do you need to make this? 00:11:07.330 --> 00:11:09.720 How much money are you gonna make on this? 00:11:09.720 --> 00:11:14.080 Those two divided will be contributing to the ROCE. 00:11:14.080 --> 00:11:20.320 And do you deliver anything that can help us outperform the competition? 00:11:20.320 --> 00:11:24.380 You notice that there is a lack, which is, you know: What does the customer want? 00:11:24.380 --> 00:11:27.790 Or: What is good for associates? Or something like that. 00:11:27.790 --> 00:11:30.720 Just in case you hadn't noticed before. 00:11:30.720 --> 00:11:37.460 Okay, I'd like to do a bit of a quiz with you before you all fall asleep after lunch. 00:11:37.460 --> 00:11:39.270 Eleven million. 00:11:39.270 --> 00:11:42.800 "Eleven million" in the context of the exhaust emission scandal. 00:11:42.800 --> 00:11:44.320 What is that number? 00:11:44.320 --> 00:11:46.890 Audience: Cars affected! 00:11:46.890 --> 00:11:48.830 Correct! Cars affected. 00:11:48.830 --> 00:11:51.960 Eleven million is actually the Volkswagen cars 00:11:51.960 --> 00:11:54.910 which need to be recalled world-wide 00:11:54.910 --> 00:12:00.050 to get this little filter thing fixed and their software updated 00:12:00.050 --> 00:12:04.880 to meet the emission targets which they had been produced against. 00:12:04.880 --> 00:12:07.580 1500 ...? 00:12:09.810 --> 00:12:12.380 A: Number of engineers! 00:12:12.380 --> 00:12:14.470 Number of engineers? No, not correct. 00:12:14.470 --> 00:12:20.420 Number of engineers would be above 10000 for a car in Volkswagen Group. Sorry? 00:12:20.420 --> 00:12:22.880 A: Cost for fixing it per car? 00:12:22.880 --> 00:12:26.750 Cost for fixing it per car? No, that's maximum 600, we're gonna see later. 00:12:26.750 --> 00:12:28.580 unintelligible suggestion from audience 00:12:28.580 --> 00:12:32.100 No? Well that was too difficult then, and that was a bit intentional. 00:12:32.100 --> 00:12:37.080 That's the amount of hard disks they collected from the associates. 00:12:37.080 --> 00:12:42.420 audience laughs and applauds 00:12:42.420 --> 00:12:48.190 Now the thing is, we've had in the press that there is maximum 13 managers 00:12:48.190 --> 00:12:53.740 which are responsible for this emission scandal within Volkswagen. 00:12:53.740 --> 00:12:59.780 But then they collect 1500 hard disks and USB sticks from 380 associates, 00:12:59.780 --> 00:13:03.670 and that number is a month old because they haven't reported newer numbers. 00:13:03.670 --> 00:13:07.680 So something is mismatching there, right? Something is mismatching there. 00:13:07.680 --> 00:13:09.980 So the first number we have is for how many associates 00:13:09.980 --> 00:13:13.190 are actually somehow affected by this is 380. 00:13:13.190 --> 00:13:17.780 Because you come to work somewhere in Wolfsburg I think, right? 00:13:17.780 --> 00:13:21.230 And then there's this nice chap coming up and telling you, 00:13:21.230 --> 00:13:24.170 "Uhm, actually we took the hard disk off your PC, 00:13:24.170 --> 00:13:26.880 you're gonna get a new one from IT, we guess tomorrow, 00:13:26.880 --> 00:13:31.920 they're a bit behind with, you know ..." 00:13:31.920 --> 00:13:35.190 6.7 billion ...? 00:13:35.190 --> 00:13:37.260 Just shout! 00:13:37.260 --> 00:13:39.400 unintelligible suggestions from audience 00:13:39.400 --> 00:13:42.640 Fine? No that will be less, much less. 00:13:42.640 --> 00:13:44.050 unintelligible suggestions from audience 00:13:44.050 --> 00:13:46.880 Yes, you're getting close. It's the money they put back, 00:13:46.880 --> 00:13:52.220 they set aside to actually pay for the recall and the legal fees. 00:13:52.220 --> 00:13:57.330 Now if you divide that by 11 million you get about €600 per car. 00:13:57.330 --> 00:14:01.760 So it's not that much money per car. 00:14:01.760 --> 00:14:08.040 In Europe, the plan is basically that you go to the dealer and get a software update. 00:14:08.040 --> 00:14:14.980 In the States, people already got $1000 in cash and in coupons 00:14:14.980 --> 00:14:17.260 as a goodwill measure. 00:14:17.260 --> 00:14:22.770 So something I learnt from Martin Haase here going to the CCC Congress all the time 00:14:22.770 --> 00:14:26.150 is that we need to read text really well. 00:14:26.150 --> 00:14:30.350 So the upper one is the original in German, the lower one is my English translation. 00:14:30.350 --> 00:14:34.870 The English translation is as accurate as possible, so it's not good English. 00:14:34.870 --> 00:14:40.070 Please excuse that, it is so you get the gist in case you can only read the English. 00:14:40.070 --> 00:14:44.400 So that is Mr. Pötsch, he's the president of the Volkswagen supervisory board. 00:14:44.400 --> 00:14:50.170 He is the poor guy that now has to sort it all out. 00:14:50.170 --> 00:14:55.290 He used to be the CFO. We're gonna see why that is important a little bit later. 00:14:55.290 --> 00:14:58.740 And he has made this analysis: 00:14:58.740 --> 00:15:03.870 It was "individual misbehaviour", so it's not an organizational problem, 00:15:03.870 --> 00:15:06.630 it's "weaknesses in particular processes", 00:15:06.630 --> 00:15:10.250 and it's "the attitude in particular sub-partitions" ... 00:15:10.250 --> 00:15:14.060 "Teilbereiche des Unternehmens", it's impossible to translate in English, 00:15:14.060 --> 00:15:19.850 it's actually impossible in German, but, you know, the legal team came up with that. 00:15:19.850 --> 00:15:24.620 So the "attitude in particular sub-partitions of the company to tolerate rule violations." 00:15:24.620 --> 00:15:28.590 Now, if we go through this very quickly: It's not a rule violation, 00:15:28.590 --> 00:15:32.050 you violated the fucking law. 00:15:32.050 --> 00:15:37.160 The other thing is, if you have particular processes, you have particular associates, 00:15:37.160 --> 00:15:40.010 and you have particular sub-partitions of the company, 00:15:40.010 --> 00:15:43.560 That tells you something, right? That just tells you something. 00:15:43.560 --> 00:15:46.610 This was probably two days' work of somebody in the legal team, 00:15:46.610 --> 00:15:51.030 and I guess you noticed, right? I guess you notice. 00:15:51.030 --> 00:15:55.680 "Legal team" is probably these people. 00:15:55.680 --> 00:16:02.040 Jones Day is a big American lawyer company 00:16:02.040 --> 00:16:05.320 and they've asked them to help with sorting out this. 00:16:05.320 --> 00:16:11.530 Now the funny thing is, there's public prosecutors all over the planet interested in Volkswagen 00:16:11.530 --> 00:16:13.980 but Volkswagen thinks it's not really clever 00:16:13.980 --> 00:16:17.320 to have those people come in and find all the info, 00:16:17.320 --> 00:16:22.020 it's better to have Jones Day, their own kind of bought-in legal team, 00:16:22.020 --> 00:16:24.690 ask the associates first. 00:16:24.690 --> 00:16:31.040 Now the problem is, whenever the let's say German prosecutors wake up and go in there 00:16:31.040 --> 00:16:36.120 and say, like, "We would like to see what has happened, 00:16:36.120 --> 00:16:39.530 so please hand over the material, please hand over the hard disks," 00:16:39.530 --> 00:16:44.630 they would get a very, very nice reception, be greeted with coffee and shown a room 00:16:44.630 --> 00:16:47.100 where all of the hard disks and everything is stored, 00:16:47.100 --> 00:16:51.990 "We collected it for you." 00:16:51.990 --> 00:16:55.860 I have no idea whether they gonna show everything to them 00:16:55.860 --> 00:17:00.890 I have no idea whether there may be some material lost in between. 00:17:00.890 --> 00:17:04.680 We've heard from Anna earlier in Germany it seems to be 00:17:04.680 --> 00:17:08.339 that things hit the shredder and hard disks get lost and everything. 00:17:08.339 --> 00:17:13.010 So if it works like that in the government I have no idea how it works in companies. 00:17:13.010 --> 00:17:17.540 But if I was on the prosecutors I'd probably see that I speed up a little 00:17:17.540 --> 00:17:20.540 because otherwise you'll get all pre-prepared material. 00:17:20.540 --> 00:17:23.010 And because Jones Day can't do all of that — 00:17:23.010 --> 00:17:26.310 you have to interview all of those people, and you have to look through the hard disks — 00:17:26.310 --> 00:17:29.450 they asked Deloitte to come in and help them. 00:17:29.450 --> 00:17:32.810 Now Deloitte are a very good company, they have very, very good forensic teams, 00:17:32.810 --> 00:17:36.020 so that's a very good choice. But the important thing here is: 00:17:36.020 --> 00:17:41.160 Out of the four big consulting companies that do finance analysis and stuff 00:17:41.160 --> 00:17:45.420 those are the only Americans. The others are headquartered somewhere else. 00:17:45.420 --> 00:17:52.080 So what it tells you here — American legal teams, American auditors — 00:17:52.080 --> 00:17:55.940 that's where Volkswagen looks. Volkswagen is actually afraid of America. 00:17:55.940 --> 00:18:02.510 They are not that afraid of Europe or some other country in some other continent. 00:18:05.110 --> 00:18:08.990 Now, let's talk text a bit again. 00:18:10.910 --> 00:18:16.750 "We have no findings on the involvement of the supervisory board 00:18:16.750 --> 00:18:19.630 or the board of management presented." 00:18:19.630 --> 00:18:24.590 Now, again, "no findings", okay, "presented", right? 00:18:24.590 --> 00:18:28.200 It's not "we don't have any findings" or "there is nothing", 00:18:28.200 --> 00:18:30.810 it says "we have no findings presented." 00:18:30.810 --> 00:18:34.040 And the other thing is "involvement", that's an odd term. 00:18:34.040 --> 00:18:36.670 In German, "Involvierung", that's not even German, right? 00:18:36.670 --> 00:18:40.610 If you look it up, "Involvierung", nobody of you talks of "Involvierung" 00:18:40.610 --> 00:18:44.260 when you talk to your family or when you do something at work. 00:18:44.260 --> 00:18:49.750 The trick here is, the supervisory board has a reason for existing: supervision. 00:18:49.750 --> 00:18:54.480 audience laughs and applauds 00:18:54.480 --> 00:18:59.140 The board of management has a reason for existing and that is: decision. 00:18:59.140 --> 00:19:01.050 They are the deciding body. 00:19:01.050 --> 00:19:04.500 None of them are ever "involved", right? 00:19:04.500 --> 00:19:07.740 When you work on something in a big hierarchical company 00:19:07.740 --> 00:19:10.840 there is no "involvement" of your board member, 00:19:10.840 --> 00:19:14.380 there is no "involvement" of your supervisory board member. 00:19:14.380 --> 00:19:18.120 So per definition, they cannot have an involvement, right? 00:19:18.120 --> 00:19:21.290 If he wanted to be straight he would have said: 00:19:21.290 --> 00:19:27.250 "I, as a former board of management director and now as the head of the supervisory board, 00:19:27.250 --> 00:19:32.520 I guarantee there was no involvement of my or my colleagues in this. 00:19:32.520 --> 00:19:37.370 And if there was, I would pay back my salary, I will go to jail, I will ... whatever." 00:19:37.370 --> 00:19:40.320 Right, sacrifice a goat? 00:19:40.320 --> 00:19:42.970 But that would have been straight communication. 00:19:42.970 --> 00:19:47.250 But this is not straight communication, this is... bullshit. 00:19:48.430 --> 00:19:52.020 Okay, quiz time! 10 ...? 00:19:52.020 --> 00:19:59.070 You remember, this guy here told us there's no involvement in anything fishy, right? 00:19:59.070 --> 00:20:03.290 It's all those small engineers, all those bad, bad people down there. 00:20:03.290 --> 00:20:05.460 But they are gonna hunt 'em down, right? 00:20:05.460 --> 00:20:08.110 So there's no involvement with anything fishy here. 00:20:08.110 --> 00:20:10.530 So, in that context, what is "10"? 00:20:10.530 --> 00:20:12.140 A: Board members! 00:20:12.140 --> 00:20:14.190 10 board members? Close, they have a little more. 00:20:14.190 --> 00:20:15.990 A: Levels of hierarchy. 00:20:15.990 --> 00:20:20.120 Levels of hierarchy — quite good. It's, I think, eight or so, but you're quite close. 00:20:20.120 --> 00:20:29.120 No, it's actually the amount of planes that Volkswagen owns. 00:20:29.120 --> 00:20:30.930 All of them are jet planes. 00:20:30.930 --> 00:20:35.260 Because if you're a board member you have to, you know, fly in style. 00:20:35.260 --> 00:20:38.740 And because there's nothing ever fishy at Volkswagen 00:20:38.740 --> 00:20:43.670 it's run by Lion Air Services out of the Braunschweig airport. 00:20:43.670 --> 00:20:49.870 And obviously, Lion Air Servives is registered in Georgetown on the Cayman Islands. 00:20:49.870 --> 00:20:52.870 applause and laughter 00:20:52.870 --> 00:20:54.930 Nothing fishy ever in that company. 00:20:54.930 --> 00:20:58.190 Okay, let's get back to topic. I have about another ten minutes 00:20:58.190 --> 00:21:03.450 before I want to get Felix the chance to show you what he has done on the ECUs. 00:21:03.450 --> 00:21:09.940 So I need to get you up to speed about how all of this context here works. 00:21:09.940 --> 00:21:15.930 And this here is called the NEDC, it's the New European Driving Cycle. 00:21:15.930 --> 00:21:20.860 This is what your car is tested against for emissions. 00:21:20.860 --> 00:21:24.620 It works like that: You condition the vehicle a day before. 00:21:24.620 --> 00:21:27.340 Which means you really drive it hard on the Autobahn 00:21:27.340 --> 00:21:31.370 so the exhaust is really free and everything. 00:21:31.370 --> 00:21:37.490 And then you do these cycles here where you basically accelerate the vehicle, 00:21:37.490 --> 00:21:40.200 slow down, accelerate the vehicle, slow down, accelerate the vehicle, 00:21:40.200 --> 00:21:43.680 slow a bit down, slow a bit more down, and then you cycle again. 00:21:43.680 --> 00:21:47.090 And the last, cycle 5, is an optional one, depending on what you measure, 00:21:47.090 --> 00:21:49.390 that is actually going to the autobahn 00:21:49.390 --> 00:21:56.280 and you're going up to a top speed of 120 km/h for a very short period of time. 00:21:56.280 --> 00:22:04.850 The people that have detected the tweaked emissions 00:22:04.850 --> 00:22:11.230 in the VW Jetta and Passat they looked at, they have called this 00:22:11.230 --> 00:22:16.450 "a very light usage cycle," and they called it "unrealistic". 00:22:16.450 --> 00:22:21.260 Because basically nobody drives the car like this, it's a very artificial thing. 00:22:21.260 --> 00:22:23.210 And that is the problem for the engineer, right? 00:22:23.210 --> 00:22:27.630 The engineer looks at this and says, "Yeah, you know, it's a standard. 00:22:27.630 --> 00:22:30.010 It's something we do to measure against." 00:22:30.010 --> 00:22:32.930 But nobody drives like this. It's not realistic, right? 00:22:32.930 --> 00:22:37.680 So if you fake the data in this we're not actually faking something our customer uses 00:22:37.680 --> 00:22:41.800 because no customer drives like this, it's very artificial. 00:22:41.800 --> 00:22:46.200 And there's a very good report by ICCT which is, "Mind the Gap". 00:22:46.200 --> 00:22:49.250 Which is what you hear in London when you go into the Tube. 00:22:49.250 --> 00:22:55.059 And what they mean is the gap between what gets out when you measure emissions like this 00:22:55.059 --> 00:22:57.850 and what gets out when you actually drive the car. 00:22:57.850 --> 00:23:00.870 And that gap is widening year by year by year. 00:23:00.870 --> 00:23:05.740 Because engineers get better and better at optimizing for this cycle. 00:23:05.740 --> 00:23:10.770 The cars on the street? Phhh, they do get better as well, but less, right? 00:23:10.770 --> 00:23:14.140 That's why the gap widens. 00:23:14.140 --> 00:23:17.420 And trickery on those tests is very common. 00:23:17.420 --> 00:23:21.130 I'm sorry you can't probably read that in the stream 00:23:21.130 --> 00:23:23.800 and probably can't read that when you're back down there. 00:23:23.800 --> 00:23:27.010 But that's an original slide I had to take from Transport & Environment, 00:23:27.010 --> 00:23:29.180 from that report which I just named. 00:23:29.180 --> 00:23:32.660 And what it says there is what tricks people are doing 00:23:32.660 --> 00:23:35.320 to actually drive down the emissions. 00:23:35.320 --> 00:23:37.900 For example, they blow up the tyres 00:23:37.900 --> 00:23:41.770 by 3 bars more than you could actually use them on the road. 00:23:41.770 --> 00:23:45.600 Now when you do, the bottom of the tyre looks like this, right? 00:23:45.600 --> 00:23:48.340 So that means you only have a very, very small portion of the tyre 00:23:48.340 --> 00:23:52.540 that still touches the ground, so your resistance gets reduced. 00:23:52.540 --> 00:23:59.760 They put diesel into the oil beause diesel is lighter than the oil which you are using 00:23:59.760 --> 00:24:02.740 inside the vehicle, so friction gets reduced. 00:24:02.740 --> 00:24:07.320 They take off the mirror, the side mirror on the passenger side 00:24:07.320 --> 00:24:10.290 because that is not legally required to be existing, 00:24:10.290 --> 00:24:14.170 so, you know, it's resistance, so get away with it. 00:24:14.170 --> 00:24:17.790 They tape close all of the openings of the vehicle 00:24:17.790 --> 00:24:19.980 because obviously when the wind goes over it 00:24:19.980 --> 00:24:23.320 it goes much smoother once you have everything taped. 00:24:23.320 --> 00:24:30.220 Now all of these things are either okay or they are kind of borderline grey area. 00:24:30.220 --> 00:24:33.179 And they do this. This is how actually emissions are tested. 00:24:33.179 --> 00:24:36.170 So this is why an engineer, when he looks at this, says, 00:24:36.170 --> 00:24:40.160 "Yeah, it's an optimization problem. They want me to get a low number 00:24:40.160 --> 00:24:45.780 and I have pretty clever ideas, which involve diesel and sticky tape and everything, 00:24:45.780 --> 00:24:47.460 to reduce the number." 00:24:47.460 --> 00:24:50.460 sighs 00:24:50.460 --> 00:24:53.140 The results are this. 00:24:53.140 --> 00:24:58.670 That's from a 2012 report from — a 2013 report, I'm sorry — from ADAC, 00:24:58.670 --> 00:25:02.860 the German MRT company. 00:25:02.860 --> 00:25:07.370 And what you see, the lighter blue ones are actually the emissions 00:25:07.370 --> 00:25:11.679 which the car produces in this cycle. 00:25:11.679 --> 00:25:14.170 The darker blue ones are the ones which are produced 00:25:14.170 --> 00:25:17.490 when you just go on the motorway and drive them. 00:25:17.490 --> 00:25:19.140 And you see that there is a discrepancy 00:25:19.140 --> 00:25:26.960 which is ten times, twenty times, thirty times what is the measured data. 00:25:26.960 --> 00:25:31.610 So what you need to understand is that even in the past nobody ever thought, 00:25:31.610 --> 00:25:35.980 nobody in the industry ever thought that the data which was measured 00:25:35.980 --> 00:25:40.160 had any real connection with reality, right? 00:25:40.160 --> 00:25:43.510 The only connection was, you knew that what you're measuring 00:25:43.510 --> 00:25:48.090 within the duty cycle NEDC is definitely less 00:25:48.090 --> 00:25:51.080 than what you would ever see in any realtime use. 00:25:51.080 --> 00:25:54.410 But that's it, that's it. That's no secret, right? 00:25:54.410 --> 00:25:58.470 It's something that has been out there for years. 00:25:59.630 --> 00:26:04.690 Now the folks at Deutsche Umwelthilfe, which are actually people that helped 00:26:04.690 --> 00:26:09.130 find out what Volkswagen did, they wanted to see that others do it as well. 00:26:09.130 --> 00:26:12.460 And because I wanted to give you as much information as possible 00:26:12.460 --> 00:26:17.910 we are going to look at this product here now, which is not a Volkswagen as you may see. 00:26:17.910 --> 00:26:21.640 And when you measure this car it actually looks like this. 00:26:21.640 --> 00:26:26.809 So that means when the car is thinking it is running an NEDC — 00:26:26.809 --> 00:26:30.880 because it is conditioned to do so, it is the right temperature, 00:26:30.880 --> 00:26:35.000 it is the right setup — it actually delivers the blue bars. 00:26:35.000 --> 00:26:39.760 And if you run it because you just run it and you don't do the conditioning 00:26:39.760 --> 00:26:42.070 it delivers the grey bars. 00:26:42.070 --> 00:26:45.610 Now there's many things you can say about how they measured this 00:26:45.610 --> 00:26:52.020 because, obviously, this is not science to the best level of accuracy. 00:26:52.020 --> 00:26:54.980 But you do see a pattern here, and you do see the pattern 00:26:54.980 --> 00:26:59.610 of the 30-, 35-fold emissions. And that is what you always see 00:26:59.610 --> 00:27:03.170 because this is what an engine like the one in this car — 00:27:03.170 --> 00:27:06.370 a 1.6 l diesel engine if I remember correctly — 00:27:06.370 --> 00:27:10.600 actually does when it's just operated normally. 00:27:10.600 --> 00:27:16.800 And the lower ones are the ones which you get when the engineers did all the good tweaking. 00:27:18.420 --> 00:27:23.660 Now why has all of this ... Oh sorry, so this is just one test, right? 00:27:23.660 --> 00:27:28.540 And you see that this test, when the vehicle is cold, 00:27:28.540 --> 00:27:34.799 you get fresh air with a nice rose smell out of the exhaust. 00:27:34.799 --> 00:27:38.660 And when the vehicle is operated normally you basically get what you expect, 00:27:38.660 --> 00:27:42.309 you get the combustion products out of burning diesel. 00:27:42.309 --> 00:27:44.929 Now why is all of this now a problem? 00:27:44.929 --> 00:27:48.110 This is now a problem because of the American legal system. 00:27:48.110 --> 00:27:50.380 The American legal system is very, very different 00:27:50.380 --> 00:27:55.370 from what people in the European Union are used to. 00:27:55.370 --> 00:27:59.510 In America, there are two things which are a bit strange perhaps 00:27:59.510 --> 00:28:03.570 to somebody who's accustomed with a German legal system. 00:28:03.570 --> 00:28:05.580 The first thing is, there's jurys. 00:28:05.580 --> 00:28:10.490 So there's common people that actually decide about what's right or what's wrong. 00:28:10.490 --> 00:28:14.260 And that means, what they award as compensation 00:28:14.260 --> 00:28:20.390 to people that have had a disadvantage are often astronomic figures. 00:28:20.390 --> 00:28:23.690 Now these figures are sometimes reduced again by the judges, 00:28:23.690 --> 00:28:30.080 but it's not uncommon that if something hurt you or you got into an accident 00:28:30.080 --> 00:28:32.620 you're awarded million dollar sums. 00:28:32.620 --> 00:28:37.150 In Germany, if somebody shoots your eye out, you may be getting €100,000. 00:28:37.150 --> 00:28:39.790 So there's a huge discrepancy there. 00:28:39.790 --> 00:28:43.290 And the other thing is, in America there are punitive damages. 00:28:43.290 --> 00:28:47.830 "Punitive damages" means: You did something wrong, you did it on purpose, 00:28:47.830 --> 00:28:50.420 and you're punished for it. 00:28:50.420 --> 00:28:54.200 In Europe, a company basically is, you did something wrong 00:28:54.200 --> 00:28:58.580 so now you have to compensate the disadvantage somebody else had. 00:28:58.580 --> 00:29:03.400 So to a certain extent, a company that doesn't try to trick 00:29:03.400 --> 00:29:09.679 actually kind of loses an opportunity because if they are not detected to be tricking 00:29:09.679 --> 00:29:11.320 they have just saved money. 00:29:11.320 --> 00:29:15.360 There's no punitive element, there's no "You will go to jail for this." 00:29:15.360 --> 00:29:19.950 At least in this context of environmental regulation. 00:29:19.950 --> 00:29:23.799 Now in case you couldn't read that, that's actually a sign I took in california. 00:29:23.799 --> 00:29:27.850 You go into a store and it tells you that basically everything you see there 00:29:27.850 --> 00:29:33.780 and touch there is giving you cancer and your unborn children will be damaged. 00:29:33.780 --> 00:29:36.240 This is what it says there: Belts, shoes, jewellery, handbags, 00:29:36.240 --> 00:29:38.030 all products with metal, and everything 00:29:38.030 --> 00:29:41.929 causes cancer, birth defects, and other reproducive damages. 00:29:41.929 --> 00:29:43.809 So this is America, right? 00:29:43.809 --> 00:29:51.030 Their view of protecting the consumer is completely different from Europe. 00:29:51.030 --> 00:29:54.670 And this is why Volkswagen goes and says, "We will show good faith. 00:29:54.670 --> 00:30:00.130 We will give you, American Volkswagen owner, a thousand dollars 00:30:00.130 --> 00:30:05.340 because we just wanna make sure that you at least know we care." 00:30:05.340 --> 00:30:07.790 It's important that you care because the jury will say, 00:30:07.790 --> 00:30:11.160 "Well at least they awarded $1000, maybe a little too little, 00:30:11.160 --> 00:30:13.100 but at least they did something." 00:30:13.100 --> 00:30:18.210 The jury would say that. A professional judge in Germany would say, "Pshh, why?" 00:30:18.210 --> 00:30:22.880 So this is why as a European customer you actually go to the dealership, 00:30:22.880 --> 00:30:25.490 and if that guy is really nice you may be getting a coffee 00:30:25.490 --> 00:30:28.660 while you wait the hour that he flashes your car. 00:30:28.660 --> 00:30:34.160 So that's the only thing you're currently supposedly getting in Europe. 00:30:34.160 --> 00:30:38.799 Okay, now the problem is: What they did hurts. 00:30:38.799 --> 00:30:42.230 And it hurts because, if you do the statistics ... 00:30:42.230 --> 00:30:49.820 Very nice people have published a publication here, a real scientific publication 00:30:49.820 --> 00:30:52.380 where they did the maths, and they say: 00:30:52.380 --> 00:30:55.830 59 people may be dying earlier in the United States 00:30:55.830 --> 00:30:59.480 because of the additional emissions in the environment 00:30:59.480 --> 00:31:02.530 which they took in and which may damage their body. 00:31:02.530 --> 00:31:06.090 The social cost of treating those people — because they may be developing cancer, 00:31:06.090 --> 00:31:08.110 they may be going to a hospital, and so on — 00:31:08.110 --> 00:31:12.100 is about 450 million Euros. Now that's statistics, right? 00:31:12.100 --> 00:31:17.429 "Lies, damn lies, and statistics." Mark Twain is often quoted with that. 00:31:17.429 --> 00:31:21.210 But the problem is: That is a real cost, it is a real damage. 00:31:21.210 --> 00:31:27.960 If you do violate emission laws it is something that is damaging people's health. 00:31:27.960 --> 00:31:31.270 It may be something that is difficult to prove statistically, 00:31:31.270 --> 00:31:36.360 but it is something which you don't only do to save money here or there, 00:31:36.360 --> 00:31:39.240 it is something which you do to actually hurt people. 00:31:40.670 --> 00:31:46.880 Okay, I need to speed up a bit. Very sorry, skip this, that's the next quiz. 00:31:46.880 --> 00:31:51.020 15.9 million is actually the salary of this guy here. 00:31:53.030 --> 00:31:57.220 That's a lady from BMW, I just wanted to put that out there. 00:31:57.220 --> 00:31:59.919 She says, "It shouldn't be called Dieselgate, it's Volkswagen-Gate. 00:31:59.919 --> 00:32:02.540 We never did anything wrong at BMW." 00:32:02.540 --> 00:32:07.440 And the SZ, actually, yay, they follow, right? In November, it was "Abgasskandal", 00:32:07.440 --> 00:32:10.230 in December, it's "Volkswagen- Abgasskandal". 00:32:10.230 --> 00:32:15.830 The only problem is that even in 2000, BMW was cought cheating on the Motorrad. 00:32:15.830 --> 00:32:21.190 So this is 15 years ago. 15 years ago BMW actually put the same code 00:32:21.190 --> 00:32:30.460 which we are now seeing in Volkswagen into their ECUs for the F 650 motorcycle. 00:32:30.460 --> 00:32:35.980 And we will see again here the same 34, in this case, -fold increase 00:32:35.980 --> 00:32:39.820 in between real use and test bench use. 00:32:39.820 --> 00:32:44.559 Now, honestly, they've been caught, they've been caught earlier, and they fixed it. 00:32:44.559 --> 00:32:48.690 So in 2001, they actually brought a new version 00:32:48.690 --> 00:32:52.720 and apparantly that didn't have this cheat code anymore. 00:32:52.720 --> 00:32:56.960 But here we see a pattern again: too little time for development, 00:32:56.960 --> 00:32:59.710 too little money willing to be spent on this, 00:32:59.710 --> 00:33:01.960 so engineers try to trick. 00:33:01.960 --> 00:33:04.260 When you get caught, and you get caught early 00:33:04.260 --> 00:33:07.080 nobody probably of you remember this here. 00:33:07.080 --> 00:33:09.830 It's fine, it kinda fades away into history. 00:33:09.830 --> 00:33:13.929 If you're Volkswagen, if you have 11 million cars out of there, 00:33:13.929 --> 00:33:15.600 you have a big problem. 00:33:15.600 --> 00:33:20.460 Okay, I'll skip this one, it's really nice, you can see it in the slides. 00:33:20.460 --> 00:33:25.809 But I have to go to this here to give Felix enough time. 00:33:25.809 --> 00:33:27.940 So how does component development work? 00:33:27.940 --> 00:33:34.299 There's a huge set of legal frameworks. It's a very structured top-down process. 00:33:34.299 --> 00:33:39.370 You get requirements from the people that represent the market in the company, 00:33:39.370 --> 00:33:42.929 you get requirements from the CFO, from the finance director. 00:33:42.929 --> 00:33:47.669 And these are broken down into documents which are more than a thousand pages long. 00:33:47.669 --> 00:33:53.870 And there's every single detail that could exist in this ECU written out. 00:33:53.870 --> 00:33:58.400 There's a piece of paper for everything it does. 00:33:58.400 --> 00:34:03.220 Everything. There's not a bit in this thing which is not pushed down 00:34:03.220 --> 00:34:06.650 into a very hard set of requirements. 00:34:06.650 --> 00:34:12.418 This is then put into a tool, often Rational DOORS by IBM or something, 00:34:12.418 --> 00:34:15.109 and then every time something changes this is documented. 00:34:15.109 --> 00:34:18.228 There's a complete paper trail, right? 00:34:18.228 --> 00:34:20.690 So that means unless there will be a cover-up, 00:34:20.690 --> 00:34:23.829 unless we're not given all the information as a public, 00:34:23.829 --> 00:34:29.190 there's no way Volkswagen cannot find out who did exactly what at what point in time, 00:34:29.190 --> 00:34:31.579 which level of management was involved. 00:34:31.579 --> 00:34:36.219 Because every step of the development goes through a Q-Gate, a Quality Gate. 00:34:36.219 --> 00:34:39.799 There's managers sitting there and they're approving everything it does, 00:34:39.799 --> 00:34:43.059 every progress that has been made, and they're getting reports, 00:34:43.059 --> 00:34:45.899 at least bi-weekly, on the progress. 00:34:45.899 --> 00:34:51.159 And these reports go up the ladder, they are copied to the next levels of management. 00:34:51.159 --> 00:34:55.498 So this is a fully transparent process and this is a fully top-down driven process. 00:34:55.498 --> 00:35:00.079 It is completely impossible that you have an engineer that sits there and says, like, 00:35:00.079 --> 00:35:05.470 "Well, I wanna cheat," and does the code. There's no motivation for him to do either. 00:35:05.470 --> 00:35:11.140 He doesn't get any money for it, he would only be risking his career, so he won't do. 00:35:11.140 --> 00:35:14.789 And this is why we have paper trails, and this is why engineers have written down, 00:35:14.789 --> 00:35:17.720 "I'm doing this because my manager told me to do this." 00:35:17.720 --> 00:35:22.690 And this is why you have Bosch sending a letter in 2007 to Volkswagen which says, 00:35:22.690 --> 00:35:27.700 "We delivered you this code you requested. We're your supplier, we do. 00:35:27.700 --> 00:35:30.680 But if you send it into production it will be illegal." 00:35:30.680 --> 00:35:33.370 And they did. 00:35:35.170 --> 00:35:40.989 So this is how actually this exhaust system works. 00:35:40.989 --> 00:35:44.109 And this is a little bit important to understand what Felix is now doing 00:35:44.109 --> 00:35:50.299 and showing you how the ECU that manages this all works. 00:35:50.299 --> 00:35:53.190 To the left would be the engine, to the right is the exhaust, 00:35:53.190 --> 00:35:56.920 the end of the exhaust where the remainders come out. 00:35:56.920 --> 00:36:02.739 And the first thing is, you have diesel oxid cathalytic 00:36:02.739 --> 00:36:06.729 and it basically takes out ... The interesting stuff here is CO, 00:36:06.729 --> 00:36:12.569 so carbon oxide, and PM, the particle mass, through 98%, 50%. 00:36:12.569 --> 00:36:17.329 The hydrocarbonides before that, they just kind of don't go through 00:36:17.329 --> 00:36:21.539 the rest of the process anymore. 00:36:21.539 --> 00:36:27.220 Then you have a filter that basically traps all of the diesel particles, 00:36:27.220 --> 00:36:29.979 the stuff that causes cancer in your lungs. 00:36:29.979 --> 00:36:35.400 But you have to burn them out at some point in time, about every 700 km, 00:36:35.400 --> 00:36:36.989 when there have been enough collected. 00:36:36.989 --> 00:36:38.460 So it's a bit a trick, right? 00:36:38.460 --> 00:36:44.059 The trick is: You collect them so they don't exit the exhaust 00:36:44.059 --> 00:36:47.970 but at some point in time you have to burn them again, so they do exit the exhaust. 00:36:47.970 --> 00:36:52.729 Now the positive thing here is, they get larger, and the larger they are, 00:36:52.729 --> 00:36:58.670 the less risk they — at least as much as we know — cause as a health hazard. 00:36:58.670 --> 00:37:04.700 So this is the DPF here. And then at the end, this is the really interesting thing, 00:37:04.700 --> 00:37:07.579 this is what most of the scandal now focuses on: 00:37:07.579 --> 00:37:10.749 There's a selective catalytic reduction. 00:37:10.749 --> 00:37:14.109 And what this thing does is, it does reduce the particle mass, 00:37:14.109 --> 00:37:16.099 it does reduce the particles. That's nice. 00:37:16.099 --> 00:37:23.239 But the interesting thing is NOx. It goes against this to about 90%. 00:37:23.239 --> 00:37:26.650 So this is what it is made for. 00:37:26.650 --> 00:37:36.190 It basically injects urea into the airflow and helps to reduce the NOx content 00:37:36.190 --> 00:37:41.940 by creating by-products which are mostly water 00:37:41.940 --> 00:37:44.809 that comes out the end of the exhaust. 00:37:44.809 --> 00:37:47.670 And this is the system, this is a very complex technical system 00:37:47.670 --> 00:37:51.839 that has to be managed, and this is managed by an ECU. 00:37:51.839 --> 00:37:56.440 This ECU which they selected to do this, and everybody does, is the engine ECU. 00:37:56.440 --> 00:37:59.890 Because to the left of the diagram before was this big engine, you didn't see it, 00:37:59.890 --> 00:38:04.960 it fell off the diagram, but that's actually the fan blowing into the system. 00:38:04.960 --> 00:38:10.729 So this is what you want to manage to actually control what happens there. 00:38:10.729 --> 00:38:15.989 Now this thing is quite a sophisticated processor, 00:38:15.989 --> 00:38:20.170 it's about the most complex device outside multimedia and entertainment 00:38:20.170 --> 00:38:25.400 which we find in the car, and it is a very proprietory thing 00:38:25.400 --> 00:38:28.150 because it contains a physical model of engines. 00:38:28.150 --> 00:38:32.229 So there have been hundreds, if not thousands of engineers sitting there 00:38:32.229 --> 00:38:37.309 and modelling how an engine works, really physically modelling it. 00:38:37.309 --> 00:38:41.789 And the things that an OEM — an original equipment manufacturer, 00:38:41.789 --> 00:38:44.859 a car maker — can actually tweak are variables. 00:38:44.859 --> 00:38:49.049 They can say, "My engine has this and this size, 00:38:49.049 --> 00:38:51.890 my combustion cycle looks like this and that." 00:38:51.890 --> 00:38:55.309 But the code itself is opaque to the OEM. 00:38:55.309 --> 00:39:02.369 It's a proprietory product which you can buy from Continental, or Bosch, or so. 00:39:02.369 --> 00:39:06.849 And there's about 20,000 variables which you can tune. 00:39:06.849 --> 00:39:12.920 And this thing is simulated and tested to death. Because it is hugely important. 00:39:12.920 --> 00:39:17.349 Because you have this machine here that has like 100, 200 horsepowers 00:39:17.349 --> 00:39:21.509 and if you steer it wrong it will blow up, and it will blow up really hard. 00:39:21.509 --> 00:39:29.039 So this is why this thing is about the best tested piece of software you will ever find. 00:39:29.039 --> 00:39:34.729 Which also again means there's everything documented, everything is written down, 00:39:34.729 --> 00:39:39.029 everything is seen by everybody who's working with these, 00:39:39.029 --> 00:39:41.979 whether it's in development, whether it's in integration, 00:39:41.979 --> 00:39:45.720 whether it's in the plants that flash these things, and so on. 00:39:45.720 --> 00:39:47.630 There's nothing secret here in this, right? 00:39:47.630 --> 00:39:51.319 The functions which are there are actually there to be seen, 00:39:51.319 --> 00:39:58.560 well, seen if they are named apparantly, and that is something that Felix will talk about. 00:40:00.754 --> 00:40:09.744 audience applauds 00:40:09.744 --> 00:40:13.190 F: Thank you. Hey, okay. So I will do the second part of this talk. 00:40:13.190 --> 00:40:15.029 I'm Felix, by the way. 00:40:15.029 --> 00:40:18.400 So my motivation with this was a little bit different. 00:40:18.400 --> 00:40:25.749 I'm curious, and, I mean, we can find a lot of source material for this whole scandal. 00:40:25.749 --> 00:40:28.249 We can find a lot of information in the press, 00:40:28.249 --> 00:40:31.759 a lot of information in the Volkswagen press releases. 00:40:31.759 --> 00:40:36.779 However, it should be easier because all the cars are there, 00:40:36.779 --> 00:40:42.950 the 11 million cars are out there that have the cheat code in them. 00:40:42.950 --> 00:40:47.420 And we are hackers, and we know code, and the truth is in the code. 00:40:47.420 --> 00:40:52.660 So my approach was, well, let's take a car, let's take it apart, 00:40:52.660 --> 00:40:55.729 let's take the firmware out of it, let's throw it in a disassembler, 00:40:55.729 --> 00:40:59.069 maybe get some measurements, and then look at what the car is actually doing 00:40:59.069 --> 00:41:04.799 instead of relying on all of this second-hand, third-hand information. 00:41:04.799 --> 00:41:06.660 So what do we need for this approach? 00:41:06.660 --> 00:41:10.969 So first of all, we need a car that's affected. 00:41:10.969 --> 00:41:14.910 You need to drive that car somehow, and driving a car on an open road 00:41:14.910 --> 00:41:18.160 can be dangerous if you have to follow particular driving cycles. 00:41:18.160 --> 00:41:21.789 So there's a "dyno" you can put the car on and then you can just drive 00:41:21.789 --> 00:41:23.599 without the car physically moving. 00:41:23.599 --> 00:41:26.309 The wheels are moving, but the car isn't moving. 00:41:26.309 --> 00:41:28.069 And this is what other people have done, 00:41:28.069 --> 00:41:31.249 and they have taken very interesting measurements out of this. 00:41:31.249 --> 00:41:34.170 However, we as hackers, we can go one step further. 00:41:34.170 --> 00:41:37.869 We can take a look at the ECU itself. 00:41:37.869 --> 00:41:45.469 And not only that, we can also ask other people who worked with these things 00:41:45.469 --> 00:41:50.029 and may be able to get more information about them. 00:41:50.029 --> 00:41:51.799 I will talk about this in a minute. 00:41:51.799 --> 00:41:58.039 So first of all, this is my car, luckily that car was affected by the recall. 00:41:58.039 --> 00:42:02.039 So I was very happy when I got the letter telling me I have to go to the shop in January 00:42:02.039 --> 00:42:05.559 and get a firmware update because firmware updates are exciting, right? 00:42:05.559 --> 00:42:09.969 I love updating things, so updating a car seems great. 00:42:09.969 --> 00:42:14.279 Yeah, it sucked that my car was putting out more emissions than it should have, 00:42:14.279 --> 00:42:17.599 but otherwise, it gave me the chance to actually look at the car. 00:42:17.599 --> 00:42:24.599 I mean, I could have rented a car or something, but that makes it much easier. 00:42:24.599 --> 00:42:28.460 I also went on a dyno with my car. On a dyno, there are no speed limits 00:42:28.460 --> 00:42:32.509 or no people to run over when you just have to keep a constant speed or something, 00:42:32.509 --> 00:42:35.359 so it makes things much easier. 00:42:35.359 --> 00:42:39.969 And I talked about ripping apart my car and disassembling it. 00:42:39.969 --> 00:42:44.410 I didn't really want to do that, so what I did instead was what I always do: 00:42:44.410 --> 00:42:49.789 I go to eBay and I bought an extra ECU. 00:42:49.789 --> 00:42:54.929 Here it is, maybe you can show it? 00:42:54.929 --> 00:42:58.229 You can go here after the talk and take a look at it. 00:42:58.229 --> 00:43:03.989 This is the ECU. This here is the main CPU that also includes the flash. 00:43:03.989 --> 00:43:09.509 On the other side there are the power drivers that drive the actual stuff in the car. 00:43:09.509 --> 00:43:12.460 And then there's other watchdog circuits and so on. 00:43:12.460 --> 00:43:14.760 Okay, thank you. 00:43:16.970 --> 00:43:23.180 So, the ECU was built by Bosch, it's an EDC17C46, 00:43:23.180 --> 00:43:25.299 that's the name of the hardware. 00:43:25.299 --> 00:43:29.099 And it can easily be obtained on eBay, and you can put it on your desk, 00:43:29.099 --> 00:43:31.599 you apply 12 volt to it and then it boots. 00:43:31.599 --> 00:43:34.279 It will complain about a lot of sensors being missing and so on 00:43:34.279 --> 00:43:37.650 but you can see it executing code. 00:43:37.650 --> 00:43:43.150 And it doesn't have the very same firmware as my car, but it's very close. 00:43:43.150 --> 00:43:46.479 The flash chip is unfortunately in the same pakage as the main CPU, 00:43:46.479 --> 00:43:49.519 which is an Infineon TriCore chip, 00:43:49.519 --> 00:43:51.779 which is apparantly only used in automotive equipment, 00:43:51.779 --> 00:43:55.690 or at least I'm only aware of it being used there. 00:43:55.690 --> 00:43:59.380 And I was able to dump the flash by attacking the hardware 00:43:59.380 --> 00:44:03.989 and exploiting a bug in the hardware that I haven't found documented anywhere, 00:44:03.989 --> 00:44:06.359 but it was not that complicated. 00:44:06.359 --> 00:44:09.999 And then I had a firmware dump, I had a 2 megabit binary, 00:44:09.999 --> 00:44:12.329 and I throw it in a disassembler. 00:44:12.329 --> 00:44:16.910 And what we see is interesting because the code is written very different 00:44:16.910 --> 00:44:18.829 from other code that we know. 00:44:18.829 --> 00:44:20.930 So usually, code has a lot of flow control 00:44:20.930 --> 00:44:24.400 and usually more or less resembles spaghetti code. 00:44:24.400 --> 00:44:26.769 This was the exact opposite. 00:44:26.769 --> 00:44:31.739 It's more like someone took electrical schematics and put them into code. 00:44:31.739 --> 00:44:35.529 There's a set of input signals, there's a set of processing on it, 00:44:35.529 --> 00:44:37.009 and there's a set of output signals. 00:44:37.009 --> 00:44:42.180 That gets updated every 10 ms or once per rotation depending on processoids. 00:44:42.180 --> 00:44:46.759 Really interesting way of writing software and building this. 00:44:46.759 --> 00:44:52.279 Also it's very data-driven, so a large part of the firmware is not code but is data. 00:44:52.279 --> 00:44:55.829 All of the computations, they don't use constants at all, 00:44:55.829 --> 00:44:58.849 they always refer to something from the data section. 00:44:58.849 --> 00:45:07.109 As Daniel said, Bosch writes this code, the code is not directly visible to Volkswagen, 00:45:07.109 --> 00:45:10.150 but they have visibility into this data, and they know what the data does. 00:45:10.150 --> 00:45:12.210 They have tools to change the data. 00:45:12.210 --> 00:45:16.839 Volkswagen and other companies can customize this, 00:45:16.839 --> 00:45:20.150 really they cannot just customize it, 00:45:20.150 --> 00:45:24.089 they can change the whole behaviour of this ECU 00:45:24.089 --> 00:45:29.559 by changing just the data, not the code. 00:45:29.559 --> 00:45:34.369 The ECU really is a small embedded machine in your car that takes care of the engine, 00:45:34.369 --> 00:45:38.849 it's an Engine Electronic Control Unit, there are multiple names for it. 00:45:38.849 --> 00:45:42.229 The most important thing that it does is that it takes sensor input, 00:45:42.229 --> 00:45:46.180 for example the throttle, and then it applies control to the system. 00:45:46.180 --> 00:45:49.420 For example it calculates the amount of fuel to inject, the amount of air to inject 00:45:49.420 --> 00:45:54.539 to make the motor running at the speed you want it to run. 00:45:54.539 --> 00:45:56.630 These days it's much more complicated. 00:45:56.630 --> 00:46:02.400 One important thing the ECU does these days is emission control. 00:46:02.400 --> 00:46:06.710 This is why we would expect to find the "cheat code", the code that cheats 00:46:06.710 --> 00:46:09.710 that Volkswagen used to cheat in the whole thing, 00:46:09.710 --> 00:46:13.430 we would expect to find it in the ECU. 00:46:13.430 --> 00:46:16.880 Now taking a look at two megabyte firmware binaries 00:46:16.880 --> 00:46:19.769 that doesn't have any visible strings in it, 00:46:19.769 --> 00:46:22.880 it's kind of painful if you're just suscepting a code analysis. 00:46:22.880 --> 00:46:30.339 So what I did was to do realtime logging. 00:46:30.339 --> 00:46:35.279 You can actually read data from your ECU by plugging into this OBD-II port 00:46:35.279 --> 00:46:36.999 which is next to your steering wheel. 00:46:36.999 --> 00:46:40.180 And while the engine is running you can read out certain data. 00:46:40.180 --> 00:46:43.400 Usually you can read out boring data like RPM, and speed, 00:46:43.400 --> 00:46:46.640 and some things that the vendor wants you to see. 00:46:46.640 --> 00:46:48.910 But there's also a mode that's a little bit hidden, 00:46:48.910 --> 00:46:51.089 but you can get pretty easily into it, 00:46:51.089 --> 00:46:54.559 where you can read by address, where you can just read the whole memory. 00:46:54.559 --> 00:46:58.630 Well, not everything. Some security data is locked out. 00:46:58.630 --> 00:47:02.670 But the data we are interested in, we can read that memory. 00:47:02.670 --> 00:47:07.569 Now we still need to understand where the interesting stuff is. 00:47:07.569 --> 00:47:09.630 We can disassemble the firmware, and that's all fine. 00:47:09.630 --> 00:47:13.120 We can also get a little help from something called "A2L files". 00:47:13.120 --> 00:47:17.799 The chip tuners use them extensively when they change the mappings, 00:47:17.799 --> 00:47:20.640 they want to optimize an engine for a different goal, 00:47:20.640 --> 00:47:24.519 for example for more power instead of long lifetime, or something. 00:47:24.519 --> 00:47:29.219 They change things in the ECU firmware. 00:47:29.219 --> 00:47:34.029 They do reverse engineer a lot, but they also got these files. 00:47:34.029 --> 00:47:37.109 And I'm not sure how they got them, but they are out there. 00:47:37.109 --> 00:47:40.950 And if you use the right Google terms you will find them. 00:47:40.950 --> 00:47:42.920 They are specific to each firmware. 00:47:42.920 --> 00:47:45.029 I wasn't able to find one for my actual firmware 00:47:45.029 --> 00:47:49.829 but I was able to find one for firmware that is close to mine. 00:47:49.829 --> 00:47:53.369 And if you look into this file, what you see is the symbol names, 00:47:53.369 --> 00:47:54.749 it's basically a fancy map file. 00:47:54.749 --> 00:48:00.940 You see the symbol names, you see a mostly German description of that symbol, 00:48:00.940 --> 00:48:06.489 you see a real-use unit, and you see the adress in memory that we can read at. 00:48:06.489 --> 00:48:12.489 So with the help of these files we can read out almost any internal state in the ECU. 00:48:12.489 --> 00:48:16.650 We still have to make sense out of that, but at least we know where the data is 00:48:16.650 --> 00:48:20.420 and what to look for. 00:48:20.420 --> 00:48:26.119 It's surprising how complex an ECU is. For example, this thing, what does it display? 00:48:26.119 --> 00:48:32.209 Everybody would say it's a function of RPM, it shows you how fast the engine is running. 00:48:32.209 --> 00:48:37.249 Well, it's not quite the case, and if we look careful we see that 00:48:37.249 --> 00:48:42.180 this code is post-processing the RPM signal. 00:48:42.180 --> 00:48:47.019 It's 12 kilobyte of densely written code that has a lot of internal state 00:48:47.019 --> 00:48:50.250 that tries to make the RPM value, 00:48:50.250 --> 00:48:52.739 convert it to something that the customer wants to see. 00:48:52.739 --> 00:48:57.180 For example, you want your idle speed to be stuck at 780, you don't want it to oscillate. 00:48:57.180 --> 00:49:01.039 But in reality it does, and this code takes away all of that 00:49:01.039 --> 00:49:05.890 and makes it flat 780. 00:49:05.890 --> 00:49:10.049 You realize probably at this point that there is a lot of cheating that could go on here 00:49:10.049 --> 00:49:12.459 without most people noticing. 00:49:12.459 --> 00:49:17.839 You don't really believe that the speedometer in your car displays your actual speed, right? 00:49:17.839 --> 00:49:22.190 It displays something related to speed ... 00:49:22.970 --> 00:49:25.209 But let's get back to topic. 00:49:25.209 --> 00:49:29.349 Selective Catalytic Reduction is the process of, well, if you don't have it 00:49:29.349 --> 00:49:34.400 you get a lot of NOx, of nitrogen oxides at the end of the exhaust. 00:49:34.400 --> 00:49:36.940 That's bad, you don't want that. 00:49:36.940 --> 00:49:42.109 There is one way of getting rid of this, is to add an SCR catalyst. 00:49:42.109 --> 00:49:46.099 And the SCR catalyst — I simplified this a lot, 00:49:46.099 --> 00:49:48.929 you can find a lot more information about this — 00:49:48.929 --> 00:49:56.839 SCR is a process that reduces the NOx using something called DEF, 00:49:56.839 --> 00:50:00.599 or AdBlue is a term for it. It's some fluid that you put in there. 00:50:04.029 --> 00:50:06.859 Basically it's an Urea/water solution. 00:50:06.859 --> 00:50:13.019 And the AdBlue, at a high temperature, converts to Ammonia 00:50:13.019 --> 00:50:16.469 and then it reacts with the NOx to nitrogen and water. 00:50:16.469 --> 00:50:21.809 Which is great because that's not in any way harmful to us. 00:50:21.809 --> 00:50:26.440 However, there's a problem here because the dosage of the AdBlue needs to be correct 00:50:26.440 --> 00:50:28.630 and it's very hard to do. 00:50:28.630 --> 00:50:33.690 If we dose too little of that the conversion is not perfect 00:50:33.690 --> 00:50:36.069 and we will still get a lot of NOx at the output. 00:50:36.069 --> 00:50:38.410 Which is better than not doing anything. 00:50:38.410 --> 00:50:41.619 It's not perfect, but it's not more harmful than before. 00:50:41.619 --> 00:50:45.359 However, if you put in too much of the AdBlue 00:50:45.359 --> 00:50:50.089 what you get at the output is ammonia, and you really don't want that. 00:50:50.089 --> 00:50:54.769 So the primary goal of emission control is, if you have the SCR system, 00:50:54.769 --> 00:50:58.630 is to eliminate as much as possible of the NOx 00:50:58.630 --> 00:51:03.170 and minimize the amount of ammonia that comes out of the exhaust pipe. 00:51:03.170 --> 00:51:06.640 Ammonia is NH3. 00:51:06.640 --> 00:51:10.589 Calculating the right dosage works with a model again. 00:51:10.589 --> 00:51:13.459 They modeled everything that happens in the exhaust process, 00:51:13.459 --> 00:51:17.390 they have a model of the catalyst, they have a model of the internal state, 00:51:17.390 --> 00:51:23.339 they do have a number of sensors and outputs from the other models 00:51:23.339 --> 00:51:25.180 that tell them a lot of values. 00:51:25.180 --> 00:51:30.349 And the model uses this with a lot of internal storage, internal state. 00:51:30.349 --> 00:51:34.619 And the model then calculates the amount of AdBlue to dose 00:51:34.619 --> 00:51:42.839 to convert as much NOx as possible without leaking any ammonia. 00:51:42.839 --> 00:51:47.180 The way things usually work in an ECU is, there's one system that controls things 00:51:47.180 --> 00:51:50.079 and there's another system that monitors things. 00:51:50.079 --> 00:51:54.200 It's independent from the main system, it tries to be as independent as possible. 00:51:54.200 --> 00:51:57.849 It's still running on the same hardware but it's not sharing a lot of code. 00:51:57.849 --> 00:52:04.390 There is an efficiency monitoring scheme that, if the conversion is not good enough anymore, 00:52:04.390 --> 00:52:07.930 it will flag this as an OBD-II error 00:52:07.930 --> 00:52:10.209 and you will see your "check engine" light going on, 00:52:10.209 --> 00:52:13.999 and then you go to the shop, and the shop will diagnose your car and will fix this, 00:52:13.999 --> 00:52:18.549 for example if your catalyst is broken. 00:52:18.549 --> 00:52:21.749 Based on the test results we would have expected this efficiency monitoring 00:52:21.749 --> 00:52:27.219 to actually flag the inefficiencies. But it didn't. 00:52:27.219 --> 00:52:30.410 It turns out the main model doesn't always work. 00:52:30.410 --> 00:52:33.719 There are some operating conditions where the main model is not sufficient, 00:52:33.719 --> 00:52:38.499 it has certain bounds where it works, and outside of these conditions — 00:52:38.499 --> 00:52:44.630 for example if the engine is too hot or if the exhaust mass is too large — 00:52:44.630 --> 00:52:46.739 the model doesn't produce meaningful results. 00:52:46.739 --> 00:52:51.789 It may overdose the AdBlue, and we don't want that. 00:52:51.789 --> 00:52:55.450 There's an alternative model which is much, much simpler, 00:52:55.450 --> 00:52:58.209 and takes only a few sensory inputs, 00:52:58.209 --> 00:53:01.579 and doesn't rely on as many variables to be perfect. 00:53:01.579 --> 00:53:04.799 It will still calculate an AdBlue dosage. 00:53:04.799 --> 00:53:10.009 However, the main goal of this alternative model is to make the exhaust processing work 00:53:10.009 --> 00:53:17.329 in all situations without ever overdosing the NH3. 00:53:17.329 --> 00:53:22.549 They're calculating both of these models and then they are selecting one of the models. 00:53:22.549 --> 00:53:26.140 The output of the selection then controls the AdBlue dosage, 00:53:26.140 --> 00:53:29.269 the pump that injects the AdBlue into the exhaust. 00:53:29.269 --> 00:53:34.099 There's code that controls which of the models to use. 00:53:34.099 --> 00:53:39.209 There's also a statistics model that counts how often each mode is selected. 00:53:39.209 --> 00:53:43.319 Again, all of this model selection depends on the data. 00:53:43.319 --> 00:53:45.739 It's code that does the selection but it depends on a lot of data, 00:53:45.739 --> 00:53:48.910 there are parameters tought of this. 00:53:48.910 --> 00:53:51.769 Let's take a look at the selection criteria for this alternative model. 00:53:51.769 --> 00:53:55.200 We see that a lot of these parameters are dummy variables, 00:53:55.200 --> 00:53:56.989 things that can never happen. 00:53:56.989 --> 00:54:01.979 For example, the athmospheric pressure can't be negative, that can never happen. 00:54:01.979 --> 00:54:06.420 Or the air temperature ... I hope it's never larger than that, 00:54:06.420 --> 00:54:09.079 or smaller than 0.1K, right? 00:54:09.079 --> 00:54:11.859 However, one thing stuck out, 00:54:11.859 --> 00:54:17.749 and that was a check if the engine condition is larger than negative temperature. 00:54:17.749 --> 00:54:19.839 Which does not exist, the temperature is always positive. 00:54:19.839 --> 00:54:23.420 That last one is always true, 00:54:23.420 --> 00:54:27.549 so the model that would be selected would always be the alternative model. 00:54:27.549 --> 00:54:30.150 That sounded weird and I was looking at the firmware. 00:54:30.150 --> 00:54:34.640 Maybe I understood it incorrectly, or maybe I looked at the wrong place 00:54:34.640 --> 00:54:37.630 when looking at these parameters? 00:54:37.630 --> 00:54:42.369 But if we look at the intermediate results there is a bit at a certain location 00:54:42.369 --> 00:54:47.579 that tells us which model was selected, and that bit is indeed always set. 00:54:47.579 --> 00:54:51.249 That is weird, it sounds fishy. 00:54:51.249 --> 00:54:57.489 Let's take a look at the statistics, the car counts what model you're in. 00:54:57.489 --> 00:55:00.309 20% of the cases my car does not do dosing at all. 00:55:00.309 --> 00:55:02.630 So I drove some time and then looked at the values. 00:55:02.630 --> 00:55:06.369 And the 20% where it doesn't do anything is mostly the warm-up cycle. 00:55:06.369 --> 00:55:09.469 But everytime it does something, it's actually the alternative model 00:55:09.469 --> 00:55:14.719 which we know does underdose NH3 because it doesn't want to leak ammonia. 00:55:14.719 --> 00:55:19.449 And that makes sense because my car uses much less than expected of the AdBlue. 00:55:19.449 --> 00:55:25.529 The expected value is roughly 2.5 liters per 1000 kilometers, of the AdBlue. 00:55:25.529 --> 00:55:28.779 In my case it only used 0.6 liters per 1000 kilometers. 00:55:28.779 --> 00:55:32.469 Which is great for me because I don't have to refill this tank very often. 00:55:32.469 --> 00:55:37.319 In fact, I never had to do it, the shop always does it when I'm there. 00:55:37.319 --> 00:55:42.380 But this is fishy, and let's take a look at this. 00:55:42.380 --> 00:55:46.029 What we also see is that sometimes the regular model is active, 00:55:46.029 --> 00:55:47.859 so there must be something more. 00:55:47.859 --> 00:55:52.539 If we look at the selection criteria we find that there's an additional term there 00:55:52.539 --> 00:55:54.959 that I haven't found before. 00:55:54.959 --> 00:55:57.049 There's an additional condition that has to be true 00:55:57.049 --> 00:56:01.680 in order to go to the alternative model that underdoses. 00:56:01.680 --> 00:56:04.989 We look at the particular conditions and we find a lot of stuff 00:56:04.989 --> 00:56:07.739 that is related to diagnostics, things they can do in the shop. 00:56:07.739 --> 00:56:09.969 So that's definitely not happening on the street. 00:56:09.969 --> 00:56:12.959 But one of the criteria, that really was weird 00:56:12.959 --> 00:56:18.769 because it looks if the engine and fuel temperature is larger than 50°C, 00:56:18.769 --> 00:56:24.249 it looks at the athmospheric pressure and if it's lower than 750m, 00:56:24.249 --> 00:56:25.809 that must be satisfied. 00:56:25.809 --> 00:56:29.859 If all of these conditions are satisfied it will move back to the main model 00:56:29.859 --> 00:56:33.759 that does the proper exhaust processing. And one thing was really weird. 00:56:33.759 --> 00:56:36.380 There were seven curves, not all of them used, 00:56:36.380 --> 00:56:38.789 that define an upper and a lower bound 00:56:38.789 --> 00:56:42.799 on the distance driven after a certain amount of time. 00:56:42.799 --> 00:56:46.459 This is how it looks in disassembly. I'm not sure if you can read this. 00:56:46.459 --> 00:56:52.699 But the comments are from this A2L file and they call it "acoustic function". 00:56:52.699 --> 00:56:55.440 I'm not sure if this has anything to do with acoustics. 00:56:55.440 --> 00:57:00.900 I tried to find all the usages, and there was nothing related to sound or anything. 00:57:00.900 --> 00:57:04.180 I think it's just a name for it. 00:57:04.180 --> 00:57:09.579 Now if we go and take a look at these upper and lower bounds, we see this: 00:57:09.579 --> 00:57:16.999 These are three curves that are defined, each of them has an upper and a lower bound. 00:57:16.999 --> 00:57:19.259 It's basically the distance 00:57:19.259 --> 00:57:22.670 that you need to have driven after a certain amount of time. 00:57:22.670 --> 00:57:27.479 And if you ever fall out of one of these curves we're switching back to the alternative model 00:57:27.479 --> 00:57:30.859 that underdoses NH3 and causes the inefficiencies. 00:57:30.859 --> 00:57:34.109 This is weird, and I didn't really know what this is. 00:57:34.109 --> 00:57:38.709 Let's get back to something completely different, which is the NEDC. 00:57:38.709 --> 00:57:43.219 We've seen this slide before, the NEDC mandates you how to drive. 00:57:43.219 --> 00:57:46.479 One thing is also interesting: It mandates you that ... 00:57:46.479 --> 00:57:50.269 You want this test at "cold-start", and what's better for a cold start 00:57:50.269 --> 00:57:54.660 than heating the car to 20°C and keep it that warm until you start. 00:57:54.660 --> 00:58:02.819 That's the "cold-start", that's the cold start as defined in the law: 20°C. 00:58:02.819 --> 00:58:10.339 This is speed over time, so to get distance over time we need to integrate this. 00:58:10.339 --> 00:58:12.869 And we get this graph. 00:58:12.869 --> 00:58:17.479 And if we overlay what we found in the firmware we get this. 00:58:17.479 --> 00:58:27.140 audience laughs and applauds 00:58:27.140 --> 00:58:31.660 What we can see here is that if you drive the driving cycle correctly 00:58:31.660 --> 00:58:35.660 you will exactly be in the bounds of one of these curves. 00:58:35.660 --> 00:58:37.400 And you can do this on the street, you can do this everywhere. 00:58:37.400 --> 00:58:42.779 As long as you satisfy the distance over time and your car is warm enough 00:58:42.779 --> 00:58:46.609 it will detect this in some way. 00:58:46.609 --> 00:58:49.650 Well, you can drive this on a street, but it's really dangerous 00:58:49.650 --> 00:58:52.690 because you have to follow a given speed pattern. 00:58:52.690 --> 00:58:55.799 So i did this on a dyno, I put my laptop in there, 00:58:55.799 --> 00:58:58.849 I logged the data in real-time and then displayed it. 00:58:58.849 --> 00:59:02.959 Basically, this is what it looks like. In the middle you see a bar. 00:59:02.959 --> 00:59:06.469 You have to drive and keep this middle bar in the middle, 00:59:06.469 --> 00:59:11.410 which means you are well within this upper and lower bound, and not try to escape it. 00:59:11.410 --> 00:59:17.099 And as long as you do, one of the other green boxes will tell you 00:59:17.099 --> 00:59:22.249 that the car is still detecting this as being in this cycle. 00:59:22.249 --> 00:59:29.539 Then what I did in the end, I stayed in the cycle for a while and I logged all the data. 00:59:29.539 --> 00:59:32.089 At the end I would just hit a constant speed 00:59:32.089 --> 00:59:36.130 which would eventually get me out of the conditions. 00:59:36.130 --> 00:59:39.509 This is the log that I made. 00:59:39.509 --> 00:59:41.880 On the first graph you see the vehicle speed, 00:59:41.880 --> 00:59:45.049 you see how I tried to follow the NEDC more or less successfully. 00:59:45.049 --> 00:59:49.559 On the second graph you see the distance over time, 00:59:49.559 --> 00:59:54.680 you see that I stay within the bounds enforced by the firmware. 00:59:54.680 --> 00:59:56.739 You an also see on the third graph— 00:59:56.739 --> 00:59:59.179 this is the actual signal at the AdBlue pump— 00:59:59.179 --> 01:00:02.130 that it actually doses quite a lot of AdBlue. 01:00:02.130 --> 01:00:05.630 It calculates the amount of AdBlue to dose based on the model output 01:00:05.630 --> 01:00:09.420 which you see in graph 5 and 6. 01:00:09.420 --> 01:00:14.839 By the way, graph 4 is the actual NOx emitted by the engine based on their model. 01:00:14.839 --> 01:00:20.789 That's the RML, their mission model then calculates the amout of the dosing to happen. 01:00:20.789 --> 01:00:25.880 As we see, as long as we stay within the limits enforced that match the NEDC 01:00:25.880 --> 01:00:29.579 everthing is good and a lot of AdBlue is dosed. 01:00:29.579 --> 01:00:32.749 And then, in the end, I drove too fast. 01:00:32.749 --> 01:00:35.979 And you can see in the second graph that I crossed the upper bar, 01:00:35.979 --> 01:00:38.249 the blue line goes over the red line, right? 01:00:38.249 --> 01:00:40.989 You can see that the car immediately detects this, 01:00:40.989 --> 01:00:44.529 that I'm no longer in the driving cycle. 01:00:44.529 --> 01:00:52.259 The interesting part you see here is the effect on the AdBlue dosing, which is here. 01:00:52.259 --> 01:00:57.619 It immediately stops doing the dosing. And you can see in the model below 01:00:57.619 --> 01:01:01.670 the model still calculates that AdBlue should be dosed. 01:01:01.670 --> 01:01:04.630 But after they have the max, after they switch the model 01:01:04.630 --> 01:01:08.709 and switch to the alternative model, the alternative model just outputs zeroes, 01:01:08.709 --> 01:01:11.869 it doesn't dose anything. 01:01:11.869 --> 01:01:14.359 This shows that when we're following the cycle 01:01:14.359 --> 01:01:17.539 everything is fine, enough Urea is dosed, 01:01:17.539 --> 01:01:24.599 and then once we leave the cycle, there's a severe reduction in the dosing. 01:01:24.599 --> 01:01:26.949 And it's all based on detecting this driving cycle. 01:01:26.949 --> 01:01:29.180 Two more slides. A: Two more slides. 01:01:29.180 --> 01:01:32.349 F: Two more slides. A: Two more slides, here we go! 01:01:32.349 --> 01:01:38.299 audience laughs and applauds 01:01:38.299 --> 01:01:40.979 I have to be clear on the limitations here. 01:01:40.979 --> 01:01:43.599 All of this was looking at disassembled code and so on, 01:01:43.599 --> 01:01:47.559 I could have done something wrong here, so take this with a grain of salt. 01:01:47.559 --> 01:01:50.979 We couldn't do NOx measurements on the dyno, unfortunately. 01:01:50.979 --> 01:01:55.569 And I have to stress: We looked at one particular car that uses SCR processing, 01:01:55.569 --> 01:01:57.660 not all of the affected cars are doing this, 01:01:57.660 --> 01:01:59.719 there are some other mechanisms in the other cars. 01:01:59.719 --> 01:02:02.559 And I looked at a car for the German market, 01:02:02.559 --> 01:02:05.569 at least the curves have to be different for the other markets. 01:02:05.569 --> 01:02:10.900 Let's reenumerate the results— and this is my last slide. 01:02:10.900 --> 01:02:16.749 Most of the time, on a regular car, a nonstandard treatment mode is active 01:02:16.749 --> 01:02:20.799 that is not as efficient as the real mode that is implemented. 01:02:20.799 --> 01:02:23.309 We can show the code that is responsible for this: 01:02:23.309 --> 01:02:26.269 This is this negative temperature limit that they look at 01:02:26.269 --> 01:02:29.809 which doesn't make any sense and always selects the alternative mode. 01:02:29.809 --> 01:02:32.630 And we can see, in the logs, the state selection bit, 01:02:32.630 --> 01:02:38.359 we can see the counters that count that the alternative model is active. 01:02:38.359 --> 01:02:42.019 We can see that there's an AdBlue underdosing in this state 01:02:42.019 --> 01:02:44.920 which causes the inefficient NOx conversions, 01:02:44.920 --> 01:02:49.609 that's what we've seen before when people put the car on the dyno. 01:02:49.609 --> 01:02:52.939 We know that the efficiency checks are only enabled in the main mode 01:02:52.939 --> 01:02:57.019 and the car does exceed the limits. 01:02:57.019 --> 01:03:03.400 This shows how the alternate model is selected where it doses too little AdBlue 01:03:03.400 --> 01:03:06.569 and causes the inefficient conversion. 01:03:06.569 --> 01:03:10.209 We can see that if we follow the driving cylce, 01:03:10.209 --> 01:03:12.459 the minimum temperature and the distance over time, 01:03:12.459 --> 01:03:14.869 we will see that it switches to the main model 01:03:14.869 --> 01:03:17.640 that should have been active all the time. 01:03:17.640 --> 01:03:20.289 We can show the code that's responsible for that, 01:03:20.289 --> 01:03:23.529 the driving cycle detection that uses the upper bound and the lower bound. 01:03:23.529 --> 01:03:28.630 We can extract the exact limits, overlay the NEDC data and see that there's a match. 01:03:28.630 --> 01:03:33.680 We can, if we do this actually on a dyno, we can see how it switches the SCR state. 01:03:33.680 --> 01:03:37.319 We can show the effect on the DEF dosing, on the AdBlue dosing. 01:03:37.319 --> 01:03:41.499 As you've seen on the slide before, as soon as we switch out of the driving cycle 01:03:41.499 --> 01:03:48.170 into the street mode, the dosing will get close to zero. 01:03:48.170 --> 01:03:50.910 Once you're back in the main model all the efficiency checks are enabled, 01:03:50.910 --> 01:03:54.519 for example to take better Urea. 01:03:54.519 --> 01:03:56.979 So the efficiency checks are there, but they are not active 01:03:56.979 --> 01:04:00.680 because the car is forced to run in the alternative model. 01:04:00.680 --> 01:04:04.709 These results are all in line with the Volkswagen press releases. 01:04:04.709 --> 01:04:07.859 These are basically just the details as extracted from the firmware 01:04:07.859 --> 01:04:10.450 to show you the background. 01:04:10.450 --> 01:04:12.330 Thank you. 01:04:12.330 --> 01:04:16.190 audience applauds 01:04:16.190 --> 01:04:20.229 A: Wow! Thank you very much, Daniel and Felix. 01:04:20.229 --> 01:04:35.919 audience applauds 01:04:37.609 --> 01:04:40.269 I'm really sorry, but we have to clear the stage. 01:04:40.269 --> 01:04:42.609 There is not going to be time for the Q&A session. 01:04:42.609 --> 01:04:46.650 Do that down there. I'm sure that a few people just come down, 01:04:46.650 --> 01:04:49.670 grab you and ask questions. Unfortunately, we can't do that. 01:04:49.670 --> 01:04:54.059 I have to close it in exactly four seconds over here because we have to go off the stream. 01:04:54.059 --> 01:04:57.529 Thank you very much Felix, thank you very much Daniel. 01:04:57.529 --> 01:05:03.387 F: Thank you. 01:05:03.387 --> 01:05:05.676 ♪ postroll music ♪ 01:05:05.676 --> 01:05:11.000 subtitles created by c3subtitles.de Join, and help us!