A combination of embedded and mobile. Using our CC2650 software, and our iPhone monile app, you can use any IR based operated device in your house, by tapping you phone everywhere in you house.

What is MyUltimateRemote?

The MyUltimateRemote is a combination of embedded development with mobile app creating. Our "low-level" part of the project, implemented on the CC2650 LAUNCHPAD of Texas Instruments is responsible for interfacing with the IR transmitter and Receiver - allowing us to learn how to control new devices, and controling our existing ones. The "high level" part of this project, our iphone mobile app - "myComtroller" - let us use that IR abilities, using BLE (Bluetooth low-energy) to communicate with the CC2650.

As many devices as you can

Our mobile app allwos you to configure as many CC2650 boards as you wish, and as many Action saved on each CC2650, being as most dynamically as it can.


The app supports all iPhone devices having ios 8.0 and above. Of course, our CC2650 code allows you to use the device with any BLE-supported app that installe don your other operating systens (such as androids) and even laptops.

Easy to customise

With a change of a constant you can make your MyUltimateRemote support much more. Such as more storing options and opcodes, different transmition frequency and so on.

Project Guidline Addressing



Our iPhone-native mobile app

  • Programming Language: Objective - C
  • IDE: Xcode
  • Main features: Controlls using BLE the CC2650. The user an dynamiclly add and setup as many devices and actions as he want, and to control the IR recevicer and Transmitter.

The CC2650

  • Programming Language: C
  • IDE: Code Composer Studo
  • Main features: The code contains and added module to the Project Zero provided by TI. Where the module's methods are being called as aresult to the value changes caused the red and green leds to turn on and off in the original project.
  • Full Documentation

    A project file containing most of the source code was submitted by hand.
    A copy of it can be founded in here: The project PDF file.
    A great explenation of IR (espacially pages 10-11) can be founded in here: NXP IR Control Techniques.


    There were a few challanges during the development of the CC2650 code.
    The first one was due to the fact that the implement of the IR transmitter used our IOID_25 pin. Since there is a major importance to exact times in our software, in order to be accurate in the transmiting signals, we wanted to prevent the interupts during the broadcasting, using Hwi_disable() function.
    The second challlange was to keep the BLE connection to our mobile app alive - as it was somtimes disconnected due to our interupts. This was solved by setting our Clock_Params object period field to be 3 (i.e interrupt every 3 clock ticks), which have solved this issue.
    I believe, that the major challange of this project was to design a good mechanism for the IR recording. Good not only in it's correctness, but also in terms of the simple UI of it. In order to record, you just need to put your remote near the IR receiver, and press the button you wish to record. Then, when you want - you can tell the board using the mobile app to store it, when you don't need to do this at the same time - which makes it much harder to do so. Therfore, out board is in a state of "always watching" - record the latest signal it received, and store it when you wish.


    This project was made as part of the course "Advanced Computer Systems" in Tel Aviv University.
    Led by Prof. Sivan Toledo.

    Jhonatant Tavori