For decades software engineers have moaned “why can’t software engineering be a real engineering discipline like civil engineering”. The travails of the legacy car makers, compared to Tesla or Rivian, show conclusively mechanical engineering is easier .
I've done both. Software engineering is way easier. In traditional engineering you dont have "move fast and break things" and if you get sloppy with edge cases at best it could cost $$$ at worst people die.
Cars have had computers controlling them for decades and didnt have these problems. What's happening now is auto makers are adopting the silicon valley way of doing things which worked ok for webapps but is horrible for hard goods.
I have a very deep appreciation for simpler automotive components. Please don't take anything I'm saying as discounting those very real benefits. What I'm saying is that no practical amount of testing and verification can eliminate the need for updates. Let me give some practical examples I've seen: a bug in the silicon vendor BSP that prevented programs from accessing half of the physical memory. In another case the…
Cars have been built for decades without needing any updates at all. Microcontrollers were first put in cars in the 1970s, for fuel injection control, and later for ABS and SRS. No one ever got a software update for their ABS controller in the 1990s. They've been happily running non-updateable code for many decades now, and all of a sudden you think it's normal to update embedded software? No, it really isn't. If the…
Those systems had bugs like anything else, they were just never addressed if the customer didn't bring their vehicle back to a dealership. Have you dealt with code from the 70s-90s before? The codebases I've worked with from that time period were rife with bugs and quality issues we wouldn't consider remotely acceptable today.
Software and hardware are prone to bugs , but that should not hinder its ability to perform the core operation (driving) of the product unless something major (brake failure) is detected.
A/B boot is old, good, and proven, but what do you do when you have dozens of separate microcontrollers, each governing a semi-independent subsystem, all running their own software that needs its own updates? It would make sense from safety/reliability PoV when a crash/bug in a slightly less critical system (like adjusting mirrors) does not affect a slightly more critical system (like indicators). What do you do when…
I don't think "more smart = less reliable" is inevitable. The goal should be designing it in a way that failure of the more smart features does not spill to critical functionality. Or that you can use it in a degraded state sort of like fly by wire planes do. I have no car design experience, but here is my 5-minute idea: For starters, you build a basic car. It drives, it has basic indicators, it has ABS, etc. It has…
This sounds like the concept of progressive enhancement.
As someone who has been considering an EV, I'm noping out pretty hard right now and thinking about buying an old and reliable Honda Accord. A few more of these posts and I'll be driving a Volkswagen bug with a garage full of spare parts ;)
Back in the 1980s I was in the room with a customer who I had written an inspection system for, using a hand-held computer. After downloading the data from the handheld, it would upload a new inspection route. While demoing the transfer, He asked "What happens if I disconnect this right now?".... I didn't know, and said so. I week later it was bulletproof... you could unplug it any time you wanted, and never lose dat…
As someone who has been considering an EV, I'm noping out pretty hard right now and thinking about buying an old and reliable Honda Accord. A few more of these posts and I'll be driving a Volkswagen bug with a garage full of spare parts ;)
It's not an EV thing. All this same tech is moving into ICE cars too. I know someone with a Genesis GV80 that just randomly threw itself into limp mode and wouldnt go over 20mph. Genesis support gave him the magic button combination to reboot the onboard computers and the car was totally fine. This car has all the same tech as any EV. It gets updates. Has all the sensors, screens, safety tech, advanced cruise (he says it drives itself)... Hell even my mom's Subaru Outback has all this same tech, an onboard modem, updates, etc.
You want an agency to validate every single software updates to vehicles?
At the very least, I want the agency to keep a hold on the update for $N days. That way, I am more convinced that the software engineers of the car manufacturer won't push any quick fixes that might cause bigger problems later. In the case of urgent problems, the correct response is to ground the fleet. This will cost the manufacturer money, but I'm a software engineer for long enough to know that a quick fix won't b…
> At the very least, I want the agency to keep a hold on the update for $N days.
What is the difference between this and "No Deploy Fridays"?
The same thing happened to our Tesla Model X a few years back. Tesla even wanted us to pay $200 flat fee to fix the problem they created and that we couldn’t opt out off. I may have used impolite language until they waived that. And that’s not even addressing the massive time sink it was.
Does the owner get compensation for this bug? For example, if you need a rent a car for the day, will Ford reimburse the cost? If no, can you sue in small claims court?