Vehicle Software Updateslink
Overviewlink
A software update improves or introduces entirely new vehicle features after the vehicle has been built. With each software update there are multiple components that are updated, including the infotainment computer, the autopilot computer, the vehicle gateway, and distributed vehicle controllers. Within a normal vehicle software update are three different update paths, depending on what is being updated. An update to the infotainment computer is known as the "primary update". A "secondary update" is used to update anything other than the infotainment computer or a Gateway-connected control module. Secondary downloads on Cybertruck are used for Autopilot and TCU. A "Gateway-based" update is used to update any of the distributed control modules across the truck. An update can range from minor bug fixes to major changes, like improvements to the user interface or more substantial updates to Autopilot control. There are three different types of updates: vehicle software, navigation maps, and games. The basic steps of an update are Handshake - Download - Verify - Staging - Staged - Installation - Clean Up.
The Updaterlink
Updates are controlled by an application on the vehicle called "the Updater". The Updater coordinates the high-level state of the update and manages the distribution of downloaded files to the vehicle components. Other than prompting the driver when there's a new update available and starting the update, the Updater remains unseen, performing all of its duties without user interaction. It is possible to interact with the Updater to get information and request actions outside of a normal update, however. There are also versions of the Updater that live on the Autopilot computer that manages the installation of Autopilot packages. The Updater will have a different "personality", depending on the infotainment platform: cid-updater, sx-updater, ic-updater, zen-updater. Additionally, the Updater is able to persist over a reboot, loss of power, or loss of connectivity by keeping status files in /var/spool/xxx-updater.
New Software Availabilitylink
Software updates become available periodically. To check to see if new software is available, each vehicle reports its unique configuration of hardware and software to the update servers. On the rare occasion, an important update will be made available outside the normal release cadence.
When there is new software available, both the Tesla mobile app and the UI will notify the user. Checking if there is a newer version available on the UI: Controls > Software. When the "Software" pane loads, the vehicle will automatically check to see if there is a newer version available. The UI will display "Checking for updates..." and then update the availability status. This is based on a data value GUI_softwareUpdateAvailable (true / false).
Software Update Preferencelink

The availability of a new software update partially depends on the software update preference. This can be found on the touchscreen in Controls > Software > Software Update Preferences. The two choices are Standard and Advanced. The selection of this toggle sets the data value GUI_updatePreference.
- Standard: Receive software updates using the normal rollout time frame.
- Advanced: Receive the latest software updates as soon as they are available.
Download Status Iconlink
| Download Status Icon | Icon Name | Description |
|---|---|---|
![]() |
Yellow download arrow | New software is available; Wi-Fi connection is needed to download |
![]() |
Green download arrow | New software is actively downloading |
![]() |
Yellow clock | New software has finished downloading and is ready for installation |
![]() |
Neutral clock | New software has finished downloading and has been scheduled to install at a future time. |
The software update process can be roughly divided into two steps: download and installation.
To send the new software to the vehicle, the software package must first be downloaded from Tesla servers using a Wi-Fi connection. This is referred to as an over-the-air (OTA) update.
Stages of a Software Update Joblink
Handshakelink
Once a new software update is available, an update job is created with a unique job id. The Updater on the vehicle sees that there is a job and initiates a handshake, an exchange of information between the vehicle and Tesla's servers.
The Updater responds to the handshake with information about what is currently installed on the vehicle.
Based on this information the server sends a handshake response file (JSON) that contains the software update plan, including
- A URL of the update job
- The download URL of the primary package http://va.teslamotors.com...
- Signature of the package
- Signature of the secondary packages
- Handshake parameters
- Type of update: Full download (the complete universal package) or diff (a generated diff between vehicle package and requested package)
Downloadlink
Once a plan is declared for the update job, the Updater updates the version data value: GUI_softwareUpdateVersion and checks if the update has been previously downloaded and could be redeployed instead of downloaded. If the previously downloaded packages match the target, then the download is skipped.
If a download is necessary, then the primary package download begins. The primary package is the main .ssq file which contains the kernel images, boot images, and hex files. The primary package is large, so Wi-Fi is normally required to download. The Updater checks the Wi-Fi data value to see if it is able to download the package. If on Wi-Fi, it starts downloading. If not on Wi-Fi, it enters "Wi-Fi delay".
With a good Wi-Fi connection, the primary package will begin downloading directly to the offline bank on the infotainment computer.
If the vehicle is driven during the download phase, the Updater will pause the download and then resume once Wi-Fi connectivity returns.
The package download progress is reflected in the data value GUI_softwareUpdatePackageDownloadProgress, and download throughput GUI_softwareUpdatePackageDownloadBytesPerSecond is displayed to the user. These data values are important in showing the download on the touchscreen.

This progress bar represents the primary package download (0% - 50% of the bar) and the secondary package download (50% - 100% of the bar).
Since the software packages are large, Wi-Fi is needed to download them. When a new download is available, but the vehicle is not connected to Wi-Fi, it is referred to as "Wi-Fi wait". Wi-Fi wait or Wi-Fi delay is based on periodically checking the data value LINK_linkState and then setting GUI_softwareUpdateWifiWait depending on the value of linkState. If on Wi-Fi delay, the Controls > Software panel will show "Please connect to Wi-Fi to download the Software Update."

Verifylink
The update package is signed by Tesla. After downloading, the Updater validates the package signature to ensure that the file was downloaded successfully. If the signature check fails, the Updater will report a failure and automatically try a new download.
Staginglink
-
Once the primary package is verified, the Updater mounts the package to the infotainment filesystem and looks inside for some important files
- Swapped Updater: If the package contains a newer updater, then that package updater is verified and then swapped to become the new updater (referred to as the "swapped updater").
- Secondary download signatures: Inside the primary package are signature files for the secondary downloads. The Updater uses the signature files to perform a "signature resolution" with mothership and downloads all necessary secondary packages.
-
After the secondary downloads, the infotainment kernel and recovery kernel are "staged" to the offline bank.
Stagedlink
When the downloads are complete and verified, the Controls > Software panel will display "Update Available"

The user can then decide to start the update "Install Now" or schedule the time to start the update "Scheduled" install. Starting the vehicle update is also known as "gostaged" in Updater speak.
Installationlink
Once the software update starts, there are limits on vehicle behavior.
- No charging: If charging when the software update begins, charging stops. Charging will resume automatically once the software update completes.
- UI unavailable: A software update cannot be stopped once it has started the installation.
-
No driving: If the vehicle is being driven at the scheduled update time, the update is canceled and must be rescheduled.
-
The first step in installation is to check the package integrity again before mounting. If the signature is still valid, the primary package is then mounted again.
-
The infotainment kernel is committed.
-
The secondary components (Autopilot and TCU) are staged.
-
Gateway-based updates
- The Updater copies over a new Gateway Updater to the Gateway.
- The mid voltage battery is checked to make sure the power supply is in a good state, and then the Gateway reboots into update mode.
- After rebooting, the Gateway Updater reads the vehicle configuration
- Gateway Updater requests two files from the infotainment filesystem: cbreaker and signed_metadata_map.
- Hardware ID Acquisition: the Gateway talks to each control module over Etherloop and CAN to determine its hardware ID and currently installed software version.
- Gateway Updater locks-out the high voltage contactors to prevent high voltage.
- Gateway Updater updates the Gateway software first.
- Gateway Updater then updates all connected controllers that have newer software available.
-
Gateway reports overall result and updates datavalues.
- GUI_softwareUpdateGatewayInProgress
- GUI_softwareUpdateProgress 80
- GUI_softwareUpdateState
- After the Gateway-based update completes, the TCU, ADSP, and the Tuner are updated.
- Infotainment computer update
-
The infotainment computer reboots into the new version, verifying the kernel image signature on boot.
Clean Uplink

- Updater logs are uploaded to Tesla's servers.
- Update-related data values are reset.
- The update is finished with a "termination report", an HTTP POST marking the end of the update.
- Release notes are displayed.
Serviceabilitylink
Updatable Componentslink
| Component | Description |
|---|---|
| BLEEPCENTER |
GATEWAY
EGGLEFT
VCSEC
BLEEPCENTER
|
| BLEEPCRADLE |
GATEWAY
EGGLEFT
VCSEC
BLEEPCRADLE
|
| BLEEPFRONT |
GATEWAY
EGGLEFT
VCSEC
BLEEPFRONT
|
| BLEEPFRONTLEFT |
GATEWAY
EGGLEFT
VCSEC
BLEEPFRONTLEFT
|
| BLEEPFRONTRIGHT |
GATEWAY
EGGLEFT
VCSEC
BLEEPFRONTRIGHT
|
| BLEEPLEFT |
GATEWAY
EGGLEFT
VCSEC
BLEEPLEFT
|
| BLEEPREAR |
GATEWAY
EGGLEFT
VCSEC
BLEEPREAR
|
| BLEEPREARLEFT |
GATEWAY
EGGLEFT
VCSEC
BLEEPREARLEFT
|
| BLEEPREARRIGHT |
GATEWAY
EGGLEFT
VCSEC
BLEEPREARRIGHT
|
| BLEEPRIGHT |
GATEWAY
EGGLEFT
VCSEC
BLEEPREARRIGHT
|
| CMPT |
GATEWAY
EGGRIGHT
CMPT
|
| CP |
GATEWAY
HVBATT
CP
|
| CPPLCFW |
GATEWAY
HVBATT
CPPLCFW
|
| CPPLCPIB |
GATEWAY
HVBATT
CPPLCPIB
|
| DIF |
GATEWAY
EGGLEFT
DIF
|
| DISP |
GATEWAY
DISP
|
| DISPTOUCH |
GATEWAY
DISPTOUCH
|
| DISPOSD |
GATEWAY
DISPTOUCH
|
| EGGLEFT |
GATEWAY
EGGLEFT
|
| EGGLEFTA |
GATEWAY
EGGLEF
|
| EGGLEFTBL |
GATEWAY
EGGLEFT
|
| EGGLEFTBU |
GATEWAY
EGGLEFT
|
| EGGREAR |
GATEWAY
EGGREAR
|
| EGGREARA |
GATEWAY
EGGREAR
|
| EGGREARBL |
GATEWAY
EGGREAR
|
| EGGREARBU |
GATEWAY
EGGREAR
|
| EGGRIGHT |
GATEWAY
EGGRIGHT
|
| EGGRIGHTA |
GATEWAY
EGGRIGHT
|
| EGGRIGHTBL |
GATEWAY
EGGRIGHT
|
| EGGRIGHTBU |
GATEWAY
EGGRIGHT
|
| ESP |
GATEWAY
EGGLEFT
ESP
|
| ESPBL |
GATEWAY
EGGLEFT
ESP
|
| ESPBU |
GATEWAY
EGGLEFT
ESP
|
| ESPCAL |
GATEWAY
EGGLEFT
ESP
|
| ESPHSM |
GATEWAY
EGGLEFT
ESP
|
| FOHM |
GATEWAY
EGGRIGHT
VCRIGHT
ESP
|
| GTW3 |
GATEWAY
|
| HCM3L |
GATEWAY
VCLEFT
HCM3L
|
| HCM3R |
GATEWAY
EGGRIGHT
VCRIGHT
HCM3R
|
| HVBATT |
GATEWAY
EGGREAR
HVBATT
|
| HVBATTBL |
GATEWAY
EGGREAR
HVBATT
|
| HVBATTBU |
GATEWAY
EGGREAR
HVBATT
|
| IBST |
GATEWAY
EGGRIGHT
IBST
|
| IBSTBL |
GATEWAY
EGGRIGHT
IBST
|
| IBSTBU |
GATEWAY
EGGRIGHT
IBST
|
| IBSTCAL |
GATEWAY
EGGRIGHT
IBST
|
| IBSTHSM |
GATEWAY
EGGRIGHT
IBST
|
| ICR |
GATEWAY
ICR
|
| ICRBL |
GATEWAY
ICR
|
| ICRBU |
GATEWAY
ICR
|
| LOOPSW |
GATEWAY
LOOPSW
|
| OCS |
GATEWAY
EGGRIGHT
VCLEFT
OCS
|
| OHLF |
GATEWAY
EGGRIGHT
OHLF
|
| OHLRL |
GATEWAY
EGGLEFT
VCLEFT
OHLRL
|
| OHLRR |
GATEWAY
EGGRIGHT
VCRIGHT
OHLRR
|
| OPCF |
GATEWAY
EGGLEFT
DIF
OPCF
|
| PCS |
GATEWAY
EGGREAR
HVBATT
PCS
|
| PEPS |
GATEWAY
EGGLEFT
PEPS
|
| PEPSM |
GATEWAY
EGGLEFT
PEPSM
|
| PMF |
GATEWAY
EGGLEFT
PMF
|
| PSFA |
GATEWAY
EGGLEFT
PSFA
|
| PSFAM |
GATEWAY
EGGLEFT
PSFAM
|
| RCM |
GATEWAY
RCM
|
| RCMBM |
GATEWAY
RCM
|
| RCMBMU |
GATEWAY
RCM
|
| RCMBL |
GATEWAY
RCM
|
| RCMBU |
GATEWAY
RCM
|
| RCMCAL |
GATEWAY
RCM
|
| RGBFLFORE |
GATEWAY
EGGLEFT
VCLEFT
VCDOORFL
RGBFLFORE
|
| RGBFLAFT |
GATEWAY
EGGLEFT
VCLEFT
VCDOORFL
RGBFLAFT
|
| RGBFRFORE |
GATEWAY
EGGRIGHT
VCRIGHT
VCDOORFR
RGBFRFORE
|
| RGBFRAFT |
GATEWAY
EGGRIGHT
VCRIGHT
VCDOORFR
RGBFRAFT
|
| RGBIPFL |
GATEWAY
EGGRIGHT
VCRIGHT
RGBIPFL
|
| RGBIPFR |
GATEWAY
EGGRIGHT
VCRIGHT
RGBIPFR
|
| RGBRLFORE |
GATEWAY
EGGLEFT
VCLEFT
VCDOORRL
RGBRLFORE
|
| RGBRLAFT |
GATEWAY
EGGLEFT
VCLEFT
VCDOORRL
RGBRLAFT
|
| RGBRRFORE |
GATEWAY
EGGRIGHT
VCRIGHT
VCDOORRR
RGBRRFORE
|
| RGBRRAFT |
GATEWAY
EGGRIGHT
VCRIGHT
VCDOORRR
RGBRRAFT
|
| RSA |
GATEWAY
EGGREAR
RSA
|
| RSAM |
GATEWAY
EGGREAR
RSA
|
| SCCM |
GATEWAY
EGGLEFT
SCCM
|
| SEPS |
GATEWAY
EGGRIGHT
SEPS
|
| SEPSM |
GATEWAY
EGGRIGHT
SEPS
|
| SSFA |
GATEWAY
EGGRIGHT
SSFA
|
| SSFAM |
GATEWAY
EGGRIGHT
SSFA
|
| SWSL |
GATEWAY
EGGLEFT
VCLEFT
SWSL
|
| SWSR |
GATEWAY
EGGLEFT
VCLEFT
SWSR
|
| THS |
GATEWAY
EGGRIGHT
VCRIGHT
THS
|
| VCBLDCB |
GATEWAY
EGGRIGHT
VCRIGHT
VCBLDCB
|
| VCBLDCFL |
GATEWAY
EGGLEFT
VCLEFT
VCBLDCFL
|
| VCBLDCFR |
GATEWAY
EGGRIGHT
VCRIGHT
VCBLDCFR
|
| VCBLDCPC |
GATEWAY
EGGRIGHT
VCSUPER
|
| VCBLDCPP |
GATEWAY
EGGRIGHT
VCSUPER
|
| VCDOORFL |
GATEWAY
EGGLEFT
VCLEFT
VCDOORFL
|
| VCDOORFR |
GATEWAY
EGGRIGHT
VCRIGHT
VCDOORFR
|
| VCDOORRL |
GATEWAY
EGGLEFT
VCLEFT
VCDOORRL
|
| VCDOORRR |
GATEWAY
EGGRIGHT
VCRIGHT
VCDOORRR
|
| VCLEFT |
GATEWAY
EGGLEFT
VCLEFT
|
| VCREAR |
GATEWAY
EGGREAR
VCREAR
|
| VCRIGHT |
GATEWAY
EGGRIGHT
VCRIGHT
|
| VCSEC |
GATEWAY
EGGLEFT
VCSEC
|
| VCSUPER |
GATEWAY
EGGRIGHT
VCSUPER
|
| VCUSB |
GATEWAY
EGGRIGHT
VCRIGHT
VCUSB
|
| WIPER |
GATEWAY
EGGLEFT
VCLEFT
WIPER
|
| DFLKF |
GATEWAY
EGGLEFT
DFLKF
|
| DFLKR |
GATEWAY
EGGLEFT
DFLKR
|
| DIR |
GATEWAY
EGGLEFT
DIR
|
| OPCR |
GATEWAY
EGGLEFT
PMR
|
| PMR |
GATEWAY
EGGLEFT
PMR
|
| SDCR |
GATEWAY
EGGLEFT
SDCR
|
| VCTRAILER |
GATEWAY
EGGLEFT
VCTRAILER
|
| Infotainment kernel |
The infotainment computer's operating system and UI application Infotainment updater
|
| TCU |
Telematics control unit, the module that contains the cellular modem and Wi-Fi Infotainment
TCU
|
| Infotainment kernel |
The infotainment computer's operating system and UI application Infotainment
|
| Maps |
These are the maps used by the navigation system
Infotainment
|
| Games |
Individual games used by Tesla Arcade Infotainment
|



