Leonid Blouvshtein and Yosi Roitman
This work demonstrates how to use the cc2650 device for recording and transmitting IR signals of IR remote controllers.
We support two basic actions:
The commands are sent over BLE using a GATT profile. The BLE implementation is based on the project-zero example (supplied by TI).
A good and simple explanation can be found here.
Because there are many IR protocols and we want to support all of them, we do not interpret the IR code. We just save the timestamps of the neg/pos edge events.
We will use the following components:
CC2650 LAUNCHXL board
IR Receiver connected to the cc2650 board. The IR Receiver output pin should be connected to DIO21(Check).
The following circuit connected to the cc2650 board.
Note: The OutPin is connected to the DIO15 pin.
During the recording stage an interrupt is registered on both edges of the IR receiver pin. The interrupt saves the timestamp of the event to memory.
The timestamp is 32 bits long so for memory utilization we save only the delta from the previous event using 2 bytes.
We need to modulate the pulses with a 38KHz signal. For that purpose we configured a GPT in the cc2650 to function as a PWM. The GPT is turned on and off according to the pulse recorded widths.
Note that the IR LED ideally needs 50mA of current which the board cannot supply, hence we used a BJT transistor in our circuit.
We recorded multiple button presses of a remote control used for controlling an air conditioner.
Here we can see that the remote uses a protocol sends pulses of lengths 1, 2, 3, 4 milliseconds.
In the following two charts we see that the different messages are very similar except for minor variations.