Skip to content

NeatoFx Target IR

Device Type:misc
Electrical Standard:global
Board:esp32
Difficulty:Comes with ESPhome (1/5)

NeatoFx Target IR

Overview

The NeatoFx Target IR is a self-contained WiFi-enabled infrared hit detector and prop controller. Wire it up, configure it from any browser, and it runs your prop — relay, servo, LEDs, and scoring — with no custom coding or external controller required.

Common applications include shooting galleries, haunted house props, escape room sequences, museum interactive exhibits, themed restaurant interactions, and scavenger hunt activations.

Each target ships pre-flashed and tested. Settings persist in flash across power cycles. Targets daisy-chain (up to 5 units per power supply) and support OTA updates individually or in batch via Home Assistant.

Key features:

  • 38 kHz IR receiver — ambient-light tolerant, up to 20 ft range; laser tag, NEC, and raw protocols
  • WS2811/WS2812 RGB LEDs — 6 face LEDs onboard + independent strip output (up to 100 LEDs)
  • SPDT relay — 2 A @ 120 VAC or 24 VDC (motors, solenoids, bells, air cannons, AC lighting)
  • GND switch — switch to ground, 20 V, 1.6 A
  • Servo output — PWM 50 Hz, 0–180°, 5 V @ 3 A auxiliary power
  • 3 debounced digital inputs + 1 analog input (0–3.3 V) for buttons, PIR, pressure pads
  • Browser-based configuration: point value, LED colors/animations, relay hold time, servo angles, IR sensitivity
  • Home Assistant native (ESPHome API) — discovered automatically within 60 seconds of joining WiFi
  • Standalone AP mode — no hub required; hotspot target-1 / neato123, web UI at 192.168.4.1
  • OTA firmware updates
  • ¼” camera thread mount with CCTV swivel mount included

Hardware

ComponentSpecification
MCUESP32 Mini D1 (replaceable)
Input voltage5–18 V DC, reverse-polarity protected
WiFi802.11 b/g/n 2.4 GHz, static IP supported
IR receiver38 kHz, up to 20 ft range
RelaySPDT, 2 A @ 120 VAC or 24 VDC (GPIO-23)
GND switchSwitch to ground, 20 V, 1.6 A (GPIO-33)
LED stripsWS2811/WS2812 — 6 face LEDs + up to 100 on strip output
ServoPWM 50 Hz, 0–180°, 5 V @ 3 A aux
Digital inputs3 × debounced, 3.3 V logic
Analog input1 × 0–3.3 V
5 V auxiliary2 × 5 V @ 3 A
Mounting¼” camera thread + CCTV swivel mount
Daisy-chainUp to 5 units per power supply

Hardware revisions

  • Rev 1.x — original design, single LED strip
  • Rev 3.x — current production; dual LED strips, servo, auxiliary power rail, expanded GPIO

GPIO Pinout (Rev 3.x)

GPIOFunction
GPIO5Face LED strip — WS2812 (6 onboard LEDs)
GPIO22External WS2811/WS2812 LED strip signal (up to 100 LEDs)
GPIO19IR receiver (38 kHz)
GPIO23Internal relay — SPDT, 2 A @ 24 VDC / 120 VAC
GPIO33Switch to ground — 20 V, 1.6 A
GPIO4Servo signal — PWM 50 Hz
GPIO265 V, 3 A auxiliary power output (servo connector power)
GPIO18External trigger input (TRIGGER net)
GPIO25General IO
GPIO16General IO
GPIO17General IO
GPIO34Analog input (0–3.3 V)
GPIO1RS232 TX
GPIO3RS232 RX

PCB top — ESP32 module, servo connector, power LEDs

Relay and daisy-chain power connections

Servo, 5V aux, WS2811 LED strip, and GND switch connectors

GPIO expansion connector — general IO, RS232, analog input

Quick Start

  1. Power on — target broadcasts WiFi hotspot target-1 (password: neato123)
  2. Connect phone or laptop to the hotspot — captive portal opens automatically
  3. Select your venue WiFi network and enter credentials
  4. Home Assistant discovers the device within 60 seconds
  5. Open the web UI at the device IP to adjust point value, LED colors, relay timing, and more

For standalone operation (no hub), skip steps 3–4. Access the web UI at 192.168.4.1 while connected to the hotspot.

Configuration

substitutions:
id: "1"
name: target-${id}
friendly_name: "NeatoFx Target ${id}"
packages:
board: github://CodeMakesItGo/NeatoFx_Public/Targets/NeatoTargetIR/boards/rev3.yaml@main
ir_receiver: github://CodeMakesItGo/NeatoFx_Public/Targets/NeatoTargetIR/protocols/ir_nec.yaml@main
config: github://CodeMakesItGo/NeatoFx_Public/Targets/NeatoTargetIR/configs/home_assistant.yaml@main

For a fully networked install with Home Assistant, IR protocol selection, servo, and FPP support, import the complete configuration:

The current firmware configuration is fetched live from the upstream repository:

# Loading https://github.com/CodeMakesItGo/NeatoFx_Public/blob/main/Targets/NeatoTargetIR/main.yaml…

Firmware builds

BuildIR protocolNetworking
Standard (main.yaml, networked mode)NEC + laser tagJoins WiFi, Home Assistant API
Standalone (configs/standalone.yaml)NEC + laser tagAP hotspot only, no hub required

IR protocols (selectable)

ProtocolFileUse case
Laser Tagprotocols/ir_laser_tag.yamlMulti-player laser tag guns (recommended)
NECprotocols/ir_nec.yamlStandard TV remotes (testing)
Rawprotocols/ir_raw.yamlProtocol analysis / development