Hi, I use an ESP32 to relay IR signals from the TV remote control to various audio equipment in an effort to minimize the number of remote controls lying around. This video covers the basics. #254 Infrared Remote Protocol Translator (Arduino Nano) - YouTube
It is a bit technical to do but works well. The following is a list of codes for the Arylic IR controller. Typically, you read a non volume key from the TV remote ( say a menu navigation key or similar) and send a volume adjustment signal to the Arylic. I asked in another post here if it is possible to integrate this into the B50 thereby eliminating the need for a microcontroller in the middle.
#include “sys_ir.h”
#include “sys_key.h”
static SysKeyEvent irtable_rakoit_25key = {
// Press Down Start
// | Short Press Release
// | | Const Press Start
// | | | Const Press Hold
// | | | | Const Press Release
// | | | | |
// PDS SPR CPS CPH CPR DD DDD CODE (XX–8989)
{{SYS_KEY_NONE, SYS_KEY_POWER, SYS_KEY_FACTORY_RESET, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xBF}, //POWER
{{SYS_KEY_NONE, SYS_KEY_LED_TOGGLE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xB2}, //PLAYALL → LIGHT
{{SYS_KEY_NONE, SYS_KEY_MUTE, SYS_KEY_BEEP_TOGGLE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xBE}, //MUTE
{{SYS_KEY_NONE, SYS_KEY_SRC_USB, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xB3}, //USB
{{SYS_KEY_NONE, SYS_KEY_SRC_AUX, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xEE}, //AUX
{{SYS_KEY_NONE, SYS_KEY_VOL_UP, SYS_KEY_VOL_UP2, SYS_KEY_VOL_UP2, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xE9}, //VOL+
{{SYS_KEY_NONE, SYS_KEY_VOL_DW, SYS_KEY_VOL_DW2, SYS_KEY_VOL_DW2, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xE5}, //VOL-
{{SYS_KEY_NONE, SYS_KEY_PREV, SYS_KEY_WIFI_PREV_CH, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xAE}, //PRE
{{SYS_KEY_NONE, SYS_KEY_NEXT, SYS_KEY_WIFI_NEXT_CH, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xAF}, //NEXT
{{SYS_KEY_NONE, SYS_KEY_PLAY_PAUSE, SYS_KEY_STOP, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xEC}, //PLAY/PAUSE
{{SYS_KEY_NONE, SYS_KEY_SRC_OPT, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xEF}, //OPT
{{SYS_KEY_NONE, SYS_KEY_SRC_BT, SYS_KEY_WIFI_RESET, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xE7}, //BT
{{SYS_KEY_NONE, SYS_KEY_SRC_WIFI, SYS_KEY_WIFI_RESET, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xE6}, //WIFI
{{SYS_KEY_NONE, SYS_KEY_BASS_UP_COARSE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xB1}, //BASS+
{{SYS_KEY_NONE, SYS_KEY_BASS_DW_COARSE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xB5}, //BASS-
{{SYS_KEY_NONE, SYS_KEY_TREB_UP_COARSE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xF2}, //TREBLE+
{{SYS_KEY_NONE, SYS_KEY_TREB_DW_COARSE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xF6}, //TREBLE-
{{SYS_KEY_NONE, SYS_KEY_EQ_FLAT, SYS_KEY_EQ_FLAT, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xF3}, //EQ → FLAT
{{SYS_KEY_NONE, SYS_KEY_VB, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xF7}, //FAV → VB
{{SYS_KEY_NONE, SYS_KEY_NUM_1, SYS_KEY_NUM_101, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xB9}, //1
{{SYS_KEY_NONE, SYS_KEY_NUM_2, SYS_KEY_NUM_102, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xFA}, //2
{{SYS_KEY_NONE, SYS_KEY_NUM_3, SYS_KEY_NUM_103, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xFB}, //3
{{SYS_KEY_NONE, SYS_KEY_NUM_4, SYS_KEY_NUM_104, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xBD}, //4
{{SYS_KEY_NONE, SYS_KEY_NUM_5, SYS_KEY_NUM_105, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xFE}, //5
{{SYS_KEY_NONE, SYS_KEY_NUM_6, SYS_KEY_NUM_106, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE, SYS_KEY_NONE}, 0xFF}, //6
};
static SysIrData irdata_rakoit_25key = {
0x8989,
24,
25,
irtable_rakoit_25key,
NULL,
0,
};