Decoding / converting IR-codes

  • Hi,

    I've built the IR sender/receiver sensor and I am alble to receive and send codes without problems when using codes for my Sony receiver. However the main reason for building this particular sensor is that I would like to control my Mitshubishi Kirigamine air to air heat pump. The remote model for the pump is KM08A.

    I can't find any codes on the net for this remote som I tried receiving the code when pushing the on/off button. I thought that I could capture the code and then use it to send the command I wanted. This is what I got via the serial monitor:

    Decoded Unknown: Value:0 (0 bits)
    Raw samples(100): Gap:17100
      Head: m3400  s1800
    0:m350 s1350	1:m350 s1350		 2:m400 s450	3:m400 s450		 
    4:m400 s500	5:m350 s1350		 6:m350 s500	7:m400 s450		 
    8:m350 s1400	9:m350 s1350		 10:m350 s500	11:m350 s1350		 
    12:m400 s450	13:m350 s500		 14:m400 s1350	15:m350 s1350		 
    16:m350 s500	17:m350 s1350		 18:m350 s1350	19:m400 s500		 
    20:m350 s500	21:m350 s1350		 22:m350 s500	23:m350 s500		 
    24:m400 s1300	25:m350 s550		 26:m350 s500	27:m350 s500		 
    28:m350 s500	29:m350 s500		 30:m400 s450	31:m400 s500		 
    32:m350 s500	33:m350 s500		 34:m350 s500	35:m350 s500		 
    36:m350 s500	37:m350 s550		 38:m350 s500	39:m350 s500		 
    40:m350 s500	41:m400 s450		 42:m400 s500	43:m350 s500		 
    44:m350 s500	45:m350 s1350		 46:m350 s500	47:m350 s500		 
    Mark  min:350	 max:400
    Space min:450	 max:1400

    But how do I use this? Can I convert it somwhow to the 0x00000 format used in the sketch? I appreciate any thoughts and suggestions!


  • is it maybe a 48bit binary code 500 0 1350 1


    see if the on and off vary slightly.

    I had to work out something like this for a 433Mhz 5 way switch, if you know the pulse width you can us Rcswitch to transmit. Here is some of the code

    #include <RCSwitch.h>
    #define TRANSMIT_PIN  8  // Arduino Digital I/O pin number for relay
    RCSwitch mySwitch = RCSwitch(); // initiate RC Switch
    void setup() {
    // Setup 433 Transmitter
      mySwitch.setPulseLength(200);   // Optional set pulse length.
    void loop() {
      mySwitch.send("0100000101010101001100110"); //1 on

  • Hero Member

    I am also trying to get my heatpump to obey 🙂

    note that on and off are very different in heat pumps. off is easy, its just one code. on is a very long and complicated string of instructions that has the full state as the heatpumps units are stateless, the state is kept in the remote.

  • Hero Member

    I have made some progress....
    Using IRScrutinizer ( and Uno with the irwidget sketch ( I managed to capture IR codes consistently. I am not sure I am able to capture the whole code. Now only to find a way to play these codes! they can be exported to all sorts of formats but i don't know anything that can play these formats.

  • I will check and post my on and off codes later tonight if I can find the time. I have only access to the remote until next weekend so I won't be able to actually verify anything until then. :s

    @Moshe-Livne I agree that the remote must be sending not only the "on"-command, but the whole state as currently displayed on the remote, because if you point the remote away from the pump, make some changes, then point it at the pump and make another change all the changes will come into effect. Then again, the pump itself (mine at least) does remember its last state because it can wake up after a power outage with the same settings as before the outage.

  • Hero Member

    @twosh What i meant is that the base units are stateless, non memoryless. that means that you will not get commands like "one degree up" as the unit does not broadcast back its state so the remote can't figure out what the current settings are. the remote always sends absolute states. that means that it sends very long strings of commands... on a side note, there is a cool device called broadlink rm2 (you can find it on ali). it works brilliantly, but.... there is always but. the protocol to talk with the device is proprietary and encrypted and it only works from mobile phones. the app, unfortunately, needs the most absurd set of permissions i have ever seen in my life.