Помощь с отправкой ir сигнала

wemos mini d1
Trema-модуль ИК-передатчик и ресивер

Считываю сигнал с пульта для вентилятора, записываю его в формате таймингов (LOW/ HIGH)

Потом полученные данные передал в программу для отправки чтобы повторить сигнал. Но вентилятор не реагирует. Короче говоря не получается скопировать сигнал пульта

Программа для записи

#include <Arduino.h>
#include <IRremote.hpp>

const int RECV_PIN = 14;  // Change to your receiver pin
const int STATUS_PIN = LED_BUILTIN;

void setup() {
  pinMode(STATUS_PIN, OUTPUT);
  Serial.begin(115200);
  
  #if defined(__AVR_ATmega32U4__) || defined(SERIAL_USB) || defined(ARDUINO_ARCH_RP2040)
    delay(4000); // Wait for serial monitor
  #endif
  
  Serial.println(F("IR Receiver Ready"));
  IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK, STATUS_PIN);
  Serial.print(F("Listening for IR signals on pin "));
  Serial.println(RECV_PIN);
}

void loop() {
  if (IrReceiver.decode()) {
    digitalWrite(STATUS_PIN, HIGH);
    
    // Print raw data in microseconds
    Serial.println(F("Raw timing data (microseconds):"));
    for (uint16_t i = 1; i < IrReceiver.decodedIRData.rawDataPtr->rawlen; i++) {
      uint32_t duration = IrReceiver.decodedIRData.rawDataPtr->rawbuf[i] * MICROS_PER_TICK;
      Serial.print(duration);
      if (i & 1) Serial.print("\t"); // LOW
      else Serial.println(",");         // HIGH
    }
    Serial.println();
    
    // Print protocol info if known
    if (IrReceiver.decodedIRData.protocol != UNKNOWN) {
      Serial.print(F("Protocol: "));
      Serial.println(getProtocolString(IrReceiver.decodedIRData.protocol));
      Serial.print(F("Value: 0x"));
      Serial.println(IrReceiver.decodedIRData.command, HEX);
    }
    
    IrReceiver.resume();
    digitalWrite(STATUS_PIN, LOW);
  }
}

А тут код отправки:

#include <Arduino.h>
#include <IRremote.hpp>

const int SEND_PIN = 14;  // Change to your transmitter pin
const int STATUS_PIN = LED_BUILTIN;

// Paste your recorded raw data here (in microseconds)
const uint16_t rawSignal[] = {
  // LOW, HIGH pairs
1300,	350,
1350,	350,
500,	1200,
1300,	400,
1300,	400,
450,	1250,
450,	1250,
450,	1250,
450,	1250,
450,	1250,
1300,	400,
450,	
  // Add all your timing pairs here
};

void setup() {
  pinMode(STATUS_PIN, OUTPUT);
  Serial.begin(115200);
  
  #if defined(__AVR_ATmega32U4__) || defined(SERIAL_USB) || defined(ARDUINO_ARCH_RP2040)
    delay(4000); // Wait for serial monitor
  #endif
  
  Serial.println(F("IR Transmitter Ready"));
  IrSender.begin(SEND_PIN, ENABLE_LED_FEEDBACK, STATUS_PIN);
  
  Serial.print(F("Raw signal length: "));
  Serial.println(sizeof(rawSignal)/sizeof(uint16_t));

}

void loop() {

    digitalWrite(STATUS_PIN, HIGH);
    Serial.println(F("Sending IR signal..."));
    
    IrSender.sendRaw(rawSignal, sizeof(rawSignal)/sizeof(uint16_t), 38);
    
    delay(100); // Debounce

}

Использую так

Также пытался использовать эту демку, но с ней тоже не работает.
P.S. Искал как работает изначальный пульт, но моего гуглфу не хватило, что бы найти какой протокол он юзает. На микросхеме на пульте написано FMT-PAO8

Трансмиттер точно работает, т.к. видно по камере, что он загорается

ЧЯДНТ

Лог. анализатор нужен.

У тебя же есть приёмник. Прими сигнал с передатчика и посмотри чем он отличается от сигнала пульта. И не плохо сравнить ешё и на расстоянии как до вентилятора.

У меня нет второй платы для считывания, но это не проблема я могу купить вторую для считывания и проверки.
Но какой результат я хочу получить?
Допустим я увижу, что сигнал считался и он правильный. В таком случае почему он не поступает на целевое устройство?
Ну или другой исход - сигнал неправильный, некорректный. Что делать в таком случае? Честно говоря перебрал уже все возможные варианты скриптов.
Вопрос скорее в том, правильно ли написан код. Или я что-то не понимаю фундаментально?

Я проколол колесо. А если после замены на запасное автомобиль не поедет? Что это может быть?