Hacker News new | past | comments | ask | show | jobs | submit login
Audi Cruise Control Bug (ma.ttias.be)
112 points by Mojah on Jan 12, 2015 | hide | past | favorite | 84 comments



So i think this is intentional. At least, my 2014 Q5 has an adaptive cruise control that can only be enabled at >20mph. However, I can set it to anything above 10mph (and it will not automatically turn off with a speed too low warning until it drops back below 10mph).

I expect his car is simply set with 31, 30 (km/h), instead of 20, 10 (mph), like mine.

Interestingly, Audi's are incredibly hackable (relative to most other cars) due to the existing of VCDS (http://en.wikipedia.org/wiki/VAG-COM), which pretty much lets you twiddle any possible parameter the car has as a parameter somewhere in it's system.

I would be shocked if the cruise control limits were not parameters controllable, particularly since

1. Cruise control is retrofittable onto a lot of these cars:

See

http://wiki.ross-tech.com/wiki/index.php/Retrofitting (look under cruise control)

http://wiki.ross-tech.com/wiki/index.php/Checking_Cruise_Con...

etc

2. The adaptive cruise control is different between the various models. For example, the newer sedan models can do stop and go cruise control, but my Q5 cannot, so it turns off at low speeds.

I'm near 100% sure this low limit is parameter that is controllable through VCDS, so it can be set to zero for these cars, even if nobody in the community happens to know the coding for it right now.


For a VW Golf 7 with adaptive cruise control (ACC), it works like this:

- if you have a manual gearbox, the minimum speed for ACC is 30km/h.

- if you have an automatic gearbox, the minimum speed for ACC is 0km/h, which means that you can just push the Resume button on the steering wheel to start moving again. Very useful if you live in an area with lots of traffic jams.


There are lots of things you cannot control.

For example, my damn A3 (the last Audi I'll ever drive, for gazillion reasons) will turn off when you're in neutral and release the clutch. There's no software setting to fix that. You can disable that with the press of a button, a button that defaults to 'I know it better than you do, this needs to be enabled' every time you start the car.

I could continue with the complaint that my ACC is limited to 150km/h although there is no technical reason for that. With the joke that is Audi connect etc. etc..

"Hackable" is really not a term I'd use for that car. "A hack"? More like it.


I used to be very annoyed by this start/stop thing and the pain from needing to press one whole button, once, after starting the engine to shut it off was enormous. Really spoiled my whole day, I'll tell ya.

But then I moved from Canada to Europe and it suddenly made perfect sense. In a stop-and-go urban traffic with lots of street lights, the start/stop feature effectively cuts down your car emissions by a non-trivial percentage. There are still cases when it interferes with driving (when entering roundabouts, for example), but then you go through all these cases in a matter of days and learn to recognize them automatically. If you can drive manual, adding an extra button press to the routine adds up to ... nothing.

Finally, there is an option in VCDS that allows you to turn this off, so I'm not sure what you are ranting about to begin with.


> For example, my damn A3 (the last Audi I'll ever drive, for gazillion reasons) will turn off when you're in neutral and release the clutch. There's no software setting to fix that. You can disable that with the press of a button, a button that defaults to 'I know it better than you do, this needs to be enabled' every time you start the car.

Of course you can change that. However there is no button for this in the HUD as this would probably be against the emission limits of the card.


"There's no software setting to fix that. "

This is 100% changeable with VCDS


Hey, it's not like you bought the car and then suddenly found out that it had Stop&Start system. You knew what you were buying. And you are saying that it doesn't work for you? I am curious - what does it do then? Doesn't start the engine after stopping it? Then it's malfunctioning.


Right. And in the beginning I liked the feature.

It's just that it doesn't work all the time and I tend to forget about it when it works, but get quite annoyed when it doesn't. That .. might be a built-in bias that I need to work on, but could explain why this feature was okay on day 1 (and 10 and 30..) and is crap now.

What it does: Depending on circumstances I don't understand it has a reaaaally bad delay. Especially if you time it (unintentionally of course) just so that the motor dies and you want to move in that instant. There's a 'hiccup' and nothing happens for ~1.5-2 seconds. By now I rather let it die completely, count "One Mississippi" and then press the clutch instead of trying it right away - because it just doesn't work well in these cases.

Again, most of the time it works okay. But by now I'd rather not use it if it's not working 100%.

(Not sure if it matters: 2.0 quattro diesel, manual and this keyless entry thing: No ignition key)


Ok, I asked because I drive a car with start&stop system too(Nissan Qashqai 1.6dCi). I know what you mean, I also had a situation couple times when the engine turned off right as I stopped in front of the traffic lights and they turned green in that exact moment - and when I pressed the clutch again it had a second delay before starting the engine again. But yeah, I don't think it's a huge deal(it literally happened to me twice) - unless Audi fucked up and their delay is much longer. I wouldn't cross off the whole system because of it.


On an automatic (A3, 2014) you can configure a custom drive setting (dynamic, economy, etc) that turns stop/start off. This is persisted between journeys.


Huh, isn't it just start&stop ?


Yes, that's the misfeature that works most of the time and is annoying as hell when it doesn't work. And you cannot turn it off forever, as per the manual, my local dealer and various online forums/VCDS experts I've met.


You can disable it by setting the thresholds for activation to something unlikely.

//EDIT: the legality of this however is questionable. In Germany/Austria I'm pretty sure it renders the car illegal if you try to disable it permanently on a car that came with it.


Thanks and my apologies. I was absolutely certain that this isn't possible and have spent quite some time in various Audi related corners of the internet due to my main (Audi connect) issue - and (seemed to?) remember various inquiries to kill that feature and no one succeeded (some even modded the physical button to remember the last state and reset it that way).

Searching again today/with your hints I immediately hit the right settings (temperature thresholds) to set.

Thanks again and I apologize once more for the error here: It seems indeed as if Start/Stop can be easily deactivated using VCDS.


Or just RTFM (if that's relevant for your model)?

Pre-selecting a speed:

You can pre-select a desired speed while the vehicle is stationary.

– Switch on the ignition.

– Pull the lever to position 1 ⇒ page 125, fig. 134.

– Push the lever up towards or down towards in order to increase or reduce the cruising speed setting.

– Release the lever to store the cruising speed setting displayed.

This function allows you to enter the desired cruise control setting speed ahead of time, for example before joining a motorway. Once you are on the motorway, you can activate the cruise control system by pulling the lever to position.

https://www.gebruikershandleiding.com/Audi-A4-2008/preview-h...


It's not a bug, it's a translate error. It's clearly stated in german on this url: https://shops.audi.com/de_DE/web/zubehoer/p/geschwindigkeits...

"ab etwa 30 km/h" -> "from approximately 30 km/h"

That 'etwa' 'solves' the 'bug'. ;-)


it's not - the speed control works as expected and declared to handle speeds above ~30 km/h - the point of this "bug" is that you can only >activate< the system after passing 30 km/h so at 31 km/h


31 is approximately 30


...for sufficiently large values of 30.


Does the Cruise Control cost 81 € or is the just the hand gear?


No, it’s the full cruise control.


I call bullshit on this analysis. There's no way the code would be using integers to represent speed (they'd just be rendered as integers). >= and > are essentially the same operation when comparing floating point values.


Many processors in a modern car have no floating point capability whatsoever. Fractional numbers are represented using integers - "fixed point" representation. While it's almost certainly true that vehicle speed is calculated as a fractional value, the cruise control set speed may be an integer, as it's set in increments of 1kph (or mph, depending). There's no need to keep smaller increments.

It all depends on which processor is handling the cruise control interface, and how they wrote the software. There's no way to know without more information.


The analysis doesn't claim that they're comparing integers, just the fact that it appears that you can only activate once you're very close to 31km/h or higher. It seems to contradict the manual, and therefore might be a bug or at least incomplete documentation.


Funny. If the story was different and arguing something on the basis of floating point; I would have been posting saying that its very unlikely that the firmware was using floating point (or even running on hardware with a fast FPU).


~30 km/h seems like a low speed for cruise control. Where I live (eastern United States) roads with such a low speed limit are usually in residential or commercial neighborhoods, or on tricky sections of mountain roads. Are there long boring roads in Belgium with such low limits?


There are areas where the limit is at 30km/h. These areas can be quite long indeed, but the most important is that it's really easy to get over 30, so activating the threshold is a good idea.


Some rural areas seem in a race to enact ever lower speed limits on dirt / gravel unpaved roads. I've driven many miles on boring dirt roads posted at 35 to get to hiking trails. Different states define unposted dirt roads as 55, 45, and 35, making this very exciting for travelers. Would not be surprised at all to see 25 posted or even 15 MPH for either safety or revenue enhancement. When things are dusty and I'm almost but not entirely lost, but in no hurry, 15 is plenty fast and cruise control might be nice.


I'm in northern France just next to Belgium, where urban development basically forms long strings of city houses along the roads instead of well defined towns. Depending on where he is in Belgium it might be the same for him.

Because of that, there are often very long stretches of mostly straight road limited to 50 km/h with regular 30 km/h sections in the more urban areas... cruise control is almost necessary if you really want to respect the speed limit.


30 km/h only when schools are nearby. There are long boring roads with 50 km/u. however. Most of the times you can drive 70km/h there, but not always :(


My Vauxhall Astra will set at 20MPH which is 2MPH~ more than the Audi.


> Are there long boring roads in Belgium with such low limits?

Not really, but it's an Audi driver...


it could be the same check you know.

    if current speed > cruise control minimum:
        allow activate
        allow decrement


How do car manufactures get firmware updates into their cars?

I heard Tesla does it OTA but what about the others? Do they have to get each car into a dealer and connect to the OBD-II port?

Seems a bit tedious but I guess if something goes wrong it is better to have the car at a service location then have several hundred stranded drivers because a firmware update failed.


Volvo does it at a certified Volvo mechanic.

I was rather amused when my brother, also in IT, called his Volvo mechanic and wanted to see a Changelog for the latest firmware installed in his car. They of course had no idea what he was talking about, even though they're the ones installing this software into his mode of transportation.


I would say that most FW bugs are found in the years that the car is under warranty (At least 2years here in EU) - which means that you have to (there are some new laws around this, but there's no change to be seen in practice as of yet) drive it to a certified mechanic/dealer that has the equipment to update the FW quickly (there's a big chance that he will have the car connected to the diagnostic equipment anyway). And the bugs/updates that are missed this way usually get solved when the driver notices them and drives them to a garage (around here the mechanics, even the non-certified ones have quite a good grasp of common faults that can be remedied with a FW upgrade). So overall this isn't as big of an issue as someone would think.


Ah, the "Android" model. Dump your car as soon as it's out of warranty and you're safe :)


In all current (F-series) BMW cars, firmware updates are performed by the dealer using TCP/IP over 100 megabit Ethernet wired through its OBD-II port.

Curiously, it assumes RFC3927 -- the car assigns itself an IP within 169.254.0.0/16 and the diagnostic computer (a Windows PC running some native but mostly Java-based software) does the same once DHCP fails.


aka Automatic Private IP Adress or APIPA


For the most part, if it "works" you just don't mess with it. For american cars, you usually go to a dealer. My car had many ECU updates over the years, but everyone online complained that it fixed some issues(surging idle, detonation) but then added other issues, so I just never bothered.

For the performance scene, an SCT hand held tuner (http://www.sctflash.com/) flashes over the current ECU firmware with the latest available firmware plus any tuned parameters that you select


For the couple updates my Audi got so far I had to bring it to the dealer.

Some updates even required - if you want to believe the statement I got from my local Audi shop - a dial-up connection to Audi itself.

Most updates _could_ be installed via CD/DVD/SD card as well though, as far as I'm aware. If you can acquire the files and are comfortable 'flashing' your car's systems.


As long as the car is under warranty you have to go in for a yearly inspection - and they update the firmware during that. Or you might get an email(if you registered) saying that a new firmware for your car was released and you should visit the nearest dealership for the upgrade. I got an email for firmware upgrade of my gearbox, that was quite cool.


The gearbox computer for my Volkswagen was recently recalled under warranty. The dealership was shipped a new blank gearbox computer by Volkswagen which then had to flashed with the lastest software version, retrieved from VW Germany via the dealer's satellite uplink (I assume over ODB-II).


I guess it's part of the regular service check-ups you are supposed to do for most manufacturers.


I noticed other more annoying bugs in Audi console software.

And more generally, the automotive industry is weird with respect to software updates. To be clear, i only mean secondary systems such as entertainment console (so i am excluding core systems like engine, and other vital controls). In order to update your software, you need to ask your agent, who most of the time would just give you the default answer of "you have the latest update". Perhaps the agents are not lazy, but there is no place i know of on audi's website, where you can check for available updates. I would expect to be able and download a software update to my car using and SD card, or my phone data connection.

Car manufacturers should really just open up their in vehicle consoles to developers, somewhat a-la appStore.

Perhaps someone from the auto industry can explain this philosophy ?

Obviously Tesla is an exception by taking a more transparent approach to this issue.


Car manufacturers, like all traditional hardware makers, do not really know yet that they have become software makers.

Of course, they know it in the sense that, when you ask whether software is important to their business, they say they won't survive without it, but it is not in their genes yet.

Televisions, printers, washing machines, thermostats, even mobile phones made by traditional phone makers have the same issue.

If smartphones are an indication, old-style hardware manufacturers will either slowly change or disappear.


I agree. and car manufacturers should focus on making cars, that's a handful already. why not "outsource" the consoles to other more UX aware companies and just provide a universal connector. Imagine being able to plug in your favorite tablet in your car where the console is, and your car app will just popup. It makes sense especially for entertainment since you already have your music, and movies and games (for the rear seats).


Car makers do actually purchase (complete, in many cases) subsystems from suppliers. Features like dashboards, multimedia systems, LCD screens, the vehicle speed projection on screen, line hold, braking assistance, injection systems including the control unit and many others from 3rd party suppliers like Bosch, Continental, Delphi, Autoliv etc. Many patents behind innovations and inventions in modern cars are not held by automakers themselves, but by their suppliers (including software).

Of course, automakers do have a SW department of their own and their involvement varies from project to project.


In my LR Discovery the lowest I could set the Cruise Control to was 20km/h - and in certain Toyotas(and also the latest Land Rovers with Terrain Response 2, coming in February), you can set the cruise control as low as 1km/h - useful while travelling through rough terrain, as the vehicle takes care of all the offroad settings automatically, you only need to make sure not to drive into a tree. So I am pretty sure there is no law which would dictate the lowest speed(there also seems to be no law against the highest speed - I had no problem setting mine to 200km/h on the Autobahn)

But yeah, this thing you described certainly sounds like a bug.


In the US, I have heard from multiple dealers that there is a legal upper limit of 90mph for cruise control, and I believe some cars are limited at 85mph (I believe this is the highest speed limit found anywhere in the country). It is also common for there to be a lower limit of 20mph, but I haven't heard that this is mandatory.


My Audi can have the cruise set over 100 mph, at least via adjustment through the speed increase/decrease control. The car does not have to be at the set speed to verify this.


Jeep Grand Cherokees have a similar feature for hill decent or otherwise rough terrain. Once you set the control you can put the car into certain "speeds" that will only go around 1-5mph depending on the setting.


This might seem trivial but to me it raises questions about the quality of engineering and testing that goes in to in-vehicle software systems. If a subtle off-by-one error like this slipped through to release, what about a subtle off-by-one error in the system that handles the brakes? In these systems a "crash" can be a literal one.

Even if the other systems are engineered to much more stringent standards, I'd argue that the user-facing part should meet the same standards, so the driver has confidence they're driving a safe vehicle and not a buggy pile of hacks.


On my Subaru I can only activate cruise control below 85mph but once it is on you can dial it up. I am sure the car world is full of things like this.

And where do you have to set to car to 30 when the limit is 30 anyway?


This is actually useful in Belgium, where roads aren't made of asfalt but of speed cameras. Every zone with a 30km/h limit has a bunch of speed cameras. The cruise control just keeps you safe and steady, without crossing the limit.


I generally find cruise control to not be the most useful there though, it's usually within villages and you'll often have to slow down because reasons (stops, speed bumps, traffic-calming chicanes, red lights, …) so I tend to use the speed limiter more.


"speed limiter"

Is that the thing that can be set to beep whenever you go over a particular speed (most VW Group cars seem to have this) or something that enforces a hard limit?


Usually they don't just beep but actually ignore gas pedal input if it would put you above a certain speed (unless you push it all the way down, in which case it overrides the limiter).


The ones I've had on VW Group cars (Golfs and a Skoda Yeti) just beep and give you a message on the display when a configurable speed is exceeded.


That strikes me as oddly pointless. All the limiters I've used did what DangerousPie talks about, beyond the threshold they'd restrict/ignore gas input, unless the accelerator is floored which overrides the limiter.


Well, just goes to show - I really like it (as does my wife) - something that actually interferes with throttle input strikes me as very intrusive! :-)


i recently worked around a ">=" bug in javascript

javascript only uses floating point numbers and this is a common complaint when discussing the language.. if you have ever wondered why, here is an example:

    var n={}
    var e={}
    n.ndiv = document.getElementById("nid")
    e.ediv = document.getElementById("eid")
    transform(n)
    transform(e)
    if ( n.x >= e.x){
      //imagine
    }
here we have two divs: n and e; that undergo transformations in the DOM through a function: transform(); then their respective x value in the window is compared

the problem is that when running tests divs with equal initial configurations my expected outcomes would fail

when i looked into it it turned out to be a floating point issue where "equal" values would fail because 'e' would be slightly greater than 'n'

i had to implement my own gtoreq() and oreqto() functions to check is check if equal within a margin of error:

    gtoreq(n,e){
      if ( oreqto(n,e) ){
        return true
      } else {
              if ( n > e ) {
                return true
              } else {
                      return false
                      }
    }
    oreqto(n,e){
      var allowederror = .517 //slightly more than .5
      if ( Math.abs(n-e)) < allowederror ) {
        return true
      } else {
              return false
             }
    }
for whatever reason the error was always .5, more evidence pinpointing the error as a javascript floating point issue


> var allowederror = .517 //slightly more than .5

You should probably explain your mystery value better than that.


As far as bugs go, I wouldn't spend much time arguing that this should be fixed before any release.


definitely a p5 :-)


It's interesting how newer technologies allow us to notice these kinds of bugs. I am unable to read speed with 1 km/h resolution on my car which doesn't have digital speed readout.


It's also worth noting that in order to get a greater than sign in your HN title, you actually need to use the "&gt;" HTML tags. Otherwise, they get stripped.


That's pretty subtle. In comparison BMWs used to have a bug in their nav unit that resulted in negative distances to the destination. That was fun.


If it's with Audi, it's probably with all VAG cars (Volkswagen, Audi, Seat, Skoda etc.)


They don't use the same supplier for all models. Sometimes the diesel variant can have a different supplier for the ECU (Engine Control Unit) than the gasoline variant of the same model. They don't trust the entire production on a single supplier (strategic reasons).

Bugs like this one can be noticed a bit late during production phase, so they will not be fixed, as they are not considered SoP (start of production) blockers. A new SW release costs a lot of money and they are requested on a need to have basis.

The SW in the ECU is pretty big for an embedded device with just ~2MB dedicated to program flash: 500k-1m lines of code. And that is only for the engine. In a regular car maybe you have 10-30 on board computers. There are many more bugs in there, you just don't see them all. :-)

(I'm working in the industry for such supplier)


Lamborghini and Bugatti as well :)


Lamborghini too? That's even worse, since my understanding is that those cars are precisely designed to be driven with cruise control at 30 km/h in public places.


Based on the Lamborghini's I see around town, driving 30 km/h round and round a few central blocks hoping (I guess) to impress someones of the appropriate sex is the prime use case of a Lamborghini.


No way, a Bugatti would stall at 30kmph.


In the US, the lowest limit I've found for activating CC is 40kmph / 25mph.


I've had BMW's and Volvo's which allowed CC at 30kmph/18mph.


Well what do you want to happen? That your car doesn't let you slow down?


Cruise control works this way:

- There's a minimum speed you have to go for it to function (in this case, 30kph). If you are /below/ that speed, it doesn't turn on.

- Once it is enabled, you can use a switch to change your current speed up or down in increments (on my car it's approx. 1.5 kph)

- Once in cruise control mode, you can't use the switch to go below the limit (30 kph)

- (On my car) If you hit your breaks or clutch pedals, the cruise control disengages (so yes, you can decelerate below the threshold, but the cc turns off). If you hit the accelerator, it temporarily disengages, then, as soon as you release the accelerator, it slowly goes back to the set speed.

The bug in this case is that the activation treshold is not the same as the lower limit at which you can set the speed once the cruise control is activated

What I would expect: I can enter cruise control mode at 30kph and the minimum speed I can reach using the switch is still 30kph.

What happens: I can enter cruise control mode at 31kph and the minimum speed I can reach using the switch is 30kph.


In other news, HN has a bug in showing '>' in the <title> tag:

    <title>Audi&#x27;s Cruise Control &quot;&amp;gt;=&quot; Bug | Hacker News</title>

    &amp;gt; should be &gt;


How is this reaching #1?


How did this post reached #1? ...


I know this is highly pedantic but CURRENT_SPEED is not a constant and therefore shouldn't be all caps.


This would be according to your preferred naming convention, would it?


[citation needed]




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: