9 ms·
Anyone else kind of scared by the fact that there's 280000 [0] lines of code in a car? I mean, I know there's computers in there, and that they are necessary no
by mrcharles 16y ago
Anyone else kind of scared by the fact that there's 280000 [0] lines of code in a car? I mean, I know there's computers in there, and that they are necessary nowadays, but that seems like an awful lot of code to handle some lights and engine timings.
[0] http://detnews.com/article/20110208/AUTO01/102080381/Feds-clear-Toyota-of-electronic-causes http://detnews.com/article/20110208/AUTO01/102080381/Feds-cl...
- archangel_one 16y agoIt's possible that quite a lot of those lines of code might support mostly unnecessary UI-type stuff, eg. the interfaces that let you configure how long the lights remain on for after you remove the key which Top Gear take such pleasure in criticising. But yeah, it is kind of scary. I'm not really sure I want my car to be "smarter" - keeping it simple seems good. But I guess it is a credit to the industry that AFAIK there haven't been any software disasters that have led to brakes failing and people being killed or similar.
- brc 16y agoWhile you're right in that computers control all that integration, you're wrong about being integrated within the car. The 'body' computer (which handles door lights, stereo controls, instrumentation, etc etc) is a completely separate system to the engine management system. One thing most people don't realise is that there isn't one 'central' computer for a car. Rather there are separate computers for each control system - one for the engine, transmission, body, ABS, airbags, suspension (in some cases) - etc etc etc. It's done like this both for separate points of failure and mixing and matching across different model ranges. Most of the things Top Gear loves to hate can actually be programmed out of your car if you can get a control system that interfaces with it. Things like warning chimes, reminders, etc are generally market-regulation specific, and can easily be switched off as an option within the computer if you have the right gear. One pet hate of mine is auto-locking doors, and in many cars you can turn this off. There is essentially zero chance of me getting carjacked, so it's definitely more trouble thant is worth.
- CoachRufus87 16y agoThough it's slightly unsettling, you have to figure that with the millions of cars on the road, that code must be pretty solid considering that there aren't more car-software related incidents occurring. Any idea what language they use in these vehicles?
- thematt 16y agoI do this type of software development for a living, and you're absolutely right -- it's rock solid. The embedded control units themselves are coded in a low-level C. The automotive manufacturers develop on top of that in more abstract engineering type languages. It's fun software to development, given all the hardware integrations involved. Way more interesting than writing line-of-business applications.
- ehsanul 16y agoWould you be willing to answer a few questions? I'm a recent mechanical engineering graduate (interest in dynamics/control systems) who likes programming. So I'm pretty interested in the type of work you're involved in and want to see if I can get into it somehow. Couldn't find an email in your profile, but mine's ehsanul@ehsanul.com, if you're open to discussion. Thanks!
- brettnak 16y agoShort answer: No. After studying state estimation and control systems, I'm in no way surprised that there are this many lines of code in a system. I also am not scared of it. This is how I think about it: Bugs in control systems code are often not visible until some super-weird edge case or some extreme condition is hit. In this case, it's probably too late for the software to really do anything to help you. If it does help, great, if it wasn't there, you'd be screwed anyway. Bugs that affect normal and slightly abnormal operations are very obvious. Essentially, I'm no more worried about the LOC count in my car than I am about a micro-fracture in a bolt that holds my brakes on.
- mrcharles 16y agoAnd yet, something like a stress fracture can, within reason, be predicted using scientific models, where software bugs cannot. Or at least, their results cannot be predicted.
- Bud 16y agoSoftware bugs can never be predicted? And results and failure modes can never be predicted? I disbelieve.
- mrcharles 16y agoThe kind argued to be the result of crazy edge cases or super weird conditions cannot. Not in the same absolute fashion. I'm not saying that you can't find or avoid bugs, or build test suites to catch the majority. But the ones you don't catch have a lot more potentially random results.
- jbri 16y agoYou're not a Formal Methods guy, I see.
- streeter 16y agoThe Halting Problem (http://en.wikipedia.org/wiki/Halting_problem http://en.wikipedia.org/wiki/Halting_problem) talks about this. For individual algorithms, one can determine if it will halt or not. However, no general algorithm exists. The hard part is that the algorithm to cause the code to halt has to be specially crafted for every algorithm.
- Joakal 16y agoShort answer: Yes. The car industry is going more and more towards closed systems that your local mechanic can't repair without getting licensed and buying specialised readers to understand the car systems. One possibility is that companies could make cars cheaper with poor quality code. This has higher maintenance costs and they get more from licensing/tools sold to repair. The consumer won't realise the extra burden until after purchase or reviews.
- thematt 16y agoThe fact that your local mechanic can't repair things like they used to is not necessarily because the manufacturer elected to write complicated code. It's the environmental regulations that play a huge part in necessitating the hardware (and sometimes software) technology. Much of the technology is needed to get the vehicle within compliance of emissions regulations. Such technology doesn't come cheap -- and is increasingly complex, which necessitates the need for specialized skills and tools to deal with. This is not the type of thing manufacturers can just choose to shortcut, at least not if they want to sell their vehicles in certain countries.
- Joakal 16y agoI was referring to the nature of proprietary diagnostic tools that only work with certain cars. Hardware and software is great, but not the consumer is forced to go to a limited supply of only approved dealers who can only diagnose certain software (those software can easily be put out of date by the next generation of cars). Vendor lock-in.
- momotomo 16y agoNo. Two perspectives on this - currently working alongside Process Control Engineers, and I'd trust these guys to do this kind of work. The mindset and level of detail is complete different from programming in non-critical fields. Our peer review process is comprehensive, and mandatory for all code changes, can be typical for 2+ weeks of dedicated review and analysis on small scopes of change. Secondly, theres a _lot_ in an ECU. I recently installed a custom ECU into my streeter (Autronic SM4), and the volume of control you have (3D F/A ratio maps, 3D ignition timing, cold start control, knock sensing, fuzzy logic for wear compensation such as dirty injectors / plugs etc) is staggering. On top of this you have exception management (like limp home mode if you blow something up). It's just like any other programmable logic controller. Additionally for cost savings they probably run the one codebase across a few different models, so not all of it would be executed code.
- nickpinkston 16y agoEver use the Megasquirt system? I put one together a while back, but never got to actually get it hooked up to the engine. How's the Autronic?
- momotomo 16y agoHave heard of / but haven't used MS. Autronic install will actually be completed by 11/02. They're comparatively cheap and feature complete (3d maps, realtime tuning compensation, boost management etc). Had it recommended by a lot of people so far, and my local shop can tune them =) At this stage it's a waste, car is stock, but using the lead time to learn the tuning. Next phase is supercharging + NOS kit and related top end work, little bit excited for it. How is the MS actually structured, seems to have a few components to it?
- nickpinkston 16y agoYea, I believe the MS uses these sensors: Manifold Pressure, RPM, Intake Air Temp, Coolant Temp., and throttle position - to determine everything. It's very straight forward and pretty hackable - but I never actually did anything other than hook it to the "Stimulator" which was a board that acts as an engine to test the MS unit. I also used the HPTuners software to tweak my fuel / spark maps on my stock ECU, and it worked very well actually. Good luck with your project!
- kristopher 16y agoMost likely these some 280000 lines represent conditional statements that are drawn out to keep weird edge cases out of sight. For instance Boeing used Ada [0] because it can quickly assert all of the conditionals at compile time. [0] http://archive.adaic.com/projects/atwork/boeing.html http://archive.adaic.com/projects/atwork/boeing.html