ESP32 Driving Servos Gets Hot and Burns Up

I have a very simple project that uses an ESP32 to drive 5 servos in an HVAC setup. It works like this:

  1. Center Vent (Open or Closed)
  2. FootWell Vent (Open or Closed)
  3. Defrost Vent (Open or Closed)

I have a 12 volt to 5 volt buck powering both the servos and the ESP32. 12 volt car battery supplies the buck. Servos are wired directly to the ESP32. Grounds and power are common to the buck outputs (ESP32 and servos).

It works awesome - for a little while. :slight_smile: It will work great for a few minutes and then the ESP32 starts to get hot and eventually it shuts down. I have tried three ESP32s now and all have the same death certificate.

What could I be have wired wrong and/or programmed wrong?

#include <ESP32Servo.h>

const int buttonwindshield = 2;
//const int buttonfloor = 3;
Servo centerventServo;
Servo defrostServo;
Servo footwellServo;
int pos = 90;

void setup() {

  pinMode(buttonwindshield, INPUT_PULLUP);
  //pinMode(buttonfloor, INPUT_PULLUP);
  centerventServo.attach(5);
  footwellServo.attach(6);
  defrostServo.attach(7);
  Serial.begin(9600);
}

void loop() {

  if (digitalRead(buttonwindshield) == LOW) {
    centerventServo.write(0);
    footwellServo.write(90);
    defrostServo.write(0);
    delay(1000);
  }

  if (digitalRead(buttonwindshield) == HIGH)  {
    centerventServo.write(90);
    footwellServo.write(0);
    defrostServo.write(90);
    delay(1000);
  }
}

What type of servos do you use?

Sounds good. Simple wiring scheme would confirm it.
Did you measure the voltage?
Normal hobby servos?
Anything else connected to Esp?

9g servos. I have tried several brands to find the most reliable. Freewing is what I have settled on for now.

I have double checked the voltage coming into the buck (always 12 to 14 volts). I have checked the buck output and it is right on 5 volts. Yes, normal 9g servos (Freewing is what I am using now). Nothing else is connected to the ESP32.

I am not using a pullup resistor, FWIW.

One question, could having the servo in a bit of a bind cause an overheating issue? Sometimes the flapper in the HVAC valve doesn't want to close all the way and this puts the servo into a bind. It's very very minimal, but I can hear the servo chattering sometimes.

What buck converter?

For the buck powering the servo yes. Could that cause a voltage regulation failure, I don't know. What are your buck specs?

Yes, that's called motor stall - undesirable.

This is the buck that I am using.

But this wouldn't cause the ESP32 to overheat, right?

Correct - no, stalling shouldn't make the NanoESP32 run hot.

The '6V' goes to NanoESP32's VIN ?
VIN can take > 12V. It has its own DC-DC converter (not an LDO).

VideoProject1-ezgif.com-video-to-gif-converter

The HVAC valve.

I have tried all three ways.

  1. 12volt to VIN - burned out.
  2. 5 volt to VIN - burned out.
  3. 5 volt to VBUS - burned out.

It should be super simple, but for some reason they ESP gets super hot and dies.

Also, when I noticed this on an early version of the valve, I tuned the servo to go to where the hang up was so the stall was minimal, I think. Later versions of the valve don't have the hangup and work freely now.

Even without the lid on the box ?
The stall is bad for the motor in the servo - and its Vsource isn't from the 'ESP'.
Something else.

I can take the lid off the box and it still happened (didn't have the box early on - just open air).

Yeah, I read a bit about motor stall and corrected that. It's not an issue now.

I am also running two servos off one pin. Would this be an issue? Two pins running two servos each and one pin running one servo.

I don't think so.
If they're disconnected does it still run hot?

Uhm, I donโ€™t know. I will try it and report back.

I see you did some soldering on the board.
Are you sure you did not cause a short?
Even tiny spats of solder can cause a short...
Or maybe a short in your connector?

Hi, @joesmallwood

Can you please post a copy of your circuit, a picture of a hand drawn circuit in jpg, png?
Hand drawn and photographed is perfectly acceptable.
Please include ALL hardware, power supplies, component names and pin labels.

Can you post some images of your project?
So we can see your component layout.

What exactly gets hot and is destroyed on the ESP32, please be specific, a picture with the part highlighted would be good.

Thanks.. Tom.. :smiley: :+1: :coffee: :australia: