Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

Tesla infotainment system upgradeable from MCU1 to MCU2

This site may earn commission on affiliate links.
Maybe there’s a reason for that. Like it’s not worth the effort or just can’t be done.
It's much much harder to gain root on MCU2, and easier for them to close root methods on MCU2. MCU1 is permanently exploited with a hardware bug well documented among Nintendo Switch rooters. This means hackers will tend to prefer MCU1 until a similarly irrevocable method is gained on MCU2.
 
So the MCU in my AP1 2015 Model S was replaced a few weeks ago with an MCU2. Accidentally. For one day.

Yep, my MCU was scheduled to be replaced under warranty and the mobile ranger came out and installed the MCU2 not realizing it was an MCU1 car. And it worked. Sorta. Everything in the car worked except the MCU2 would not read the VIN number. After going back and forth with the techs on the phone they realized their error and removed the MCU2 and put in the correct MCU1 (this process took several days).

But it did work with the MCU2. The car drove. The displays were fully functional. The only error I saw was lack of a VIN number.


The key here is making the difference in the new configuration negligible.

I assume there is a software flag whether the signals required by IC1 should be available on some ethernet port on the MCU or not. Or maybe the they are always available on that port, even or MCU2, just not used by the IC2.

The server that hosts these signals required by IC1 does not care much if it runs on MCU1 or MCU2. It's a very simple piece of code.

It's a very easy software problem to introduce MCU2+IC1 without adding nearly anything to the code, and requiring almost no new unit tests / integration tests. One just needs to think simple, and not overcomplicate things. A video stream to IC1 is just not going to happen.

Yup, if aroundlsu actually had an MCU2 installed it seems like the API to read the information needed for IC1 still exists in the code running on MCU2. Probably isn't worth the effort to disable the APIs such as track info etc, they just go unused.

OR maybe the IC2 software (running on MCU2 and outputting on the second display) is actually the same software that IC1 runs and is still even using the same APIs to read the data it needs from the CID software.
 
  • Informative
Reactions: mazeminder
The key here is making the difference in the new configuration negligible.

I assume there is a software flag whether the signals required by IC1 should be available on some ethernet port on the MCU or not. Or maybe the they are always available on that port, even or MCU2, just not used by the IC2.

The server that hosts these signals required by IC1 does not care much if it runs on MCU1 or MCU2. It's a very simple piece of code.

It's a very easy software problem to introduce MCU2+IC1 without adding nearly anything to the code, and requiring almost no new unit tests / integration tests. One just needs to think simple, and not overcomplicate things. A video stream to IC1 is just not going to happen.

And my point is you're making a ton of assumptions here about how the code works, making your suggested implementation simple. Are you a Tesla software engineer? Do you know if any of your assumptions hold? We already know that the software team for the MCU are a bunch of clowns that can't fix simple bugs or simple feature requests that have been documented for years. But they can add a fart machine and video games. I'm not going to assume that the platform was developed with any kind of standards or common development practices that might make an MCU2+IC1 hybrid possible. The hooks might be there, they might not be.

But if actually were as simple as you say it is, why isn't it happening and Tesla allowing people to install a "drop in" MCU2 upgrade (once they fix this VIN display problem)?
 
Last edited:
  • Like
  • Informative
Reactions: GSP and FlatSix911
It's a very simple piece of code.

You know wha's a "very simple piece of code"? The trip odometers. Yup. All that code needs to do is subtract two numbers and display the result. But do you know what the software development clowns at Tesla have done to that "very simple piece of code"? They store and keep track of the mileage of every single 'drive', and then have code to add up all those drives to calculate the trip odometers. Every single time. It doesn't even add them up and keep a subtotal and than add the deltas. Nope, that would make too much sense. The code should be something a teenager could write in BASIC, but no, someone at Tesla had the brilliant idea of storing each individual trip and then aggregating the mileage. I couldn't believe it either, but do you know what the documented procedure is for speeding up a slow/laggy MCU1 interface: Clear out the trip odometers to clear out thousands of records of individual trips. And it works. I still can't believe this is true, but it's been documented by several trustworthy people here on TMC (and I think TeslaBjorn also claims this is true).

So no, I'm not assuming any piece of code on the MCU is a "very simple piece of code".
 
Last edited:
You know wha's a "very simple piece of code"? The trip odometers. Yup. All that code needs to do is subtract two numbers and display the result. But do you know what the software development clowns at Tesla have done to that "very simple piece of code"? They store and keep track of the mileage of every single 'drive', and then have code to add up all those drives to calculate the trip odometers. Every single time. It doesn't even add them up and keep a subtotal and than add the deltas. Nope, that would make too much sense. The code should be something a teenager could write in BASIC, but no, someone at Tesla had the brilliant idea of storing each individual trip and then aggregating the mileage. I couldn't believe it either, but do you know what the documented procedure is for speeding up a slow/laggy MCU1 interface: Clear out the trip odometers to clear out thousands of records of individual trips. And it works. I still can't believe this is true, but it's been documented by several trustworthy people here on TMC (and I think TeslaBjorn also claims this is true).

So no, I'm not assuming any piece of code on the MCU is a "very simple piece of code".
I'm leading development for a different company, not Tesla, so I don't know anything about their particular codebase. My post is based on an assumption that they follow the easiest/best way to meet their goals.

Ofcourse I don't know if their software team meets up with this assumption, or if they build things in a overcomplicated way that makes simple things later impossible.

If the Musk statement is true, that Tesla has the best software team in the world, my statement holds. If they don't have a good software team, then anything they attempt will be difficult.
 
I've seen better software out of a high-school intro-to-programming class.

If the Musk statement is true, that Tesla has the best software team in the world,

That's a laugh.. when did he make that statement?

Now if he said SpaceX has the best software team in the world, I'd believe him. But Tesla??? He might have the best software team in Fremont. But that's about as far as I'd stretch it (I also don't know what other software companies are in Fremont. ;))

or if they build things in a overcomplicated way that makes simple things later impossible.

I think my example above pretty much proves this assertion. And why haven't they fixed it?
 
Last edited:
  • Like
Reactions: kavyboy
Not sure if you're joking or serious. Go to the "Trips" page, and next to each trip odometer should be a "Reset A", "Reset B", etc buttons.
I was serious this time. I thought you were talking about the total odometer miles. I guess I wouldn't do this unless I really needed to. I still have never reset A, not that it does me much good to know my lifetime average kWh per mile. Have you noticed much improvement resetting the trips and navigation screen?
 
I was serious this time. I guess I wouldn't do this unless I really needed to. I still have never reset A, not that it does me much good to know my lifetime average kWh per mile. Have you noticed much improvement resetting the trips and navigation screen?

My MCU1 touchscreen hasn't shown signs of slowness or lagginess. I do periodically clear out the nav history, but so far I haven't reset one trip odometer (lifetime stats). It boggles the mind that either of these would be the cause of reduced performance. But they are. Go Tesla!
 
  • Informative
Reactions: FlatSix911
I was serious this time. I thought you were talking about the total odometer miles. I guess I wouldn't do this unless I really needed to. I still have never reset A, not that it does me much good to know my lifetime average kWh per mile. Have you noticed much improvement resetting the trips and navigation screen?
Once the Service Center reset my trip odometers in attempt to solve some media player or touchscreen UI strangeness I reported (I forget exactly which, there have been numerous)

It didn’t solve anything at the time but I did lose my lifetime trip stats which were kept in Trip A. Annoying. Oh and they didn’t tell/ask me about doing so beforehand

I think the SC routinely uses the reset as a magic cure-all when they can’t solve some MCU issue otherwise - a digital version of waving a rubber chicken. (though I have no doubt the convoluted way they use each individual trip data to calculate the odometer, thereby consuming excess resources)
 
Once the Service Center reset my trip odometers in attempt to solve some media player or touchscreen UI strangeness I reported (I forget exactly which, there have been numerous)

It didn’t solve anything at the time but I did lose my lifetime trip stats which were kept in Trip A. Annoying. Oh and they didn’t tell/ask me about doing so beforehand

I think the SC routinely uses the reset as a magic cure-all when they can’t solve some MCU issue otherwise - a digital version of waving a rubber chicken. (though I have no doubt the convoluted way they use each individual trip data to calculate the odometer, thereby consuming excess resources)

Ah you had a Service Center pull that trick on you too. :mad: I now routinely take a screenshot of my trip odometers before taking the car in for service.

Count me firmly in the camp that believes that Tesla won't do MCU1->MCU2 upgrades. If they do, I'd bet it'd be for AP2.5 cars only (because AP2.5/MCU1 and AP2.5/MCU2 were both combinations that shipped from the factory). If they actually do support upgrades for AP1 or pre-AP, I'd...let somebody else be the first one to try it. :D

Bruce.
 
So the MCU in my AP1 2015 Model S was replaced a few weeks ago with an MCU2. Accidentally. For one day.

Yep, my MCU was scheduled to be replaced under warranty and the mobile ranger came out and installed the MCU2 not realizing it was an MCU1 car. And it worked. Sorta. Everything in the car worked except the MCU2 would not read the VIN number. After going back and forth with the techs on the phone they realized their error and removed the MCU2 and put in the correct MCU1 (this process took several days).

But it did work with the MCU2. The car drove. The displays were fully functional. The only error I saw was lack of a VIN number.

Interesting... can you share your detailed work order with part numbers?
I was also told by my local service center they could do an MCU upgrade... here is what they provided :cool:

upload_2019-7-29_20-15-53.png