# Sending PRCTool format IR codes using Arduino

**URL:** <https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359>\
**Category:** Device Hacking\
**Created:** [July 3, 2025, 10:21am UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359 "2025-07-03T10:21:47Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![emanuel2020b](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/emanuel2020b/32/1225609_2.png) [@emanuel2020b](https://forum.arduino.cc/u/emanuel2020b)\
**Post date:** [July 3, 2025, 10:21am UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/1 "2025-07-03T10:21:48Z")

</div>

Hi there! I have a Avermedia DVR with no remote. So basically useless. I have tried to find a remote for it and no such luck at a reasonable price. Then I tried the Lirc database for finding a copy of the remote codes to use in IRplus. No luck. I did find on a forum a copy of the remote in PRCTool format but there is no obvious way to convert it for use in IRplus. So I am turning to Arduino. Is there a way to send those commands using a Nano and IR LED?

---

<div class="post-metadata">

**Author:** ![docdoc](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/docdoc/32/220907_2.png) [@docdoc](https://forum.arduino.cc/u/docdoc)\
**Post date:** [July 3, 2025, 10:56am UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/2 "2025-07-03T10:56:19Z")

</div>

The answer is yes, I already had to do with IR sending/receiving with Arduino.  
But the problem is the code/protocol to be used.  
I don't know PRCTool, could you post here a link to that PRCTool file, so we can see if and how it can be converted to be used with IRremote Arduino library?

---

<div class="post-metadata">

**Author:** ![emanuel2020b](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/emanuel2020b/32/1225609_2.png) [@emanuel2020b](https://forum.arduino.cc/u/emanuel2020b)\
**Post date:** [July 3, 2025, 7:57pm UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/3 "2025-07-03T19:57:19Z")

</div>

Here is the file in question:

> **[AVERMEDIA Averdigi RM-H6.txt](https://drive.google.com/file/d/19NXygRSBduzwS87y-4jZiVPgx-kcLNKW/view?usp=drivesdk)**
>
> Google Drive file.

---

<div class="post-metadata">

**Author:** ![docdoc](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/docdoc/32/220907_2.png) [@docdoc](https://forum.arduino.cc/u/docdoc)\
**Post date:** [July 4, 2025, 8:36am UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/4 "2025-07-04T08:36:23Z")

</div>

That file contains a button mapping with some hex codes I cannot understand. These are not either raw IR signals needed by Arduino IRremote library or a key code (for a specific protocol). You would need to acquire either RAW signals or at leat know if that remote uses a compatible format like NEC, Sony, RC5, etc.

The easiest way to emulate a specific remote is acquiring the signals from a physical remote control using an IR receiver connected to Arduino (it's what I did in my previous IR projects). But you said you don't have any remote, so no point in that.

From the file it is not possible for me to determine which IR protocol is being used, because I don't know how PRCTool uses the data.  
For example, the key "1" is encoded as a sequence of hexadecimal codes, as a representation of the infrared signal sent when the "1" button is pressed:

```arduino
6,1=0051 0 E7 1

```

I imagine 0051 could represent a portion of the device address or a protocol prefix, or key code within a specific protocol (that we don't know yet).

Once you know if those hex codes represent a specific IR protocol (e.g. NEC, Sony, etc.) and key codes for each remote key, you could map them with IRremote library.

PS: do you know the exact product code for the original remote?

---

<div class="post-metadata">

**Author:** ![emanuel2020b](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/emanuel2020b/32/1225609_2.png) [@emanuel2020b](https://forum.arduino.cc/u/emanuel2020b)\
**Post date:** [July 4, 2025, 8:57am UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/5 "2025-07-04T08:57:05Z")

</div>

The original remote is called Avermedia RM-H6

---

<div class="post-metadata">

**Author:** ![docdoc](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/docdoc/32/220907_2.png) [@docdoc](https://forum.arduino.cc/u/docdoc)\
**Post date:** [July 4, 2025, 9:08am UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/6 "2025-07-04T09:08:42Z")

</div>

> [@emanuel2020b](#):
>
> Avermedia RM-H6

Yes, it's already written in the PRCTools file. But it doesn't tell me what IR protocol is used (it isn't clearly a RAW data file).  
Anyway, I see any key is encoded with the same prefix "0051 0 E7" so the key code should be the last number (in fact it's unique).  
Even ignoring the prefix (could 0015 represents the protocol code? Who knows...)and knowing the key code it isn't enough because you need the protocol (it tells how the data is encoded in IR carrier signal bursts, as lenghts and pauses).

Therefore, I'm sorry to say you can't do anything with that file unless you find some more specific technical information.

---

<div class="post-metadata">

**Author:** ![emanuel2020b](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/emanuel2020b/32/1225609_2.png) [@emanuel2020b](https://forum.arduino.cc/u/emanuel2020b)\
**Post date:** [July 4, 2025, 3:05pm UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/7 "2025-07-04T15:05:06Z")

</div>

Well... It was worth a try. Thank you for your answer. After doing some more research, I found out that the prefix does really represent the protocol as you said and there is a very tedious way to transform those codes to pronto hex format using the ir scrutinizer software. The problem is that there is no protocol with the name avermedia in the software. I guess I will reserve some time to try every protocol in there until I find Something that works. :))

---

<div class="post-metadata">

**Author:** ![docdoc](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/docdoc/32/220907_2.png) [@docdoc](https://forum.arduino.cc/u/docdoc)\
**Post date:** [July 7, 2025, 8:07am UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/8 "2025-07-07T08:07:52Z")

</div>

> [@emanuel2020b](#):
>
> The problem is that there is no protocol with the name avermedia in the software.

Yes because it isn't a "known" protocol name. I can't beliceve they created a closed proprietary IR protocol just for this device, so it must/should be one of the most common ones, like NEC or PANASONIC.

If you plan to try every protocol (you need to load and edit one of the IR send examples, if you do it post here your version) I think it isn't an easy task because even if you try each of the IRremote protocols, you should make sure you have the correct key codes for that protocol: without having at least a good one, you will fail any test you'll make, increasing your frustration.

Based on the PRC-tool txt file, the key code could be the last item, or the last two combined. E.g. for the "select" key, or "18,TASTA SELECT=0051 0 E7 45", you should try 45 first (remember it's hexadecimal!!), if it doesn't wrok then try E745.

Good luck...

---

<div class="post-metadata">

**Author:** ![docdoc](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/docdoc/32/220907_2.png) [@docdoc](https://forum.arduino.cc/u/docdoc)\
**Post date:** [July 7, 2025, 8:18am UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/9 "2025-07-07T08:18:44Z")

</div>

EDIT: a domanda specifica, Gemini mi risponde questo:

> Il telecomando Avermedia RM-H6 utilizza il **protocollo IR RC5**

Quindi se prendi un codice di esempio della libreria IRremote per l'invio (credo uno tra "SimpleSender" o "TinySender") oppure uno in rete, dovresti poter provare l'invio dei codici in sequenza e vedere se funzionano.

Un codice di esempio (da adattare) potrebbe essere:

```arduino
#include <IRremote.h> // Includi la libreria IRremote

IRsend irsend; // Crea un'istanza dell'oggetto IRsend

// Array di codici RC5 da inviare.
// Ogni elemento è un codice esadecimale RC5.
// Puoi aggiungere o rimuovere codici a seconda delle tue necessità.
unsigned long codiciRC5[] = {
  0x1122, // Esempio: Codice RC5 1
  0x3344, // Esempio: Codice RC5 2
  0x5566 // Esempio: Codice RC5 3
};

// Lunghezza dell'array dei codici
int numeroCodici = sizeof(codiciRC5) / sizeof(codiciRC5[0]);

void setup() {
  Serial.begin(9600); // Inizializza la comunicazione seriale per il debugging
  Serial.println("Inizio invio codici RC5...");
}

void loop() {
  for (int i = 0; i < numeroCodici; i++) {
    Serial.print("Invio codice RC5: 0x");
    Serial.println(codiciRC5[i], HEX); // Stampa il codice esadecimale

    // Invia il codice RC5.
    // Il secondo parametro è il numero di bit, 12 per RC5 standard.
    // Puoi inviare il codice più volte per maggiore affidabilità (es. 2 o 3 volte).
    irsend.sendRC5(codiciRC5[i], 12);
    // irsend.sendRC5(codiciRC5[i], 12, 3); // Esempio per inviare 3 volte

    delay(1000); // Attendi 1 secondo prima di inviare il prossimo codice
  }

  Serial.println("Ciclo di invio completato. Riavvio in 5 secondi...");
  delay(5000); // Attendi 5 secondi prima di ripetere il ciclo
}

```

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [January 3, 2026, 8:18am UTC](https://forum.arduino.cc/t/sending-prctool-format-ir-codes-using-arduino/1393359/10 "2026-01-03T08:18:49Z")

</div>

Closed on January 3, 2026, 8:18am UTC

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
