Software upgrades should only provide better software, not unlock precious resources that would otherwise be wasted.
Also, writing software to deliberately cripple hardware is counterproductive to advancement of technology. It also highly incentivizes people to reverse engineer your system, hack your system, unsubscribe themselves from updates, and IMO they have every right to do so. It would be in your best interest to NOT incentivize this type of behavior. If I buy 5 batteries from you, you have no right to walk into my house, install a safe, and lock up 1 of them for a ransom, which is exactly what they are doing. It's childish at best and unethical at worst. If you did that, I will destroy the safe and recover the 5th battery. It's my property that I purchased and I have the right to use it.
So if Tesla gives they same batteries to everyone, nobody will pay more for larger batteries, Tesla has less money, and loses one of the justifications for different model prices. As a result Tesla growth and spending on R&D would have to drop.
Additionally the "unused" sells are used, very useful in fact. The lower load per cell generates less heat when charging or discharging. The lower heat keeps the batteries happier. The lower load per cell means the batteries last longer. So the 200 mile range drivers paid for 200 miles range, but will get better battery life than if they had gotten an actual physical 200 mile battery.
By similar logic, should every Tesla customer get "free" full self driving because every Tesla ships with the hardware? Should every windows box get all commercial software for free, because they have the hardware required to run it?
It’s no different to software providing both free and premium versions in the same binary. What are you paying for? Not the number of bytes.. the R&D hours behind it.
So for the battery, what are you actually paying for? Not the physical battery, but the capital they had to put into designing the system - a system they designed and determined was cheaper to produce at mass with a standard battery layout and configuration (hence the same voltage range, fuses, battery discharge profile etc)
Now if you start messing around with the battery layout then suddenly all your hundreds of sensors, fuses, etc need the ability to achieve remapping and you have to do independent testing, charge profiling etc on the new design.. possibly even design new inverters if you have to change the maximum voltage. So their approach ends up being basic subtraction and scaling on the state of charge. This can be implemented in literally an hour vs. many months and supply chain headache involving hundreds of new PNs.
Disclaimer; I design power systems for a Tesla ‘rival’ kinda.
I think the reason people tolerate this arrangement with software is that they are not actually buying ownership of the IP that this R&D capitalizes; they're buying a license to use that IP.
Here, they're purchasing ownership of an actual car. Tesla is actively denying them full use of something that they own.
It's also my freedom to decide how my CPU runs code, including whether or not it listens to certain instructions within the binary. I can build a custom CPU even.
Paid software should work like this:
- I pay you to tell me a "secret" long binary string that you have spent hours and hours of R&D on
- In return for payment, you tell me that binary string that does something useful
- I can do whatever I want with that binary string within my private space, except tell other people about it
Hence, if there are "features" you don't want me to access for what I paid you, they should not be encoded anywhere in the binary you provide me.