PAGE 1 of 3 - Identifying the Air condition remote control transmission modulation
As a matter of fact, i have two Fidji air-conditions, so probably this reverse-engineer work won't be a plain waste of time. IMO reverse engineering staff is the best practice and i find it always very interesting.
At first, i had to get somehow the IR data sent by the remote control. The simplest method was with a TSOP1838 IR receiver, the same i used for the long range IR beam break detector circuit.. With the proper trigger setting on my oscilloscope, i managed to capture the IR beam...
|This is the TSOP 1838
||I connected the oscilloscope to capture the data sent
||With the proper trigger settings, here is what the remote sends upon button press
Air condition remote controls have a very long protocol
There is a great difference between typical TV, radio, DVD and other remote control protocols with the air-condition remote controls, and more specifically the remote controls with the LCD screen. That is because the settings are stored on the remote control itself rather than the air-condition unit. This means that each time a button is pressed, the remote control must send not only this button press, but the complete set of parameters such as temperature, fan settings, swing, operation and others.
Air condition remote controls with built-in LCD have a long protocol because they carry all the settings
It was rather impossible to analyze the protocol directly from the oscilloscope's screen because of its length. So what I've done was to connect the oscilloscope with the PC through USB. With a special software i download the data from the oscilloscope to the PC. Luckily, this software can export a long set of measurements in excel format. I made a small software that reads these data, filters the results and draws an inverted rectangular waveform according to the data:
|My oscilloscope can be connected with the PC through USB
||The software exports a long series of serial data of the waveform in excel format
||I made a small software which can analyze this serial data, filter the results and export a bitmap with the filtered waveform
Identifying the transmission protocol modulation
The oscilloscope's screen shows the signal inverted and i did not recognize the modulation type immediately. But when i saw the filtered and inverted waveform on the screen, i immediately recognized the modulation type: It is Differential Pulse Position Modulation. I've written a detailed theory regarding the PPM and the D-PPM modulation in this page.
So, now i know exactly which parameters to measure: i need to measure the duration of the short and long pulse interval, the pulse duration, the initial pulse interval and the carrier frequency of the signal:
|The short pulse duration is 320uSec
||The long pulse duration is 1.16mSec
||The pulse duration is 540uSec
||The initial pulse duration is 3.1mSec
As for the carrier signal, i need to change the receiver circuit. the TSOP has built-in filters and outputs only pulses without the carrier signal. So i replaced it with a simple IR diode like the one i used in this IR Short Distance Beam Cut Detector circuit.
|I used a simple IR diode to detect the carrier signal
||Now the carrier frequency is visible
||By decreasing the horizontal time/div of the oscilloscope, the carrier wave is measurable. It is 37.3KHz
Now i know everything regarding the modulation. I can proceed with the protocol identification...
|At 24 October 2013, 11:51:03 user Mohamed wrote: [reply @ Mohamed]|
I've been trying to control AC via IR for a long time
is there any way to get the software you made ?
At 9 July 2013, 19:36:34 user AnalysIR wrote: [reply @ AnalysIR]
Really enjoyed reading your post and particulary the flow & style of describing the project. We have been working on a similar project recently, details of which you can find below.
For anyone interested in Decoding IR protocols - we have just launched a project on IndieGoGo for AnalysIR - IR Decoder & Analyzer GUI (Arduino & Raspberry Pi). Currently we support 17 IR protocols and are looking for more to add as part of the project. Suggestions Welcome!
You can find out more about the project on http://igg.me/at/AnalysIR/x/3752156 or Screenshot via www.AnalysIR.com or Meet us at DublinMakerFaire on Jul 27th
At 21 June 2013, 6:41:21 user Giorgos Lazaridis wrote: [reply @ Giorgos Lazaridis]
@peeyush manglam I made it myself. It is not a released software.
At 18 June 2013, 13:17:18 user peeyush manglam wrote: [reply @ peeyush manglam]
i want to know which software you used in your PC to collect the data from the oscilloscope .
please reply me as soon as possible .
I have been searching for this since 2 week and unable to find any solution regarding this .
At 8 May 2013, 14:58:36 user Giorgos Lazaridis wrote: [reply @ Giorgos Lazaridis]
@fuzail Sure i am active. Better use the forum for your questions.
At 8 May 2013, 11:03:34 user fuzail wrote: [reply @ fuzail]
this is a very interesting project that you have done.
i am trying to do something very similar.
could use your help.
are you still active ?
At 30 March 2013, 20:23:15 user Sergey wrote: [reply @ Sergey]
Excellent post! Thank you.
At 14 March 2013, 6:07:05 user Esys wrote: [reply @ Esys]
Thanks a lot for such nice post. If some one has further work on it kindly post it for the others.
At 21 December 2012, 2:51:16 user Christopher wrote: [reply @ Christopher]
I did this same thing only with the WIRED controller port on a Grunaire (chigo built) A/C unit about 3 and a half years ago.. the actual but positions are a bit different but similarity in the type of encoding.. in fact on that unit the wired control protocol and the IR are the same wit hthe difference there's no carrier..
in their case for error correction you first send a 5 byte string.. followed by the same 5 byte string only with the bits inverted.. AND it is a 2 way protocol as it sends Back to you the settings in the same manner.. along with the actual indoor and outdoor temperatures that display on the wired control.. it is carried out over 1 wire (plus ground).. 5 volt TTL level.. normally the unit sends to the wired controller and the wired controller responds back with its settings.. when you adjust a setting.. the wired controller pulls the line low for 100 mSec and then releases it high for 50 mSec and then sends its sequence...
to the one above comment.. I did just what you were asking.. I created my own micro controller to mimic the wired control panel of the unit using a Zbasic.net micro and my home automation system can control my A/C units in this manner...
the added advantage is that the wired control panel would display error codes too.. so I also get the benefit that my home automation will pick up on when an A/C unit issues an error code...
awesome stuff and love to see others are doing similar to me!! its a lot of fun!!
At 5 December 2012, 8:22:11 user Fajar Rukmo wrote: [reply @ Fajar Rukmo]
thank's for your explanantion, finally i know why AC bit code is more long than TV.
your remote using same length but bit changing..
but my samsung remote using variable length,and this is gonna make more hard to analyze...
anyway thank's for explanation....
At 16 October 2012, 15:41:49 user Jure wrote: [reply @ Jure]
Thanks fo this explanation. Anyone aware of similiar IR decoding for Fujitsu and Panasonic (that's what we have here).
Has anybody tried to "hack" remote control to be controlled remotely via internet?
Any advice welcome :-)
At 10 October 2012, 12:41:34 user Giorgos Lazaridis wrote: [reply @ Giorgos Lazaridis]
@atlas Hello. I do not work with Arduino, but i plan to make for PIC
At 10 October 2012, 12:35:40 user atlas wrote: [reply @ atlas]
Thanks for your excellent post. I'm trying to do the same thing as you for my Friedrich AC/heater.
Do you plan to write a new post about using your result with an arduino to be able to control your device?
HOT in heaven!