Car software update

Many people heard that all cars produced for last 20 years using “chips” or processors to control different operations of car. So basically, it is small computer that for example calculate proportion of air in petrol for engine based on current speed, quality of petrol etc.  And all computers require software, and this is program computer executes. Technically it can be done in hardware, but it is quite expensive to product custom chip for every operation and quite expensive to change. So, using general processor is much more effective.

And as everyone knows any program may have mistakes (they called bugs in software industry). Of course, probability that simple program has bug is quite low. But the more complex program the higher probability. And that probability grows exponentially with program complexity. Software developer can “fit” small program in his brain. So, developer can keep in brain all interactions, all “quirks” (when say some sensor have glitch and do not return correct value in some specific cases). In case of any problem developer will have educated guess where problem is. But complex programs are quite complex to “fit” in any brain and as result developers split program to smaller blacks and document interactions with block. Then they build bigger blocks using smaller blacks. It helps but it still is extremely hard to know all code interactions and guarantee that there are not bugs in code.

All cars that made in last 5 years have a lot of “chips” and software. Engine, breaks, steering, ABS, airbags, cruise control, entertainment system, navigation etc. It is a lot of software and as result a lot of bugs. So, car manufacturer should fix them if they are critical and it requires customer to bring car to dealership. It takes from 30 minutes to an hour to upload new version. Obviously fix may introduce new problems that will require to bring car again.

For example, I have Honda Civic and they have recall related to steering and involves only software update. There were a lot of cars affected and obviously a company lost a lot of money on this. And it looks like this is unfortunate and there is nothing can be done to make it better.

But one company does it better. Tesla can send updates to software over the air. Each car has built-in connectivity and new versions supports connection over Wi-Fi to make it faster and support update in places where reception is bad or absent, but Wi-Fi is still present. Obviously, Tesla have much more complicated software than regular car and for them quick updates are “must have” feature. But for customers it is very nice. You don’t need to waste a lot of time driving to and from dealership, then waiting at dealership. And Tesla saving enormous amount of money. Also, Tesla can add new features to car software and thus increasing car value. Say imaging tomorrow there will be new standard to audio files. Regular cars will not be able to play it until you buy new car. Tesla can easily add ability to play files of this standard and deploy it to all customers. They can have paid additions or even subscriptions and they will cost reasonable amount of money. On other side other vendors can have paid additions but it will be expensive to buy because it involves manual labor (dealership technician should upload new version of software) and as result t will be costly. And they cannot have subscriptions.

So, I hope other vendors will follow Tesla on that matter saving them and us money and time.