Saturday Nite Fever or RTTTL heating up

Felt very cold today. ESP32 BMP280 temp telling me room was fine. Thought I was coming down with a virus and even checked my temperature.
Turns out my passive 3 pin buzzer has started heating up the case by 2 °C, in which the BMP sensor sits in. Low background clicking. Still able to play normal RTTTL sounds when service called. Updated the ESPhome to latest version after about 4 months on older version yesterday.

    - service: play_rtttl
        song_str: string 
            rtttl: !lambda 'return song_str;'

  - platform: ledc
    pin: GPIO19
    id: rtttl_out
    inverted: True
  output: rtttl_out

Call the service in automations

  - service: esphome.backroom_play_rtttl
      song_str: >-

When breadboarding the RTTTL last year found it heated up if just left sitting along with the clicking. Fixed that by setting the output to inverted: True. Have disconnected the leads to the buzzer for now and Temp sensor readings dropped back to normal, and paracetamol put back in the medicine cabinet.

Any ideas? Worse comes to worst I’ll ask ChatGPT. :cold_sweat:


I had a similar issue and got it within 1degree by calibration. Which is close enough for me.

So you could put another temp sensor next to it (which you are confident is accurate) and let them both sit for 24hrs.

Then plot them both on the same axis and check what kind of calibration works best (simple offset, multiplier etc.). Grafana is handy for that as you can apply arithmetic dynamically/on the fly and eyeball best fit.

Edit: This is assuming you want to fix the temp not the rttl lol…

1 Like

Thanks for the suggestion. Yes, I have had previous problems with the ESP itself throwing off the temp sensor so I have isolated it as far away as possible in the case with fireproof insulation separating them. There will always be some heat creep. So there was already was 1.5 °C temp offset needed. It was frustrating trying to calibrate using various methods. Turning down wifi output_power: 12dB reduces power I think by 80mw. Had a calibrated sensor sitting next to the offending sensor for few hours yesterday. I think we approach these problems in a similar manner.

I have other temp sensors with ESP that I was able to use deep seep in between readings to keep the heat down. Can’t use it with this one as also use it for a physical momentary button and the RTTTL so it needs to remain awake.
I wonder if an ESP8266 using platform: esp8266_pwm rather than ESP32 LEDC might give a better result.
I could isolate the RTTTL buzzer with the ESP32 if can find no other solution. Waste heat just irritates me a bit. It didn’t heat up before when using output inverted so it is still most likely a setting. If can’t work it out will open an issue on Github.

1 Like

I guess you could try another buzzer too if you get stuck?

I use these cheap ones for similar projects and have never noticed heat issues (although I’ve never paid close attention). They seem to work ok.

Good luck in finding a proper solution though.

AU $1.28 5%OFF | 10pcs 9042 Integrated Passive Buzzer 16 ohm 16Ω AC 3V 3.3V 9*4.2mm 9x4.2mm Mini Piezo Buzzers Speaker DIY Electronic

What I have tried this evening is to add zero means zero.

  - platform: ledc
    pin: GPIO19
    id: rtttl_out
    inverted: True
    zero_means_zero: True

When I restarted the unit it was clicking. I tested the RTTTL buzzer once and after it played the clicking stopped. So far no heating up. Perhaps then just after device is powered I need to send a quick blast though the Buzzer.

1 Like