smart-projector-remote
PublicLoading…
Smart Projector Remote
This project transforms your regular projector into a smart home device, enabling voice control and automation through Apple's HomeKit ecosystem.
Overview
An ESP32-based device that can control projectors via infrared signals and integrates with Apple HomeKit. It allows you to control your projector using Siri voice commands, the Home app, or enable your projector to be added to scenes like "Movie time" or "Bed Time".
Features
- Custom PCB: Professional-grade circuit board with built-in IR LED
- IR Remote Control: Sends NEC protocol IR commands to your projector
- 3D Printed Case: Custom enclosure with laser-cut acrylic top
- Power Management: Handles projector power on/off with automatic warm-up delays
- HomeKit Integration: Control your projector with Siri voice commands
- Smart Home Scenes: Integrate with other HomeKit devices for automated experiences
Project Gallery
1. Early Prototype
Breadboard prototype showing initial testing setup
2. PCB Design
3D rendering of the PCB design
3. Manufactured PCBs
Empty from top view (left), empty from bottom view (middle), partly assembled with external IR LED for testing (right)
4. Case Design
3D rendering of the case design
5. Assembled Device
Fully assembled device in its custom case
Project Structure
smart-projector-remote/
├── board/ # PCB design files
│ ├── bom/ # Bill of Materials
│ ├── fab/ # Manufacturing files
│ ├── libs/ # Custom component libraries
│ └── src/ # KiCad source files
├── case/ # 3D case design files
├── firmware/ # ESP32 firmware
│ ├── src/ # Source code
│ └── platformio.ini # PlatformIO configuration
├── images/ # Project photos
└── README.md # This file
Hardware
Components
- ESP32-WROOM-32E - Main microcontroller
- SFH 4045N - IR LED for sending commands
- BD33IC0MEFJ-CE2 - 3.3V voltage regulator
- CP2102N-A01-GQFN24 - USB-to-UART bridge for programming and communication
- USB-C connector - Power and programming interface
- Custom PCB - Designed in KiCad
Note: A complete list of all components can be found in
board/bom/smart-projector-remote-bom.csv
Assembly
- Manufacturing files can be found in
board/fab/1.0.0/ - Use the stencil for accurate component placement
- Follow the BOM in
board/bom/smart-projector-remote-bom.csv - Solder components using reflow oven, hot air station, or hand soldering with fine tip iron
Case Design
Overview
- Bottom: 3D printed with threaded inserts and rubber feet
- Top: Laser-cut acrylic
- Assembly: 4 screws hold everything together
- Design: Created in OnShape
Assembly
- 3D print the bottom case from
case/case-bottom.step - Install threaded inserts in the bottom case
- Add rubber feet to the bottom case
- Laser cut the acrylic top from
case/case-top.dxf - Drill countersink holes in the acrylic top as shown in the drawing
case/case-top-drawing.pdf - Assemble: bottom case, PCB upside down, acrylic top, then secure with 4 screws
Software
Firmware
- Platform: PlatformIO with Arduino framework
- HomeKit Integration: HomeSpan library
- IR Communication: IRremote library
- Target Board: ESP32 Feather
Prerequisites
- VSCode with PlatformIO extension
- KiCad (for PCB modifications)
- OnShape or any other 3D CAD software (for case modifications)
- 3D printer and laser cutter (for case fabrication)
Building the Firmware
- Clone this repository
- Open the
firmware/folder in PlatformIO - Build and upload to your ESP32:
pio run --target upload
Configuration & Setup
IR Commands
The firmware includes pre-configured NEC IR codes for a TOPTRO X1 projector:
- Power on/off
- Navigation (up, down, left, right, OK, back)
- Source switching
Note: Current firmware only uses power on/off, source switching, and OK commands. Other commands are included for future functionality.
WiFi Configuration
- After uploading the firmware, power cycle the device
- Open the serial monitor:
pio run -t monitor - The device will start and show
*** WIFI CREDENTIALS DATA NOT FOUND. YOU MAY CONFIGURE BY TYPING 'W <RETURN>'. - Type
Wand press Enter to enter WiFi configuration mode - The device will scan for available networks and display a numbered list
- Type the number corresponding to your WiFi network and press Enter
- Enter your WiFi password when prompted
- The device will connect to your network and show
WiFi Connected!with IP address - The device will start the HAP server and show
DEVICE NOT YET PAIRED -- PLEASE PAIR WITH HOMEKIT APP
HomeKit Pairing
- Open the Home app on your iPhone/iPad
- Tap the "+" button to add a new accessory
- Select "Add Accessory" → "More options..."
- Look for "HomeSpan Television" in the list
- Enter the pairing code:
4663-7726(standard HomeSpan code) - The projector will appear as a "Television" device
Note: Currently only power on (with auto switching to HDMI 1) and power off functionality is supported.
Customization
Note: The project is configured for a TOPTRO X1 projector.
The firmware can be easily adapted for other projectors by updating the IR command codes:
- Measure IR commands from your projector's remote
- Update the command constants in
firmware/src/main.cpp - Adjust warm-up timing if needed
Usage Examples
Voice Commands
- "Hey Siri, turn on the Projector"
- "Hey Siri, turn off the Projector"
HomeKit Scenes
Create scenes like "Movie Time":
- Turn on Projector
- Adjust lighting in living room:
- Turn off Lamp 1
- Set Lamp 2 to warm white at 10% brightness
Or "Bed Time":
- Turn off Projector
- Turn off Lamp 1 and Lamp 2
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- KiCad - PCB design software
- OnShape - 3D CAD design software
- HomeSpan - HomeKit integration library
- IRremote - IR communication library
- PlatformIO - Embedded development platform
Author
Bence Háromi - 2025
No comments yet. Be the first to ask about this board.