generate radio code for universal learning remote

Hi!
I want to make an project for gate automation using arduino+rf receiver+remote fob.
I buy all i need, receiver+transmitter kit at 433Mhz and an remote like in photo.
When i got remote see that only when press C button i get an code using receiver+arduino (using RCSwitch library).
So, is possible that my remote is not programmed or is defective.
My intention is to try to generate a code (similar with original) using Arduino and then store code on my remote control.
I use as test, two arduino pro mini, one with transmitter and other with receiver. Original code emitted by remote is this:

Decimal: 6249740 (24Bit) Binary: 010111110101110100001100 Tri-State: FF11FF1F0010��^� PulseLength: 402 microseconds Protocol: 1
Raw data: 12476,440,1304,1272,476,436,1308,1264,488,1268,484,1268,484,1268,484,1264,488,432,1308,1268,484,432,1308,52,2272,44,732,64,1440,168,592,504,256,516,252,532,224,604,364,400,440,412,336,424,372,312,468,292,468,

Using RCSwitch i can reproduce this code, tested with receiver and work like is transmitted by remote, but i can’t learn code that code to my remote.
I would like to say for my remote work reset procedure and restore original code (only C button).

So, my question: is possible to learn my remote new codes using arduino+transmitter?
Here is link to remote product: remote 433Mhz

What are you using to receive the key-fob signal on the arduino?

I use cheap receiver+transmission kit like this
I don’t have any problem with sending and receiving signals from remote or from transmitter to receiver.
Here is code used to reproduce original code from remote.

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {

  Serial.begin(9600);
  
  // Transmitter is connected to Arduino Pin #10  
  mySwitch.enableTransmit(10);

  // Optional set pulse length.
  mySwitch.setPulseLength(600);
  
  // Optional set protocol (default is 1, will work for most outlets)
  mySwitch.setProtocol(1);
  
  
  // Optional set number of transmission repetitions.
  //mySwitch.setRepeatTransmit(3);
  
}

void loop() {

  /* Same switch as above, but using decimal code */
  digitalWrite(13,HIGH);
  delay(500);
  digitalWrite(13,LOW);
  delay(1000);
  digitalWrite(13,HIGH);
  /*mySwitch.send(6249742, 24);*/
  mySwitch.sendTriState("FF11FF1F0010");
  delay(400);
  mySwitch.sendTriState("FF11FF1F0010");
  delay(400);
  mySwitch.sendTriState("FF11FF1F0010");
  delay(400);
  mySwitch.sendTriState("FF11FF1F0010");
  delay(400);
  mySwitch.sendTriState("FF11FF1F0010");
  digitalWrite(13,LOW);
  delay(3000);
  Serial.println();
  
  /* Same switch as above, but using binary code */
  /*
  mySwitch.send("100000101100100011001000");
  delay(1000);
  */
}

For example using this sketch can light up an LED using another Arduino+transmitter or my remote when press C button.

Many of those RF remote gadgets us a rolling code so it never sends the same code a second time (to prevent exactly what you are trying to do - there were too many cases of the bad guys sitting in their cars etc. recording the garage door opener codes (from the early ones) then breaking in later when the owner was not home). I believe Microchip's version of it is called Keyloq or something along those lines.

I know about hopping code, but my intention is to use fixed code for the beginning. I don't have any special requirements for security. My remote transmit same code again and again and I doubt that they sold a remote control with rolling code because they are more expensive. I put two photos (both sides) with electronics, maybe someone have an similar product that working and we can make comparisons.

Here is link to the photos

Problem solved!
Here is an issue with transmitter witch emit at very low power. So i attached an external antenna (17cm length, straight wire) and now i can learn my remote every code i want. Remote need to be very close to antenna. Position where attach external antenna can be found on forum but i put an photo to be more convenient.

In conclusion: using arduino+cheap transmitter+RCSwitch library can learn universal remote any code u want. Obviously this is true for fixed code.

Here is clean code for arduino to generate code:

/* this is an prototype, code need to be changed for every button so need to flash arduino for each button but of course it can be solved much more elegant */

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

int code = 6249743;
int i;

void setup() {

  Serial.begin(9600);
  
  // Transmitter is connected to Arduino Pin #10  
  mySwitch.enableTransmit(10);

  // Optional set pulse length.
  mySwitch.setPulseLength(600);
  
  // Optional set protocol (default is 1, will work for most outlets)
  mySwitch.setProtocol(1);  
}

void loop() {

  /* Same switch as above, but using decimal code */
  digitalWrite(13,HIGH);
  delay(500);
  digitalWrite(13,LOW);
  delay(1000);
  digitalWrite(13,HIGH);
  i = 0;
  //cde is send 4 times
  while (i < 4)
  {
    mySwitch.send(code, 24);
    i++;
    delay(400);
  }
  digitalWrite(13,LOW);
  delay(3000);
}

Thanks you!

P.S.
reset procedure for this remote: press A+B simultaneous until led flash quickly.
learn code: press an button until led flash quickly
restore original code: press C+D simultaneous until led flash quickly.