For an ESP32-driven high-current power stage using a Vishay KTY84-130 PTC (Positive Temperature Coefficient) sensor, the maximum safe PTC sensor temperature to read at the heatsink is 105°C. This specific threshold corresponds to a 125°C silicon junction temperature inside a standard TO-220 MOSFET, keeping you safely below the 175°C catastrophic failure limit while accounting for thermal gradients. If your PTC reads higher than 105°C, your thermal management is undersized, and your firmware must throttle the PWM duty cycle immediately.
Designing a reliable embedded motor controller or high-current DC load switch isn't just about picking a MOSFET with a low Rds(on). It requires rigorous thermal path math, interpreting the PTC sensor temperature derating curve, and matching those numbers to a physical heatsink. Here is the exact decision-forward framework to size your thermal management.
Thermal Path Math: Junction to Ambient with Rθ Values
To know what the PTC sensor temperature should be, we first have to calculate the thermal resistance from the silicon junction to the ambient air. We use the standard thermal resistance equation:
T_J = T_A + P_D × (Rθ_JC + Rθ_CS + Rθ_SA)
- T_J: Junction temperature (Target: 125°C for long-term reliability)
- T_A: Ambient temperature inside the enclosure (Assume 50°C for a sealed box in a warm environment)
- P_D: Power dissipation (Let's use 12W for a heavily loaded IRF3205 MOSFET)
- Rθ_JC: Junction-to-case resistance (0.75 °C/W for the IRF3205 TO-220 package)
- Rθ_CS: Case-to-sink resistance (0.5 °C/W using a Bergquist Sil-Pad 2000 thermal interface material)
- Rθ_SA: Sink-to-ambient resistance (The value we need to solve for)
Plugging in our target numbers:
125 = 50 + 12 × (0.75 + 0.5 + Rθ_SA)
75 = 12 × (1.25 + Rθ_SA)
6.25 = 1.25 + Rθ_SA
Rθ_SA = 5.0 °C/W
T_S = T_A + P_D × Rθ_SA, which equals 50 + (12 × 5.0) = 110°C. We set our firmware trip point at 105°C to provide a 5°C safety margin for sensor placement tolerances.
Interpreting the PTC Sensor Temperature Derating Curve
The KTY84-130 is a linear PTC thermistor, meaning its resistance increases predictably with temperature—roughly 0.7% to 0.8% per °C. At 100°C, it sits at roughly 1000Ω. However, as explained in semiconductor theory, you must interpret this curve in the context of your ESP32's ADC and the power stage's derating requirements.
When designing your firmware's thermal derating curve, map the PTC resistance to a voltage divider (e.g., a 1kΩ pull-up to the ESP32's 3.3V rail). As the PTC sensor temperature rises, the voltage at the GPIO pin drops.
| PTC Temp (°C) | Approx. Resistance (Ω) | Voltage at ESP32 GPIO (V) | Firmware Action (Derating) |
|---|---|---|---|
| 25 (Ambient) | 500 | 2.20V | 100% PWM Duty Cycle |
| 60 (Warm) | 730 | 1.91V | 100% PWM Duty Cycle |
| 85 (Hot) | 900 | 1.74V | Reduce PWM to 80% |
| 105 (Trip) | 1030 | 1.62V | Reduce PWM to 40% (Throttle) |
| 115 (Critical) | 1100 | 1.56V | 0% PWM (Hard Shutdown) |
analogReadMilliVolts() function in the ESP32 Arduino core.
Heatsink Selection and Airflow Enclosure Changes
We need a heatsink with an Rθ_SA of 5.0 °C/W or lower. Looking at standard extruded aluminum profiles for TO-220 packages, the Aavid 577102B00000G is a prime candidate. In natural convection (still air inside a sealed enclosure), its Rθ_SA is roughly 7.5 °C/W. This is too high; it would push our junction temperature to 155°C, well into the danger zone.
This is where airflow and enclosure changes buy you thermal headroom. According to thermistor and thermal management guides, introducing forced air drastically alters the boundary layer of the heatsink fins. If you add a 40mm x 10mm 5V brushless fan (like the GDSTIME 4010) blowing at 1 m/s across the Aavid 577102B00000G, the Rθ_SA drops from 7.5 °C/W to roughly 3.8 °C/W.
Recalculating with forced air:
T_J = 50 + 12 × (0.75 + 0.5 + 3.8) = 50 + 12 × 5.05 = 110.6°C
At 110.6°C junction temperature, the PTC sensor temperature on the sink will read roughly 95°C. Your ESP32 will run the MOSFET at 100% PWM duty cycle indefinitely without ever triggering the 105°C thermal throttle.
Failure Signatures of Thermal Stress in Embedded Systems
How hot is too hot? The silicon might survive 175°C, but the rest of your embedded system will not. If you ignore the PTC sensor temperature and let the board run at 150°C+ junction temps, you will encounter specific failure signatures:
- Solder Joint Creep (120°C+): Standard SAC305 lead-free solder loses mechanical shear strength rapidly above 120°C. Repeated thermal cycling from 40°C to 140°C causes micro-cracking at the TO-220 lead joints, eventually leading to an open circuit or high-resistance arcing.
- Gate Oxide Degradation (150°C+): Prolonged exposure to extreme heat accelerates gate oxide breakdown. The MOSFET's threshold voltage (Vgs_th) will drift, causing the ESP32's 3.3V logic high to fail to fully enhance the gate, leading to a runaway thermal event.
- PTC Delamination (130°C+): If you use epoxy to mount the KTY84 sensor to the heatsink, standard cyanoacrylate or cheap thermal epoxies will glass-transition and delaminate. The PTC sensor temperature reading will suddenly lag behind the actual heatsink temperature, rendering your firmware protection useless.
Decision Tree: Sizing Your Thermal Management
Stop guessing. Use this decision path to finalize your BOM for any ESP32 power stage dissipating between 5W and 20W.
| Condition / Measurement | Required Action / BOM Pick |
|---|---|
| IF Calculated P_D is < 5W | THEN use a basic stamped clip heatsink (e.g., Aavid 577102B03300G). Natural convection is sufficient. Set PTC trip at 115°C. |
| IF Calculated P_D is 5W - 15W AND enclosure is sealed | THEN use Aavid 577102B00000G extruded sink + 40mm 5V fan. Set PTC trip at 105°C. |
| IF Calculated P_D is 5W - 15W AND enclosure is open/vented | THEN use Aavid 577102B00000G. Natural convection is acceptable IF ambient is < 35°C. Set PTC trip at 110°C. |
| IF Calculated P_D is > 15W | THEN abandon TO-220. Move to a D2PAK or DirectFET package on a 2oz copper PCB pour, and use a switching PTC (like Bourns MF-MSMF series) in series with the load for hardware-level trip. |
| DEFAULT RECOMMENDATION | For 90% of hobbyist ESP32 BLDC motor drivers (12W avg dissipation), buy the Aavid 577102B00000G, pair it with a GDSTIME 4010 5V fan, and hardcode your ESP32 PWM throttle to trigger exactly when the KTY84 ADC reads 1.62V (105°C). |
Thermal management is not an afterthought; it is the mathematical foundation of your power stage. By calculating your Rθ values, mapping the PTC sensor temperature curve to the ESP32's linear ADC range, and forcing airflow when natural convection fails, you guarantee that your embedded hardware survives the jobsite.






