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.
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.
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.
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.
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.
The entire part of the project that controlls the devices, including the ability to record new devices operation signal, and the ability to operate those devices using the IR was implemented on TI CC2650 LaunchPad.
In fact, our hardware interfacing was the minor part of the project. The main work was about understanding how to operate the IR, and designing a mechanison on the CC2650, using software development, that will act as it should - controlling real devices using the IR transmitter. Of course, in addition there was a major software development on the iPhone app, including the BLE abilityies of it.
I believe that this project is truely an Internet of Things project. Using our mobile app, we can controll as many CC2650 devices as we have, making our home, workplace, campus or wherever we're at, making it a "Smart Place" - when we can controll all the devices in it using our mobile phone thanks to the MuUltimateRemote project.
Our iPhone-native mobile app
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.