Skip to the content
2 layersEchoIR, the printed circuit board in 3D

IR hub, with both an IR receiver and a handful of transmitters, which can control my IR appliances, like the AC, fan, and TV, with my phone and over the internet

Copper layers
2
Thickness
1.6 mm
Parts
23
Nets
41
Pads
86
Tracks, vias
65, 6
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
16 Oct 2026
Updated
16 Oct 2026

Overview

EchoIR is an open-source printed circuit board by bunnypranav, from the bunnypranav/echoIR repository on GitHub. It is a 2-layer board with 23 parts on 41 nets, routed with 65 tracks and 6 vias.

It is built around the AO3400A and TSOP38238. Its parts include 6 resistors, 5 capacitors, 3 diodes, 1 transistor and 1 connector. It belongs with the RP2040 boards of this library.

Main components

2

README

README.md

EchoIR

image image

This is an IR hub, with both an IR receiver and a handful of transmitters, which can control my IR appliances, like the AC, fan, and TV, with my phone and over the internet. It wouldn't replace the remotes, but it could learn their signals and replay them whenever I want from my phone.

Schematic

Made in KiCad

On the left side is the USB-C connector, going into the polyfuse, then into the +5V rail. The three IR LEDs each have their own 33-ohm resistor and connect from +5V to the IRLEDNODE. When the MOSFET turns on, current flows through all three LEDs to ground. The TSOP38238 receiver runs from +3.3V, which comes from the Pico's internal regulator. There is a 100nF capacitor and a 4.7uF capacitor close to it, because IR receivers are sensitive to noise. The button connected to GPIO 14 controls the "record" mode, with its status led just being the inbuilt Pi led at GPIO25.

page_1

PCB

Made in KiCad pcb pcb2

Firmware

Written in CircuitPython

The Pico 2W connects to WiFi on boot and starts a HTTP server that exposes a simple webhook endpoint. When I press the button, it enters a short recording window and captures the raw pulse timings from the TSOP38238, then stores them in memory with an incrementing ID number. The IR LEDs are driven from GPIO5 using a 38kHz PWM carrier, and when a POST request is sent to /play with a JSON body like {"id": 3}, the Pico looks up that stored signal and replays it through the three IR transmitters. Everything runs locally on the Pico, so another computer on the same network can trigger appliances just by sending a simple HTTP request. This can also be easily plugged in to home automation services, or be modified to worth with MQTT, something I plan to do in the future.

CAD Base

Designed in Fusion 360

Created a basic CAD base for the PCB to sit on. I did not create any top cover, since the LEDs cannot shine through solid PLA plastic, neither can the TSOP recieve IR pulses. This is just to prevent the bottom pins from scratching the surface I put this on. image image

Parts

23
QtyValueFootprintReferences
3100nFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC2, C3, C5
333ΩResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR3, R4, R5
3LEDLED_THT:LED_D5.0mmD1, D2, D3
3LOGOLOGOG***, G***, G***
2100ΩResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R6
110kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR2
110µFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC1
14.7µFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC4
1AO3400APackage_TO_SOT_SMD:SOT-23Q1
1PolyfuseRXEF050:FUS_RXEF050_TYCO_TYCF1
1RaspberryPi_Pico_WModule:RaspberryPi_Pico_Common_THTA1
1SW_PushButton_Switch_THT:SW_PUSH_6mmSW1
1TSOP38238TSOP38238:XDCR_TSOP38238A2
1USB_C_Receptacle_PowerOnly_6PUSBC:USB-C-TH_TYPE-C-31-M-33J1

Similar boards

  • 2 layers80.5 × 53.8 mmBlynk, the printed circuit board in 3D

    Blynk

    DynamicWhiteHat/Blynk

    A feature-rich LED controller

    110 parts
  • 2 layers52 × 40 mmM5 ir blaster, the printed circuit board in 3D

    M5 ir blaster

    haya1010/ir-blaster-kicad

    KiCad hardware designs and JLCPCB manufacturing files for the IR blaster project

    23 parts
  • 2 layers59.9 × 49.3 mmTvbgone kit v2.0, the printed circuit board in 3D

    Tvbgone kit v2.0

    maltman23/TV-B-Gone-kit_V2

    TV-B-Gone kit V2

    25 parts93
  • 2 layers121 × 70.5 mmJoshua, the printed circuit board in 3D

    Joshua

    thepolymatt/joshua

    The Repository for "Joshua" the audio/OSD mod for CRT TVs

    58 parts12
  • 2 layers181.4 × 179.8 mmRubber duckey, the printed circuit board in 3D

    Rubber duckey

    ajvizganapathy-pixel/FlipperZero-DIY-STM32WB55-NucleusDark

    DIY Flipper Zero clone using STM32WB55CGU6 — KiCad PCB, Momentum firmware, 200+ apps, BadUSB scripts, wiring diagrams

    37 parts10
  • 2 layers50.8 × 50.8 mmDC2026 LASIR, the printed circuit board in 3D

    DC2026 LASIR

    CmdrZin/chips_avr_examples

    AVR assembly and C code for robotics and other projects.

    38 parts6MIT
  • 2 layers76.8 × 63 mmFlopper one, the printed circuit board in 3D

    Flopper one

    JBlitzar/flopper-one

    esp knockoff flipper

    14 parts5GPL-3.0
  • 2 layersCoinPCB, the printed circuit board in 3D

    CoinPCB

    keener2u/CoinPCB

    Simple ESP8266 breakout board shaped like a challenge coin. Built to be a hackable extendable board for IOT projects and given out for recognition and to spark staff's imagination.

    11 parts4

Questions

What parts does the EchoIR use?

23 parts, built around the AO3400A and TSOP38238. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the EchoIR KiCad files?

From the bunnypranav/echoIR repository on GitHub, at the commit this page was made from: the board is PCB/echoIR.kicad_pcb and its schematic PCB/echoIR.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the EchoIR design in my own project?

Its repository states no licence, so its author keeps all rights: ask bunnypranav before reusing the design.