RF 433 convertir pulsos a bits binarios

Hola Chicos/as.
Llevo varios días buscado como salir del atasco..SOY NOVATO.
Dispongo de un código que me permite mostrar en serial los datos recibidos de la mayoría de controles remotos de RF. Con un modulo RF 433 o de otra frecuencia, arduino recibe la transmisión y muestra los cambios de estado en milisegundos.
Para mi objetivo, es mejor que la biblioteca RCswitch en sus diferentes versiones, ya que recibe e interpreta muchos más tipos de protocolos que la citada librería.

Lo que me gustaría implementar y debido a mi bajo nivel de programación es que arduino, basándose en los datos recibidos los muestre como unos y ceros.
Si yo conozco que pulsos componen un estado 0 o 1, conozco cuanto dura la cabecera y la cola, quiero poderselo definir en el código y quye e en cada transmisión me lo muestre ya en bin, dec o hex. En principio bin, ya me vale.

Aquí pongo el código y debajo un resultado de lectura de pulsos.

#define SAMPLESIZE 500

static unsigned int timings[SAMPLESIZE];
static unsigned int pos = 0;
static unsigned long lastTime = 0;

static int receiverPin = 2;
static int interruptPin = 0;

void setup() {
  interruptPin = digitalPinToInterrupt(receiverPin);
  Serial.begin(9600); 
  attachInterrupt(interruptPin, handleInterrupt, CHANGE);
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
}

void loop() {
    for (int i = 5; i>0; i--) {
      Serial.print(i);
      Serial.print("... ");
      delay(900);
      digitalWrite(13, HIGH);
      delay(100);
      digitalWrite(13, LOW);
    }
    Serial.println();
      
    detachInterrupt(interruptPin);
  
    int finalstate = digitalRead(receiverPin);
    
    char s = Serial.read();
    
    for (unsigned int i = pos + finalstate; i< SAMPLESIZE; i++) {
      Serial.print( timings[i] );
      Serial.print(",");
    }
 
    for (unsigned int i = 0; i < pos; i++) {
      Serial.print( timings[i] );
      Serial.print(",");
    }

    Serial.println("");
    Serial.println("Resetea para volver a obtener datos...");

    while(true) {} 
  
}

void handleInterrupt() {
  const long time = micros();
  timings[pos] = time - lastTime;
  lastTime = time;
  if (++pos > SAMPLESIZE-1) {
    pos = 0;
  }
}

La lectura en el serial muestra varias tramas iguales de una misma pulsación del control remoto. Para no sobrecargar, solo mostraré el final de una trama, trama completa y principio de la siguiente:

236,1436,1052,616,1060,616,2084,8216,244,1428,252,1416,1068,604,1064,604,252,1420,1068,604,252,1416,248,1440,1068,600,1068,604,1064,604,248,1424,1064,608,244,1424,1068,604,244,1440,252,1420,252,1416,1076,596,248,1420,1072,600,1072,596,252,1420,1072,612,252,1420,1080,588,252,1420,252,1416,1076,596,1076,596,1068,600,252,1432,252,1420,1072,596,1076,596,252,1420,1068,600,252,1420,1072,596,1076,608,1072,600,248,1420,252,1420,252,1416,1076,592,1076,596,256,1416,252,1432,252,1420,256,1412,1076,596,252,1416,1080,592,1072,596,1080,592,256,1428,256,1412,1080,592,256,1416,1080,592,256,1412,256,1412,260,1412,260,1424,260,1412,260,1408,268,1404,1088,580,1084,588,260,1412,1084,584,264,1420,268,1404,1088,580,1092,580,268,1404,264,1404,264,1408,1088,584,1084,592,2108,8192,272,1400,276,1392,1092,580,1088,580,268,1404,1088,580,268,1404,264,1420,1088,584,1088,580,1096,572,268,1404,1092,580,268,1404,

Como novato, permitirme que lo explique a mi manera:
Pasándolo a onda cuadrada y comparando con el resultado en un analizador lógico, descubro que cada trama comienza con un pulso de unos 8216 us.
Cada trama termina con un tiempo de unos 2100 us.
Los 80 bits de la trama están compuestos por 2 parejas de tiempos.
Pareja 1, se forma con mas menos 244 us y 1428 us ...
Pareja 2, se forma con mas menos 1068 us y 604 us ...
La duración de cada pareja es la misma, mas menos 1670 us.
Ya veremos qué pareja conforma un cero y qué pareja conforma un uno.

Bien, pues con estos datos, me gustaría decirle a arduino que muestre unos y ceros...
He buscado por todas partes y nada... He probado varios setch de RCswitch de Martin Lackaustra y otros pero no hay forma.

Agradecería alguna sugerencia por donde buscar.

Saludos cordiales y mucha salud a todos desde el confinamiento hogareño.

Acabo de publicar este control de persianas sobre lo mismo.

En resumen, solo hay una duración para el uno y otra para el cero que a veces se repiten y son doble o más.

Con la imagen del Analizador Lógico delante, solo tienes que ir pulsando en el teclado unos y ceros para recrearla y esa sera´la trama.
En el articulo que te he comentado lo verás mejor y con un Sketch para esp8266.

www.jopapa.me

Hola jopapa.
Gracias por contestar...
No es eso lo que busco. Me he explicado mal.
Es para varios controles remotos de cierta marca concreta... Todos iguales pero con números de serie únicos. No quiero estar descifrando uno a uno el numero de serie de cada control...Quiero transmitir y que arduino me haga ese trabajo.

Tanto con analizador lógico como con el código que he publicado en el post #1, puedo ver la duración de los tiempos y hallar el código binario manualmente, con varias maneras. SDR. RTL. Audacity, analizador logico, tarjeta de sonido, arduino...Hay muchas maneras. Aunque tendría la duda de cuales son los unos y los ceros.

Como ves en la imagen que he publicado en el post #1, la trama la obtengo tanto en microsegundos como en onda cuadrada. Visualmente podría obtener el codigo BIN facilmente...

Precisamente, lo que pretendo es que arduino me muestre el código BIN partiendo de los tiempos que recibe... Que él al recibir una cabecera de unos 8000 us la reconozca y a partir de ahí...Al recibir 244,1428 escriba "1" y al recibir 1068,604 escriba "0" en el serial. Obviamente, los tiempos nunca son exactos..hay pequeñas variaciones ya que estamos hablando de microsegndos.

Hola chicos/as.

Como veo que no contesta nadie, me permito ampliar la información para darle un enfoque diferente y quizás despertar alguna sugerencia:

Aunque son números cuyo valor es ligeramente diferente por tratarse de micro segundos, son siempre los mismos, mas o menos.
Como podéis ver en la trama de números que entrega arduino en el serial y separados por comas, hay 3 parejas que se repiten:

Las tramas empiezan siempre por 2000 y 8000. // Esta es la cabecera
Le siguen dos tipos de parejas. (252 y 1416) o (1068 y 604). Estas dos parejas son los unos y los ceros.

Primera duda: Como decirle a arduino que cuando reciba más o menos, 2000+8000 Serial.print ("Cabecera");
Que cuando reciba mas o menos 252+1416, Serial.print("1"); y cuando mas o menos reciba 1608+604, Serial.print ("0");

El primer problema que veo es que no siempre son números exactos.
Recuerdo que el fin es que en vez de mostrar esa trama de micro segundos separados por comas, muestre por ejemplo esto: Cabecera 1001110010111011000100000 Algo así.

Gracias de antemano