TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

E.P.A. Finds More VW Cheating Software, Including in Porsches

257 pointsby peterkriegover 9 years ago

20 comments

Johnny555over 9 years ago
Clearly it&#x27;s the fault of those pesky engineers again, how else could you explain the same type of cheating across multiple divisions of the company. They only other explanation would involve Management, and obviously that&#x27;s not it.<p>Though the fact that none of the other manufacturers spoke up about the violation of emissions standards when when they must have done their own tests to see how VW managed to get emissions so low, seems to point to the fact they they were all doing it to some degree. Perhaps not as brazenly as VW, but still no one wants to rock the boat they are in.
评论 #10495689 未加载
评论 #10496298 未加载
评论 #10496197 未加载
评论 #10496619 未加载
评论 #10497373 未加载
评论 #10497948 未加载
评论 #10495616 未加载
hellcowover 9 years ago
It&#x27;s worth noting that the newly replaced CEO of the VW group was the CEO of Porsche.<p>The CEO of VW was just fired for allowing this scandal on his watch, and he was replaced by a guy guilty of (at the very least) the same exact thing.
monkbrocover 9 years ago
Background: I used to be an automotive software engineer. I speak for myself only here.<p>Whenever the topic of automotive software comes up on HN there are comments alongs the lines of &quot;global variables bad&quot;, but not much construtive feedback.<p>I want to explain some of the tradeoffs that lead to the architecture used in automotive software to get a better discussion going with HN readers about that architecture.<p>tl;dr Given the hardware restrictions, real-time requirements and measurement capabilities required in automotive software, shared global variables without locks is a fast and safe way to share state between different software components as long as each variable is only written in one place in the program.<p>The microprocessor has to run for 10+ years in a wide range of temperatures and be dirt cheap, so you end up with specs like 180 MHz, 4 MB of flash and 128 KB of RAM.<p>The program must run deterministicly with respect to memory. There is no malloc&#x2F;new in the code. All variables are statically allocated.<p>Because the physical world doesn&#x27;t pause, no code is allowed to block while waiting for resources, especially synchronization primitives like mutexes.<p>The software architecture is in 2 main parts: basic software containing the real-time OS and hardware drivers, and the application layer which has the domain-specific code for controlling the engine, brakes, etc.<p>The basic software is implemented using usual C programming techniques. It has an API provided by function calls and structs to hide implementation details of each microcontroller.<p>The application software is where the programming model is different.<p>To understand why, you need to know where automotive software comes from and what it is trying to acheive.<p>Originally all controllers were mechanical: a valve opens proportionally to the vacuum in a part of the system. Then some controllers were implemented in analog electronics: take multiple voltages, feed them through an op-amp and use the output to control a valve.<p>So automotive software reproduces this: get some inputs, compute the same physical equations at a regular rate and generate outputs.<p>This is dataflow programming. Blocks of code have inputs and outputs. They are executed at a fixed rate that depends on the physical phenomena (air flow changes fast, temperature changes slowly). Different blocks are conneceted together in a hierachical way to form subsystems. Encapsulation is acheived by viewing these blocks as black boxes: you don&#x27;t need to care how the block works if you are only interested in knowing which inputs it uses and outputs it produces.<p>Here&#x27;s an example component to control a gizmo.<p>It might be implemented in a visual environment like Simulink by MathWorks, or it implemented by hand from a spec.<p><pre><code> #include &quot;GizmoController_data.h&quot; void GizmoController_100ms() { Gizmo_Gain = interpolate2d(Gizmo_Gain_MAP, EngineSpeed, CoolantTemp); } void GizmoController_10ms() { Gizmo_Error = Gizmo_PositionDesired - Gizmo_Position; Gizmo_DutyCycle = limit(Gizmo_Gain * Gizmo_Error + Gizmo_Offset_VAL, 0, 100); } </code></pre> It takes some inputs (EngineSpeed, CoolantTemp, Gizmo_PositionDesired, Gizmo_Position), has some intermediate values (Gizmo_Error), and outputs (Gizmo_DutyCycle). Those are implemented as global variables. It also uses some constants (Gizmo_Gain_MAP, Gizmo_Offset_VAL). It has 2 processes, running every 100ms and 10ms. All this information would be specified in an XML file.<p>The header GizmoController_data.h is auto-generated at compile time by a tool from the XML file mentioned above. It will contain global variable definitions for the inputs, intermediates and outputs with the appropriate volatile, const, static and extern storage classes&#x2F;type qualifiers. This ensures that the compiler will enforce that inputs can&#x27;t be written to, intermediate values are private to the component and outputs can be read by other modules.<p>Note that no explicit synchronization is needed to access inter-process variables like Gizmo_Gain or inter-component variables like Gizmo_Position. It&#x27;s shared memory between 2 processes scheduled in OS tasks that can potentially interrupt each other, but since the write is atomic and happens only in one place, there is no data race. This is huge! Concurrent programming, without locks, with the best efficiency possible, using a simple technique anybody can understand: only one place in the program is allowed to write to any global memory location.<p>Calibration is another aspect of automotive software. In most software the constants either never change or can be set in some kind of configuration file. For an automotive controller, the value of constants (gains, offsets, limits, etc) depend on the vehicle so they must be configurable at run time during development. This is implemented in the C code by putting all constants in a memory area that is ROM in production units, but RAM in development units. The compiler enforces that application software cannot change constants, but the basic software includes code so that constants can be changed from the outside in development. This process is called calibration and is done by calibration engineers who are usually not the ones who wrote the software. Note that calibration can drastically affect the behavior of the software. What would happen if Gizmo_Gain_MAP is set to all zeros?<p>Measurement of variables is essential to understanding what&#x27;s going on inside the embedded controller. Having all that state available in global variables makes it possible for the calibration tool request the value of any variable in the software at a fixed rate and display it in a virtual oscilloscope.<p>The measurement and calibration tool needs to know how to access the variables and constants. It uses a file that maps from names to addresses for a particular version of software. That file can easily be generated a compile time since all allocations are static.<p>Going back to the architecture of the application software, let&#x27;s look at where our gizmo controller fits. It is not the only component needed to make the gizmo work. You also need components to calculate the gizmo position from some external signal (let&#x27;s say an analog voltage), to route the output signal to the powerstage driver on the PCB, to determine which position the gizmo should currently occupy. These would form the gizmo subsystem package.<p>When the supplier releases gizmo 2.0 (TM) they upgrade the input signal to be a PWM input instead of an analog input. Modularity in the software allows the software team to simply replace the gizmo position component with one that reads a PWM instead of an analog voltage and keep the rest of the gizmo subsystem the same. In the future, projects that use gizmo 1.0 use one version of the gizmo subsystem and projects that use 2.0 use another.<p>This is true at any level in the hierarchy: as long as the inputs and outputs are the same, a component or subystem package can be replaced by another.<p>Version control in automotive software reflects this. Instead of having one tree of versions and releases like a typical software project, each component, subsystem package and software project has its own tree of versions. Each software project will reference the subsystem packages required for their engine type, vehicle platform, sensors and actuators, etc. This is how code reuse is acheived.<p>Testing is a mix of simulation (the sensor&#x2F;actuator is simulated in Simulink and connected to Simulink block diagram of the software component), hardware-in-the-loop (a computer simulates the vehicle, but the real electronic control unit is used) and vehicle testing.<p>Thanks for reading. I hope this improves your understanding of how automotive software is structured.<p>I&#x27;m hoping the discussion will bring examples from other fields like robotics, drones and aeronautics that have similar real-time requirements on how they architect their software.
评论 #10496982 未加载
评论 #10497281 未加载
评论 #10496743 未加载
评论 #10496941 未加载
评论 #10498257 未加载
评论 #10496837 未加载
评论 #10496759 未加载
评论 #10498789 未加载
mzsover 9 years ago
the release itself: <a href="http:&#x2F;&#x2F;yosemite.epa.gov&#x2F;opa&#x2F;admpress.nsf&#x2F;bd4379a92ceceeac8525735900400c27&#x2F;4a45a5661216e66c85257ef10061867b!OpenDocument" rel="nofollow">http:&#x2F;&#x2F;yosemite.epa.gov&#x2F;opa&#x2F;admpress.nsf&#x2F;bd4379a92ceceeac852...</a><p><i>As alleged in the NOV, VW manufactured and installed software in the electronic control module of these vehicles that senses when the vehicle is being tested for compliance with EPA emissions standards. When the vehicle senses that it is undergoing a federal emissions test procedure, it operates in a low NOx “temperature conditioning” mode. Under that mode, the vehicle meets emission standards. At exactly one second after the completion of the initial phases of the standard test procedure, the vehicle immediately changes a number of operating parameters that increase NOx emissions and indicates in the software that it is transitioning to “normal mode,” where emissions of NOx increase up to nine times the EPA standard, depending on the vehicle and type of driving conditions. In other tests where the vehicle does not experience driving conditions similar to the start of the federal test procedure, the emissions are higher from the start, consistent with “normal mode.”</i><p>I have not read a substantive response from any part of VW to today&#x27;s allegations.
评论 #10495977 未加载
评论 #10496312 未加载
Theodoresover 9 years ago
Since Porsche do not use small diesels in their cars this looks to me like the scandal is a lot bigger than first thought. It isn&#x27;t just the team working on the 1.8 litre diesel engine that fiddled the software, there is something more endemic going on as the 3 litre upwards size engines are implicated.<p>The funny thing is this:<p>Porsche could sue over £25 a day congestion charge (2008)<p><a href="http:&#x2F;&#x2F;www.theguardian.com&#x2F;business&#x2F;2008&#x2F;feb&#x2F;19&#x2F;travelandtransport.carbonemissions" rel="nofollow">http:&#x2F;&#x2F;www.theguardian.com&#x2F;business&#x2F;2008&#x2F;feb&#x2F;19&#x2F;travelandtra...</a><p>&gt; The mayor&#x27;s office responded saying the threatened legal action was &quot;a double attack on Londoners&quot;.<p>&gt; &quot;First Porsche are trying to deprive Londoners of their democratic right to decide in the mayoral election on 1 May whether they want gas guzzling and polluting cars to drive in London when there is absolutely no need for them to do so. Second they are trying to impose on all Londoners unnecessary levels of pollution and greenhouse gases by a tiny minority,&quot; said a spokesman for the mayor.<p>&gt; &quot;No one is allowed to throw their rubbish in the street and Porsche should not be allowed to impose gas guzzling polluting cars on Londoners who do not want them.&quot;<p>I hope Porsche get taken to the cleaners.<p>Schadenfreude?
评论 #10496194 未加载
alricbover 9 years ago
&gt; new tests that were conducted on all diesel car models in the United States by E.P.A., the California Air Resources Board and the regulatory group Environment Canada.<p>Environment Canada, a &quot;regulatory group&quot;? It&#x27;s a department of the Government of Canada, yo.
评论 #10497593 未加载
madengrover 9 years ago
Meanwhile there seems to be no enforcement of large diesel pickups &quot;rolling coal&quot; with modified emissions.
评论 #10496014 未加载
评论 #10496182 未加载
jonkneeover 9 years ago
I&#x27;d love to get my car tested... Anyone know how I could do that?<p>I have a 2015 Q5 TDI which while not specifically mentioned has the same size engine as several of the ones that are mentioned (3.0-liter). I would be shocked if they just started using the defeat device in the 2016 model year for the Q5 considering they were already getting pushback from the EPA before the 2016 models even got announced.<p>I bought the diesel specifically because of the high mileage and supposedly clean emissions. What a crock.
评论 #10496443 未加载
评论 #10496366 未加载
pasbesoinover 9 years ago
Meta: Earlier in the scandal, I recall reading that the engine management software is from Bosch. I should read further, looking for confirmation of this.<p>If that is the case, then this is an example of the maxim: When you provide a feature, someone will use it to their own ends -- meaning, &quot;misuse&quot; it.<p>Another example to wave in front of all those politicians and people advocating for encryption &quot;back doors&quot;.<p>If you put the feature in there, people will use it any way that suits them. Including and especially ways that you did not intend nor want.<p>If it wasn&#x27;t Bosch, perhaps there was nonetheless some &quot;legitimate&quot; argument within VW for adding this functionality. Enough to get the software folks -- particularly those not making big bucks off of the deal -- to implement this.<p>But an observant engineer might nonetheless ask themself, &#x27;what <i>might</i> hypothetically be done with this?&#x27; And the engineer with a little more real world experience (&quot;the cynic&quot; ;-) might assume that someone <i>will</i> do it, sooner or later.<p>That was part of my reputation, for a while: Thinking of what was possible, and assuming -- or insisting -- it needed to be addressed. A year or two later, having done so would prove to have been of benefit. It would sometimes piss Management off, in the short term. But eventually, they came around.<p>Anyway, looking from the outside or the inside: If it&#x27;s there and can be used &quot;that way&quot;, someone&#x27;s going to get around to doing so.
评论 #10496454 未加载
superuser2over 9 years ago
I&#x27;m conflicted. What do people think about the ethics of buying (non-diesel) Volkswagen cars at this point? Obviously new cars pad VW&#x27;s profits and reward bad behavior.<p>But what about used ones? Seems like prices will be plummeting. And if you like the cars, seems like a great time to buy.
评论 #10497018 未加载
评论 #10497692 未加载
评论 #10502043 未加载
评论 #10497591 未加载
acdover 9 years ago
May I suggest that the government raid the ECU engine control unit supplier Bosch and examine their email servers which of their customers has cheated.<p>&quot;But even so, Bosch still supplied the “defeat” code EDC 16 engine management system at the heart of the #Dieselgate scandal&quot;
yuhongover 9 years ago
From <a href="http:&#x2F;&#x2F;www3.epa.gov&#x2F;otaq&#x2F;cert&#x2F;documents&#x2F;vw-nov-2015-11-02.pdf" rel="nofollow">http:&#x2F;&#x2F;www3.epa.gov&#x2F;otaq&#x2F;cert&#x2F;documents&#x2F;vw-nov-2015-11-02.pd...</a><p>&quot;the high temperatures heat the selective catalytic reduction system (&quot;catalyst&quot;) and improves the catalyst&#x27;s ability to reduce tailpipe NOx emissions&quot;<p>There has been recently <a href="http:&#x2F;&#x2F;www.thestar.com&#x2F;autos&#x2F;2015&#x2F;09&#x2F;30&#x2F;canadian-trios-exhaust-emissions-breakthrough-could-be-a-game-changer.html" rel="nofollow">http:&#x2F;&#x2F;www.thestar.com&#x2F;autos&#x2F;2015&#x2F;09&#x2F;30&#x2F;canadian-trios-exhau...</a><p>I wonder if this tech would work for SCR systems or not.
marvel_boyover 9 years ago
VW sales are plummeting in Europe. You cannot trick the users all the time.
tomohawkover 9 years ago
Pot, meet kettle:<p><a href="http:&#x2F;&#x2F;junkscience.com&#x2F;2012&#x2F;10&#x2F;new-documents-prove-falsification-in-epa-air-study-junkscience-renews-retraction-request&#x2F;" rel="nofollow">http:&#x2F;&#x2F;junkscience.com&#x2F;2012&#x2F;10&#x2F;new-documents-prove-falsifica...</a><p>They were experimenting on human subjects without informed consent and using the data to overstate results that favored the regulations they wanted to impose.<p>These regulations set the particulate limits diesel powered vehicles must meet.
评论 #10499002 未加载
CamperBob2over 9 years ago
Explains why one of the first heads to roll was that of Wolfgang Hatz, head of engine R&amp;D at Porsche AG.
idbeholdover 9 years ago
Why doesn&#x27;t the EPA simply ban the sale of any car manufactured by VW until they start passing the new emissions tests? Even better, begin requiring previously purchased VW cars pass these emissions tests. If the cars don&#x27;t pass the new emissions tests then VW is required to reimburse the blue book value of the car for false advertising, fraud, and acting in bad faith.
评论 #10495826 未加载
评论 #10496338 未加载
评论 #10495777 未加载
评论 #10495791 未加载
评论 #10495787 未加载
autobahnover 9 years ago
Are they testing other cars beside VW?
评论 #10496262 未加载
jzdover 9 years ago
Blame it on the programmers! &#x2F;sarcasm
astrodustover 9 years ago
More shoes dropping.
S_A_Pover 9 years ago
I definitely think management was involved here. However, its entirely possible that some management was not aware of the details. I doubt that more than some couple tens of people at VW group know intimate details of the VW diesel ECU. With badge engineering&#x2F;platform sharing, its possible that Porsche&#x2F;Audi&#x2F;VW or whoever was not directly responsible for delivering the code could be in the dark about it. Im sure they even want it that way so there is plausible deniability. There are plenty of things that go on in the company I work for that I have no knowledge of. There are plenty of things in the software I customize&#x2F;implement that I do not know about.<p>Bottom line- VW group cheated, was caught, and Im sure has a few dozen scapegoats lined up in accordance with automotive scandal rules and regulations. People will use this as a platform to get their names in the spotlight as a crusader for the people, the managers that made the decision will go largely unpunished, and the world will move on. I think its crappy behavior, but in the scheme of things they did not directly murder anyone and people willingly participate in much more dangerous activities than breathing excessive NOX fumes... I think that they should just fine them make VW say &quot;We are truly deeply heartfeltly sorry&quot; and then we can worry about the bigger problems in life.
评论 #10497534 未加载
评论 #10497603 未加载