High Power IR Blaster

 

ESP8266 high-power IR blaster

Prototype(with fake MOSFET)

 

ESP8266 high-power IR blaster

Correctly rebuilt with FQP30N06L

 

Overview

This is a fairly easy build, high power IR blaster driven by an ESP8266, but any microcontroller could drive it.
It controls our TV, surround sound amp and a stubborn globe light from the other side of the lounge. The trick was a MOSFET driver. Before this was simply just a couple of IR led's and a resistor directly connected to an ESP pin. It worked ok, but didn't have enough range to operate everything.


Hardware

  • Any microcontroller. ESP was used here for its compatibility with Home Assistant
  • IR emitter LEDs: 5 mm 940 nm (narrow beam). The more the merrier, but the current soon starts clocking up. Around 180mA per LED using this circuit at 5v
  • MOSFET: logic friendly FQP30N06L is recommended and works really well. These are also used in 12v RGB lighting (yet to blog)
    I'm using a very questionable chineese IRF1404 which switches the load very well, but its meant to switch at around 5v, not 3.3v. I don't recommend this route.
  • Resistors: 18–22 Ω, ≥1 W (per LED branch when on 5 V), sized for ~160–200 mA peak.
  • Power: 9-12v. 5 V rail made from a 7805. Illiminate the 5v regulator if you want to run stright froma 5v supply (see note below)

Circuit diagram

  • Low‑side switch: LED anodes to 5 V via their own resistors; LED cathodes to MOSFET drain; MOSFET source to GND.
  • Gate: ESP GPIO → 100 Ω series to gate; 10 kΩ gate‑to‑GND pulldown.
  • Aim a few LEDs directly at each device.
    I haven't tried this, but its recommended to add short black heat shrink tubes to narrow beam for long reach. The fact that it worked for me without, well I just skipped this.
ESP8266 high-power IR blaster

If you want to run this from a 5v power source, remove U1 5v regulator and connect straight to the 5V rail. I recommend you still include C1 and C2 capacitors though.

ESPHome example - test code

IR transmitter test script. Add this to an ESP device. Choose your GPIO pin. GPIO5 was used here. Once flashed, watch the lights using the camera on your mobile phone whilst pressing the IR test button in Home Assistant.


# ----------------------------- IR transmitter -----------------------------
remote_transmitter:
  pin:
    number: D1     # GPIO5
  carrier_duty_percent: 50%

button:
  - platform: template
    name: "IR test button"
    on_press:
      - remote_transmitter.transmit_sony:
          data: 0x0000540A
          nbits: 15
          repeat:
            times: 5
            wait_time: 45ms

If your seeing the IR LED's flash, its working correctly. If the LED's are lit all the time, immediately disconnect the power. The LED's are being driven hard and will be damaged if they are on all the time.
In normal operation, the LED's are very briefly driven, even then they are only illuminated half the time because of carrier duty.


Notes

  • Carrier: 38 kHz works for most devices. Sony needs ~40 khz.
  • Peak current: ~160–200 mA per LED (pulsed) is fine with correct resistors and low duty.
  • Power: 7805 is okay for bursty loads (watch average current). A small buck runs cool and gives margin.
  • Coverage: More LEDs aimed at different zones beat one big beam.

← Back to Projects