Skip to content

AllLiveSupport/IR-Remote-Copy

Repository files navigation

📡 IR Universal Remote Cloner

A powerful desktop application for capturing, managing, and cloning infrared remote control signals. Built with Python and Arduino, this tool allows you to digitize your physical remote controls and recreate them with ease.

✨ Features

  • 📥 IR Signal Capture: Record infrared signals from any remote control using Arduino
  • 💾 Database Management: Store and organize your remote controls in a local SQLite database
  • 🔄 Format Conversion: Convert between multiple IR formats (RAW, NEC, RC5, Pronto Hex, LIRC)
  • 📤 Export Options: Export signals in JSON, LIRC, and Pronto Hex formats
  • 🌐 LIRC Integration: Download remote configurations from the LIRC database
  • 🔨 Batch Operations: Process multiple remotes and signals efficiently
  • 🖥️ User-Friendly GUI: Intuitive PyQt6-based interface

🛠️ Hardware Requirements

  • Arduino Board (Uno, Nano, Mega, or compatible)
  • IR Receiver Module (e.g., TSOP38238, VS1838B)
  • IR LED (for signal transmission)
  • Resistors and basic components (see hardware setup guide)

📋 Prerequisites

  • Python 3.8 or higher
  • Arduino IDE (for uploading firmware)
  • USB cable for Arduino connection

🚀 Quick Start

1. Hardware Setup

  1. Upload the Arduino sketch from arduino/ir_universal_cloner/ to your Arduino board
  2. Connect the IR receiver and LED according to the wiring diagram in docs/SETUP.md
  3. Connect Arduino to your computer via USB

2. Software Installation

# Clone the repository
git clone https://github.com/yourusername/ir-remote-cloner.git
cd ir-remote-cloner

# Install Python dependencies
cd python_app
pip install -r requirements.txt

# Run the application
python main.py

For detailed setup instructions, see QUICKSTART.md

📖 Documentation

🏗️ Project Structure

ir-remote-cloner/
├── arduino/                    # Arduino firmware
│   └── ir_universal_cloner/   # Main Arduino sketch
├── python_app/                # Python application
│   ├── core/                  # Core functionality
│   ├── gui/                   # PyQt6 GUI
│   ├── models/                # Data models
│   ├── utils/                 # Utilities
│   └── main.py               # Application entry point
├── data/                      # Runtime data
│   ├── database/             # SQLite database
│   ├── exports/              # Exported files
│   ├── lirc_cache/           # LIRC download cache
│   └── logs/                 # Application logs
├── docs/                      # Documentation
└── tests/                     # Unit tests

🎯 Usage Examples

Capturing a Remote

  1. Launch the application
  2. Select your Arduino port from the dropdown
  3. Click "Connect to Arduino"
  4. Click "Capture Signal" and press a button on your remote
  5. Name and save the signal to your database

Exporting Signals

  1. Select a remote from your database
  2. Choose export format (JSON, LIRC, or Pronto)
  3. Click "Export" and select destination

Downloading from LIRC

  1. Go to "LIRC Download" tab
  2. Search for your device manufacturer/model
  3. Download and import to your database

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • LIRC Project - For the comprehensive IR remote database
  • IRremote Library - Arduino IR library inspiration
  • All contributors and users of this project

🐛 Bug Reports

Found a bug? Please open an issue on GitHub with:

  • Description of the problem
  • Steps to reproduce
  • Expected vs actual behavior
  • Your hardware/software setup

📧 Contact

For questions and support, please open an issue on GitHub.


Made with ❤️ for the maker community

About

Record infrared signals from any remote control using Arduino

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published