Replacing Infrared Remotes With an IPhone





Introduction: Replacing Infrared Remotes With an IPhone

In everybody life, everybody encounters a lot of different IR remotes, but it sometimes get frustrating pointing the remote in the right direction, or the DVR doesn't play when you want it to. I came up with the idea to make a kind of repeater which is controlled by an iPhone, over BLE. Then, it communicates with an Arduino to play IR codes from memory, controlling a device. I did a quick Google Search to see there were a few projects like this, but none of them were compatible with iOS, only Android. Though it only holds 4 codes, I plan to expand it in future.

This project also has many advantages:

1. No code changing required - plug the device into your PC and use the java program's GUI to record and ername your device.

2. For those iOS users, it is currently the only option. This app can easily be ported to Android because it uses BLE (4.0), which is also compatible with Android.

3. Handles any IR code that I've tested.

It uses a modified of Ken Shirriff's IR Record example and library. The iOS app uses some code from Ray Wenderlich's Arduino + iOS guide.

Step 1: Materials

1 x Arduino Uno

1 x 38 Khz IR reciever

1 x IR LED

1 x 100 Ohm Resistor

1 x HM-10 BLE module

For the BLE module, you can use the one I used, which I would not recommend, or follow this Instructable.

Step 2: The Connections and Circut

You can either do this on a breadboard, or on a perfboard because there really isn't much circuitry. Follow this circuit from Ken Sherriff's website. Use these connections:

HM-10 VCC - 3.3v


HM-10 TX - Pin 6

HM-10 RX- Pin 7

I the HM-10 is 3.3v, but it never has any problems with the 5v RX and TX.

Step 3: The IOS App

I have uploaded the XCode Project onto Instructables (see the uploaded section), if you are not sure how to compile and run it on on your phone, see the XCode instructions on Apple's website. I modified Ray Wenderlich code from here. If you are not using the HM-10, in the code, you will need to modify the UUIDs as your datasheet says.

Step 4: Arduino Code

Here is the arduino code required. Some of it from Ken Sherriff's IRrecord example from his library. You need to download his library from here. And the EEPROM_ANYTHING library.

Step 5: Java Program

For making the device easier to program, I created a Java which handles changing the BLE advertising name and reprogramming the codes stored on the device.

Please Note: This is compiled for 64 bit windows. For other versions, download RXTX from their website. You should be able to replace the .dll files and.jar file to fit your computer. I do not have a 32 bit computer, so I cannot check this.

Step 6: Position Your Device

Position your device so that the LED faces your IR controlled device's receiver. In the example above, it is sitting facing an Apple TV. To set it up, connect the arduino to your computer, run the .jar, follow the setup, and use the app to control the Arduino!



    • Water Contest

      Water Contest
    • Oil Contest

      Oil Contest
    • Clocks Contest

      Clocks Contest

    5 Discussions


    2 years ago

    Great project but Link for Xcode source is not linked

    1 reply

    2 years ago

    I have uploaded the XCode Project "here" "here" is not linked...

    1 reply

    Thanks for sharing and welcome! :)