Thermal Management
Heat is the invisible enemy of automotive electronics. A cockpit SoC dissipates 5–15W inside a sealed dashboard cavity with no fan. Thermal management determines whether your system runs at full speed or throttles to a crawl. AEC-Q100 grades define operating temperature ranges. TSENS monitors junction temperature. Understanding the thermal path — junction → TIM → heatsink → ambient — is what separates “my board works on the bench” from “my board works in a car parked in Phoenix.”
You’ve been there: bench demo flawless, every KPI green, VP already drafting the press release — then summer field trials turn the cluster into a slideshow and someone asks if you pushed a bad OTA. You didn’t. The die is just cooking behind a sun-baked dash. You can flash perfect images and tune every partition, but if the die can’t shed heat, Kryo cores drop frequency, Adreno frame rates collapse, and the cluster goes black. Thermal isn’t a hardware-team footnote — it’s a
Why Thermal Matters More in Automotive
Section titled “Why Thermal Matters More in Automotive”Phones have fans (sometimes), users hold them in open air, and throttling just means a slower scroll. Cars are different.
| Factor | Phone / Lab Bench | Automotive Cockpit |
|---|---|---|
| Cooling | Open air, user hand as heat sink | Sealed plastic housing, no fan |
| Ambient | ~25°C office, AC on | -40°C to +85°C cabin; dashboard sun load 80°C+ |
| Consequence of throttle | User waits 2 seconds | Cluster freezes at 70 mph |
| SoC junction (Tj) | Rarely hits trip points | Can reach 125°C under sustained GPU + camera load |
Mnemonic: “Phone throttles, user waits. Car throttles, driver panics.”
Cockpit SoCs (SA8155P, SA8295P) live behind the display stack — sandwiched between a sun-loaded dash surface and a PCB with limited airflow.
Think of the SoC as a stove burner in a sealed kitchen — except it’s noon in Phoenix, not a cooking-show set with overhead ventilation. The burner (die junction) heats a cast-iron plate (heat spreader / package lid). The plate sits on a countertop whose quality varies by factory shift (TIM + heatsink). The kitchen has one window cracked (enclosure vent slots, if ME remembered them). Block any step in that chain and you’re basically running a sauna at 70 mph. Mnemonic: “Junction heats, case spreads, ambient absorbs.”
Before you grep sysfs, know which temperature grade your BOM actually promises — silicon qualified for the wrong zone is a layout problem you can’t patch in software.
AEC-Q100 Temperature Grades
Section titled “AEC-Q100 Temperature Grades”Automotive silicon is qualified to AEC-Q100, which assigns temperature grades based on where the part lives in the vehicle. Your cockpit SoC BOM will cite a grade — verify it matches the mounting location.
| Grade | Ambient Range | Typical Location |
|---|---|---|
| Grade 0 | -40°C to +150°C | Under-hood, adjacent to engine/exhaust |
| Grade 1 | -40°C to +125°C | Under-hood, general powertrain ECUs |
| Grade 2 | -40°C to +105°C | Passenger compartment — cockpit SoCs live here |
| Grade 3 | -40°C to +85°C | Passenger compartment, less thermally harsh mounting |
| Grade 4 | 0°C to +70°C | Consumer / commercial — NOT for automotive |
Rule of thumb: If someone hands you a Grade 4 part for an IVI project, reject it before layout. Grade 2 is the default assumption for Qualcomm SA8155P/SA8295P cockpit designs.
Your pager goes off at 2:47 AM: “IVI throttling at 95°C on the bring-up bench — but the environmental chamber run at 85°C ambient passed clean.” The bench room is 25°C. You’re on-call. What explains the mismatch?
Reveal Answer
On the bench at 25°C, a bad TIM bond or blocked vent breaks the thermal path (Rcs + Rsa) — TSENS reads 95°C junction while room ambient looks fine because heat can’t escape the sealed housing. The 85°C chamber applies uniform ambient with airflow but doesn’t replicate sun-loaded dashboard heating or factory TIM defects. Use an IR camera on the heatsink and read /sys/class/thermal/thermal_zone* — don’t trust room temperature alone when junction is throttling.
Grades tell you what ambient the part survives; the thermal path tells you how fast heat actually leaves the die.
The Thermal Path
Section titled “The Thermal Path”Heat flows from where it’s generated (transistor junctions) to where it’s dumped (ambient air). Each interface adds thermal resistance (°C/W).
flowchart LR
TJ["Die Junction (Tj)<br/>Heat source"]
TIM["Thermal Interface Material<br/>TIM / paste / pad"]
HS["Heat Spreader + Heatsink<br/>Aluminum / copper"]
AMB["Ambient Air (Ta)<br/>Sealed enclosure"]
TJ -->|"Rjc"| TIM
TIM -->|"Rcs"| HS
HS -->|"Rsa"| AMB
Steady-state equation:
Tj = Ta + P × (Rjc + Rcs + Rsa)
Where P is power dissipation (watts), Ta is ambient temperature, and Rjc / Rcs / Rsa are junction-to-case, case-to-sink, and sink-to-ambient resistances.
| Resistance | What It Represents | Automotive Pain Point |
|---|---|---|
| Rjc | Die → package lid | Fixed by silicon vendor; you don’t tune this |
| Rcs | Package → heatsink | TIM quality — factory application, voids, dry-out |
| Rsa | Heatsink → ambient | Dominant term in sealed enclosures with poor airflow |
In a phone with vapor chamber and open air, Rsa is small. In a dashboard module with a plastic shroud and zero fan, Rsa dominates — which is why mechanical design matters as much as BSP tuning.
Resistance is the physics; TSENS is where the BSP turns physics into policy.
SoC Thermal Zones (TSENS)
Section titled “SoC Thermal Zones (TSENS)”Qualcomm cockpit SoCs embed multiple TSENS (temperature sensor) points across the die — not one reading for the whole chip.
| Zone | Typical Location | What Overheats It |
|---|---|---|
| CPU (Kryo) | Core cluster | Hypervisor load, AAOS app bursts |
| GPU (Adreno) | Graphics block | Cluster rendering, 3D nav, multi-display |
| Modem / compute | Modem subsystem | AMSS sustained data, RF heat |
| Memory controller | DDR interface | Bandwidth-heavy camera + GPU workloads |
| ISP / camera | Spectra pipeline | 4–6 camera streams, surround-view |
Mitigation Levels
Section titled “Mitigation Levels”The thermal driver escalates through trip points as temperature rises:
stateDiagram-v2
[*] --> Normal: Boot / idle
Normal --> Throttle: Trip point 1 exceeded
Throttle --> Normal: Temp drops below hysteresis
Throttle --> Critical: Trip point 2 exceeded
Critical --> Shutdown: Emergency cutoff
Shutdown --> [*]: Power cycle required
note right of Normal: Full freq / voltage
note right of Throttle: Reduce CPU/GPU clocks,<br/>lower display brightness policy
note right of Critical: Force shutdown to<br/>prevent silicon damage
Linux / Android Thermal Framework
Section titled “Linux / Android Thermal Framework”On AAOS, thermal policy lives in the kernel and vendor HAL:
/sys/class/thermal/thermal_zone*— one entry per zone;typenames the sensor,tempreports millidegrees Celsiustrip_point_*— temperature thresholds that trigger mitigationcooling_device*— linked devices (CPU freq, GPU devfreq, display brightness) the framework throttles- Device tree —
thermal-zonesnode maps TSENS to trip points and cooling maps
QNX Thermal Monitoring
Section titled “QNX Thermal Monitoring”QNX doesn’t expose Android’s sysfs tree, but thermal data is still reachable:
pidin -F "%a %b %c %p"— process CPU; correlate with suspected throttle windows- Vendor thermal plugins / BSP utilities — OEM-specific; often read the same TSENS via SPMI
sysinfo— system load snapshot during thermal events- Screen / compositor logs — frame drops when GPU is throttled show up before CPU metrics move
When cluster FPS drops but top shows low CPU, check GPU thermal zone and devfreq governor state before rewriting application code.
“Bench testing proves thermal robustness.” That’s like claiming your winter coat works because you wore it indoors. Your bench sits in a 25°C office with open airflow around the bare board. The actual car has the SoC behind a display, in a sealed plastic housing, with sun load heating the dashboard to 80°C+. The delta between bench ambient and in-vehicle ambient can be 60°C. A design that idles at 55°C on the bench can sit at 105°C junction in a parked Arizona lot.
“Thermal warnings are just noise — ignore them and keep testing.” Sure — and smoke alarms are just ambiance until the kitchen catches fire. The SoC will progressively reduce CPU/GPU frequency to shed heat. UI frame rate drops from 60 fps to 20 fps. Touch latency spikes. If temperature keeps rising past the critical trip point, the SoC performs an emergency shutdown to prevent silicon damage. In a cockpit, that means cluster and infotainment go black while driving.
Trip points tell you when things hurt; TDP tells you how many watts you’re allowed to generate in the first place.
Thermal Design Power (TDP)
Section titled “Thermal Design Power (TDP)”TDP is the sustained power the thermal solution must handle — not peak burst, not idle.
| Platform | Typical TDP | Cooling Strategy |
|---|---|---|
| SA8155P | ~5–8W | Passive heatsink + TIM; sealed enclosure |
| SA8295P | ~10–15W | Larger spreader; premium designs add heat pipe / cold plate |
| Strategy | How It Works | Trade-off |
|---|---|---|
| Passive | Heatsink + conduction to enclosure chassis | Zero moving parts; depends on Rsa — hard in sealed dash |
| Active | Fan or blower (rare in cockpit) | Noise, dust, warranty failures — OEMs avoid |
| Heat pipe / cold plate | Moves heat to a remote sink or metal structure | Cost + mechanical complexity; common in premium multi-display platforms |
TDP budgeting crosses teams: camera team wants 4 ISP streams, HMI wants 3D cluster, telematics wants modem always-on. Sum the rails (Page 0.4) and compare to what the heatsink can reject at Grade 2 ambient + sun load.
Reading Thermal Data from the Bench
Find your zones:
# AAOS / adb shellfor z in /sys/class/thermal/thermal_zone*; do echo "$(cat $z/type): $(cat $z/temp) m°C"doneInterpret policy:
cat /sys/class/thermal/thermal_zone0/policy # step_wise, power_allocator, etc.cat /sys/class/thermal/thermal_zone0/trip_point_0_tempcat /sys/class/thermal/thermal_zone0/trip_point_0_type # passive, hot, criticalDevice tree (BSP source): search for thermal-zones and cooling-maps — trip points bind TSENS readings to CPU freq caps and GPU devfreq limits.
IR camera vs TSENS: An IR gun measures package surface temperature — always lower than junction (Tj). TSENS reads die-adjacent sensors; trust TSENS for trip-point logic, use IR to find TIM voids and airflow dead zones.
Provoke throttling for test: Run GPU stress (GL benchmark loop) plus sustained camera preview on all ports. Log thermal_zone* temps every second. You want to see the Normal → Throttle transition and confirm cooling maps respond before summer field trials do it for you.
“Works in spring, fails in summer” is a thermal pattern — not a mystery regression. Before blaming a software release for performance drops, always check thermal_zone temps and correlate with ambient / sun-load conditions.
Symptom mapping:
| Symptom | Check First |
|---|---|
| UI jank after 15–30 min parked | GPU / CPU thermal zone temps |
| Camera freeze under surround-view | ISP thermal zone + GPU load |
| Random reboot, no crash dump | Critical thermal shutdown trip |
| Fine in winter, bad in summer | Ambient + enclosure sun load |
War story: An OEM launched in Q1 (winter). Summer came, and the surround-view camera stream would freeze after 20 minutes in parked cars. Logs showed no software fault — frame drops coincided with ISP thermal zone hitting throttle trip. Root cause: heatsink compound (TIM) applied unevenly at factory, creating a 15°C hot spot on the ISP zone. Fix: tighter TIM application spec and inline thermal imaging at production — zero BSP changes required.
When performance “regresses” seasonally, ask “what’s the junction temperature?” before opening a JIRA on the app team.
Page 0.4 (Power Architecture): Power dissipation IS heat generation. Every rail you probe — P = V × I — adds to the watt count the thermal path must reject. Page 5.1 (Platform Overview): AEC-Q100 qualification includes thermal stress and temperature cycling — the grade on your BOM is earned, not assumed. Page 9.7 (Validation): Environmental chambers (-40°C to +105°C) verify thermal behavior before SOP. Page 10.1 (Debug Bench): Bench thermal ≠ vehicle thermal — always replicate sealed-enclosure conditions before signing off.
The short version
Section titled “The short version”- Automotive cockpits are sealed, sun-loaded, fanless — Rsa (sink-to-ambient) dominates the thermal chain.
- AEC-Q100 Grade 2 (-40°C to +105°C) is the default for passenger-compartment cockpit SoCs.
- TSENS zones drive throttle policy; frame drops with low CPU usage mean GPU/ISP thermal, not app bugs.
- Ignore thermal warnings → progressive throttle → emergency shutdown → black cluster while driving.
- Check
thermal_zonetemps before every seasonal performance investigation.
Check Your Understanding
1. Which AEC-Q100 grade applies to cockpit SoCs in the passenger compartment?
Recall2. SoC is at 98°C and UI frame rate drops to 15 fps. No software changes were made. Most likely cause?
Applied3. In the thermal resistance chain (Rjc + Rcs + Rsa), which gap typically contributes the most resistance in automotive?
Applied4. Cluster rendering shows low CPU usage in `top` but visible frame drops after 20 minutes parked in sun. Which diagnostic step comes first?
Recall5. An OEM launches in Q1 with no thermal issues. In summer, surround-view freezes after 20 minutes in parked cars. Logs show ISP thermal zone hitting trip point 1. Root cause investigation finds uneven TIM application at factory. Why did winter testing miss this?
Applied6. Under simultaneous 4K cluster rendering, navigation GPU load, and four camera ISP streams, the display tears despite low CPU utilization. Thermal zones are normal. Which cross-domain explanation fits?
SynthesisConnects to: Module 0.1 — Anatomy of an SoC · Module 6 — Three Operating Systems
- AEC-Q100 — Failure Mechanism Based Stress Test Qualification for Integrated Circuits — Defines temperature grades (Grade 0–4) and stress tests that automotive SoCs like SA8155P must pass for passenger-compartment mounting.
- JEDEC JESD51 Series — Thermal Characterization of Integrated Circuits — Industry standards for measuring junction-to-case thermal resistance (Rjc) and package thermal parameters.
- JEDEC JESD22 — Reliability Test Methods for Packaged Devices — Environmental stress methods including temperature cycling relevant to automotive thermal validation.
- ISO 16750-4 — Road vehicles — Environmental conditions and testing — Climatic loads — Vehicle-level temperature and humidity test conditions that thermal designs must survive beyond bench ambient.
- Linux Kernel Thermal Framework Documentation — Reference for thermal_zone, trip points, and cooling_device sysfs nodes used on AAOS for throttle policy debugging.
- Snapdragon Cockpit Platform — Qualcomm cockpit platform hub with product briefs listing TDP budgets, junction temperature limits, and cooling requirements for SA8155P/SA8295P designs.
- Fundamentals of Heat and Mass Transfer (Incropera et al., Wiley) — Standard heat-transfer textbook covering conduction paths, thermal resistance chains, and steady-state Tj calculations from this page.