/ArduinoCIR

Communication with consumer IR "remote" signals

Primary LanguageC++MIT LicenseMIT

ArduinoCIR: Communication using consumer IR "remote" signals

(Send/receive "TV remote" (+satbox +...) commands)

Description

ArduinoCIR provides the ir_messaging library, a ready-to-use solution for sending/receiving consumer IR (remote-control) signals on Arduino platforms.

Features

  • Simultaneously transmit & receive IR messages.
  • (Untested): Build solutions supporting 2+ receivers or 2+ transmitters (Speed & hardware permitting).
  • User-selectable hardware units for timers (not hard-coded in library).

Supported Protocols

The list of supported protocols is listed below.

  • NEC: (tx/rx).
  • RC-MM: (tx only).
  • RC-5: (untested tx/untested rx).
  • Sony SIRC: (untested tx/rx).

Note:

Table of Contents

  1. Description
  2. Features
    1. Supported Protocols
  3. Purpose of Library
  4. Supported Hardware
  5. Sample Sketches
  6. Usage Tips
  7. Wiring/Circuit Topology
  8. Software Documentation
  9. Resources/Acknowledgments
  10. Known Limitations

Supported Hardware

ArduinoCIR was designed to support easily multiple Atmel platforms. At the moment, only a few are actually implemented:

  • Atmel ATmega328/328P
    • Arduino Uno
    • Arduino Redboard (✅ Tested)
    • Arduino Pro
    • Arduino Fio
    • Arduino Mini
    • Arduino Nano
    • Arduino LilyPad
    • Arduino BT
    • Arduino Ethernet
  • Atmel ATmega1280
    • Arduino Mega
  • Atmel ATmega2560
    • Arduino Mega 2560 (✅ Tested)
    • Arduino Mega ADK (✅ Tested)

Known Limitations

  • IR receiver currently only works using a 16-bit timer (IRCtrl::Timer16b::RxHw).
  • IR transmitter currently supports two resource allocations:
    • System clock (Timer0) + an 8-bit timer (IRCtrl::Timer8b::TxHw),
    • or two 16-bit timers (IRCtrl::Timer16b::TxHw).

Compatibility

The ir_messaging library was tested on version 1.0.5+dfsg2-2 (Linux) of the Arduino IDE.

Disclaimer

This software is provided "as is", with no guarantee of correctness.