Go Down

Topic: IRsend to Toshiba AC splitter unit not working. Works with other devices (Read 149 times) previous topic - next topic

KawasakiZx10r

Hello
I have been trying to communicate to a Toshiba AC unit with an IR LED with no luck, But i can communicate with another AC unit and my tv's, sky box and so on basically everything but this Toshiba AC unit. I had to increase the #define RAWBUF from 101 to 230 so i could record the entire signal from the Toshiba AC remote. Once i increased the RAWBUF i was able to get the whole IR message but when i try to send it even 10cms away the AC unit does nothing, such as turn to turn it on and off.

Heres what i got by using IRrecvDumpV2. Could any one help me, I emailed Toshiba and they said that there are not willing to disclose the Braude rate, bit or frequency. No joke its known that Toshiba really dont want people knowing this protocol. I tried send it as seen below, i even used an incrementing code to try many frequencies and braude rates, with the RAW and SAMSUNG type, fyi IRrecvDumpV2 flagged it as SAMSUNG type code but again the unit is Toshiba.

Encoding  : SAMSUNG
Code      : F20D03FC (32 bits)
Timing[147]:
     +4350, -4350     + 550, -1600     + 550, -1600     + 550, -1600
     + 550, -1550     + 600, - 500     + 550, - 500     + 550, -1600
     + 550, - 550     + 550, - 500     + 550, - 500     + 600, - 500
     + 550, - 500     + 550, -1600     + 550, -1600     + 550, - 550
     + 550, -1550     + 600, - 500     + 550, - 500     + 550, - 550
     + 550, - 500     + 550, - 550     + 550, - 500     + 550, -1600
     + 550, -1600     + 550, -1600     + 550, -1550     + 550, -1600
     + 600, -1550     + 550, -1600     + 550, -1600     + 550, - 500
     + 550, - 550     + 550, - 500     + 550, - 550     + 550, - 500
     + 550, - 550     + 550, - 500     + 550, - 500     + 550, - 550
     + 550, -1600     + 550, -1600     + 550, - 500     + 550, -1600
     + 550, - 500     + 550, - 550     + 550, - 500     + 550, - 550
     + 550, - 500     + 550, -1600     + 550, - 500     + 600, -1550
     + 550, - 550     + 550, - 500     + 550, -1600     + 550, -1600
     + 550, -1600     + 550, - 500     + 550, - 550     + 550, - 500
     + 550, - 550     + 550, - 500     + 550, - 500     + 600, - 500
     + 550, - 500     + 550, - 550     + 550, - 500     + 550, - 550
     + 550, - 500     + 550, - 500     + 600, -1550     + 550, -1600
     + 550, - 550     + 550
unsigned int  rawData[147] = {4350,4350, 550,1600, 550,1600, 550,1600, 550,1550, 600,500, 550,500, 550,1600, 550,550, 550,500, 550,500, 600,500, 550,500, 550,1600, 550,1600, 550,550, 550,1550, 600,500, 550,500, 550,550, 550,500, 550,550, 550,500, 550,1600, 550,1600, 550,1600, 550,1550, 550,1600, 600,1550, 550,1600, 550,1600, 550,500, 550,550, 550,500, 550,550, 550,500, 550,550, 550,500, 550,500, 550,550, 550,1600, 550,1600, 550,500, 550,1600, 550,500, 550,550, 550,500, 550,550, 550,500, 550,1600, 550,500, 600,1550, 550,550, 550,500, 550,1600, 550,1600, 550,1600, 550,500, 550,550, 550,500, 550,550, 550,500, 550,500, 600,500, 550,500, 550,550, 550,500, 550,550, 550,500, 550,500, 600,1550, 550,1600, 550,550, 550};  // SAMSUNG F20D03FC
unsigned int  data = 0xF20D03FC;

Encoding  : SAMSUNG
Code      : F20D03FC (32 bits)
Timing[147]:
     +4350, -4350     + 550, -1600     + 550, -1550     + 600, -1550
     + 550, -1600     + 550, - 550     + 550, - 500     + 550, -1600
     + 550, - 500     + 550, - 550     + 550, - 500     + 550, - 550
     + 550, - 500     + 550, -1600     + 550, -1600     + 550, - 500
     + 550, -1600     + 550, - 550     + 550, - 500     + 550, - 500
     + 600, - 500     + 550, - 500     + 550, - 550     + 550, -1600
     + 550, -1550     + 600, -1550     + 600, -1550     + 550, -1600
     + 550, -1600     + 550, -1600     + 550, -1600     + 550, - 500
     + 550, - 550     + 550, - 500     + 550, - 500     + 600, - 500
     + 550, - 500     + 600, - 500     + 550, - 500     + 550, - 550
     + 550, -1600     + 550, -1550     + 550, - 550     + 550, -1600
     + 550, - 500     + 550, - 550     + 550, - 500     + 550, - 500
     + 600, - 500     + 550, -1600     + 550, - 500     + 550, -1600
     + 550, - 550     + 550, - 500     + 550, - 500     + 550, - 550
     + 550, -1600     + 550, - 500     + 550, - 550     + 550, - 500
     + 550, - 500     + 600, - 500     + 550, - 500     + 550, - 550
     + 550, - 500     + 550, - 550     + 550, - 500     + 550, - 550
     + 550, - 500     + 550, - 500     + 550, - 550     + 550, - 500
     + 550, - 550     + 550
unsigned int  rawData[147] = {4350,4350, 550,1600, 550,1550, 600,1550, 550,1600, 550,550, 550,500, 550,1600, 550,500, 550,550, 550,500, 550,550, 550,500, 550,1600, 550,1600, 550,500, 550,1600, 550,550, 550,500, 550,500, 600,500, 550,500, 550,550, 550,1600, 550,1550, 600,1550, 600,1550, 550,1600, 550,1600, 550,1600, 550,1600, 550,500, 550,550, 550,500, 550,500, 600,500, 550,500, 600,500, 550,500, 550,550, 550,1600, 550,1550, 550,550, 550,1600, 550,500, 550,550, 550,500, 550,500, 600,500, 550,1600, 550,500, 550,1600, 550,550, 550,500, 550,500, 550,550, 550,1600, 550,500, 550,550, 550,500, 550,500, 600,500, 550,500, 550,550, 550,500, 550,550, 550,500, 550,550, 550,500, 550,500, 550,550, 550,500, 550,550, 550};  // SAMSUNG F20D03FC
unsigned int  data = 0xF20D03FC;

To send it i created this to test every frequency from 16 to 59 then from 16 braude rate to 128:
Code: [Select]

#include <IRremote.h>

IRsend irsend;

//Encoding: SAMSUNG  -  Code: F20D03FC (32 bits)
unsigned int  rawON_OFF[147] = {4350, 4350, 550, 1600, 600, 1500, 600, 1550, 600, 1550, 550, 550, 550, 500, 550, 1600, 600, 450, 600, 500, 550, 500, 550, 550, 550, 500, 550, 1600, 550, 1600, 550, 500, 550, 1600, 550, 550, 550, 500, 550, 550, 550, 500, 550, 500, 600, 500, 550, 1600, 550, 1600, 550, 1550, 600, 1550, 550, 1600, 550, 1600, 550, 1600, 550, 1600, 550, 500, 550, 550, 550, 500, 550, 550, 550, 500, 550, 500, 550, 550, 550, 500, 550, 550, 550, 1600, 550, 500, 550, 1600, 550, 500, 550, 550, 550, 500, 550, 550, 550, 500, 550, 550, 550, 1550, 550, 550, 550, 1600, 550, 500, 550, 550, 550, 500, 550, 500, 550, 1600, 550, 550, 550, 500, 550, 550, 550, 500, 550, 500, 600, 500, 550, 500, 550, 550, 550, 1600, 550, 1600, 550, 1550, 550, 550, 550, 500, 550, 550, 550, 500, 550, 550, 550}; // SAMSUNG F20D03FC
#define dataON_OFF 0xF20D03FC

int Len = 16;
int Freq = 16;

void setup()
{
  // initialize digital pin LED_BUILTIN - D13 as an output.
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect, needed for USB Serial only
  }
}

void loop() {
  if ( Freq < 60) {
    digitalWrite(LED_BUILTIN, HIGH);
    irsend.sendRaw(rawON_OFF[147], Len, Freq); // 147 is array length
    Serial.print("\nTrying: ");
    Serial.print(Len);
    Serial.print(",");
    Serial.print(Freq);
    delay(40);
    digitalWrite(LED_BUILTIN, LOW);
    delay(40);
    Freq ++;
  }
  else if (Freq >= 60) {
    Freq = 16;
    Len ++;
  }
  if (Len > 128) {
    Serial.println("Cycle complete, resetting");
    Len = 16;
    Freq = 16;
  }
}// total delays 0.16 secs// total delays 0.16 secs
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.

Albert Einstein

pylon

Check the signal with a scope, maybe it's not 38kHz modulated.

KawasakiZx10r

Sorted, i just had to give it a length big enough to do it in one transition.

unsigned int  rawON_OFF[] = {4350, 4350, 550, 1600, 600, 1500, 600, 1550, 600, 1550, 550, 550, 550, 500, 550, 1600, 600, 450, 600, 500, 550, 500, 550, 550, 550, 500, 550, 1600, 550, 1600, 550, 500, 550, 1600, 550, 550, 550, 500, 550, 550, 550, 500, 550, 500, 600, 500, 550, 1600, 550, 1600, 550, 1550, 600, 1550, 550, 1600, 550, 1600, 550, 1600, 550, 1600, 550, 500, 550, 550, 550, 500, 550, 550, 550, 500, 550, 500, 550, 550, 550, 500, 550, 550, 550, 1600, 550, 500, 550, 1600, 550, 500, 550, 550, 550, 500, 550, 550, 550, 500, 550, 550, 550, 1550, 550, 550, 550, 1600, 550, 500, 550, 550, 550, 500, 550, 500, 550, 1600, 550, 550, 550, 500, 550, 550, 550, 500, 550, 500, 600, 500, 550, 500, 550, 550, 550, 1600, 550, 1600, 550, 1550, 550, 550, 550, 500, 550, 550, 550, 500, 550, 550, 550};


irsend.sendRaw(rawON_OFF, 147, 38); // 147 is array length
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.

Albert Einstein

Go Up