Walk through: Create an Amlogic remote.conf file
This step-by-step tutorial shows how to create a remote.conf
file for a Tanix Factory Remote using a Windows PC, SSH (Putty), and a Home Area Network (HAN).
These instructions easily can be adapted for other Operating Systems.
Requirements
- CoreELEC booting from (μ)SD Card or USB Flash Drive
Ensure the PC and Android Set-top Box are both hardwired too and receive their network settings automatically from, the home router or modem
Preparations
In CoreELEC:
Use the CoreELEC configuration addon to access the SSH settings.
Enable SSH
Find the IP of the device in Settings/System Information/Summary:
SSH into device
- use Putty to SSH into the device
- If a security warning shows:
- in the terminal run:
systemctl stop kodi
systemctl stop eventlircd
ir-keytable -u
############################################## # CoreELEC # # https://coreelec.org # ############################################## CoreELEC (official): 19.2-Matrix_rc2 (Amlogic-ng.arm) CoreELEC:~ # systemctl stop kodi CoreELEC:~ # systemctl stop eventlircd CoreELEC:~ # ir-keytable -u Protocols changed to irmp Waiting for IRMP decode event. Please, press CTRL-C to abort.
- press the remote power button
Received IRMP code: remotewakeup='0xb24d4040', decode_type='0x0', remotewakeupmask='0xffffffff' Received IRMP code: remotewakeup='0xb24d4040', decode_type='0x0', remotewakeupmask='0xffffffff'
Legend
Received IRMP code: remotewakeup='0xb24d4040', decode_type='0x0', remotewakeupmask='0xffffffff'
The code is structured as follows:
0x | AA | BB | CCCC |
---|---|---|---|
0x | | 4d | 4040 |
On soc Amlogic only sections 0x, BB and CCCC are needed for the remote.conf file.
AA is ignored.
0xBB becomes the key_code.
CCCC is the factory_code.
# factory_code each device has it's unique factory code. # pattern: custom_code(16bit)+index_code(16bit) # example: 0xff000001 = 0xff00(custom cod) _ 0001 (index)
Now that the factory code has been found, it is time to link the key_code for each key to the corresponding event_code, which can be found in input-event-codes.sh.
#define KEY_POWER 116 /* SC System Power Down */
Putting it all together
IRMP_code | factory_code | key_code | event_code | key_function |
---|---|---|---|---|
| 0x40400001 | |||
0x | 0x4d | 116 | KEY_POWER |
Proceed for each key on the remote.
IRPM_code | key_code | event_code | key_function |
---|---|---|---|
0xb24d4040 | 0x4d | 116 | KEY_POWER |
0xbc434040 | 0x43 | 113 | KEY_MUTE |
0xe8174040 | 0x17 | 114 | KEY_VOLUMEDOWN |
0xe7184040 | 0x18 | 115 | KEY_VOLUMEUP |
0xf40b4040 | 0x0b | 103 | KEY_UP |
0xf10e4040 | 0x0e | 108 | KEY_DOWN |
0xef104040 | 0x10 | 105 | KEY_LEFT |
0xee114040 | 0x11 | 105 | KEY_RIGHT |
0xf20d4040 | 0x0d | 97 | KEY_ENTER |
0xe51a4040 | 0x1a | 102 | KEY_HOME |
0xba454040 | 0x45 | 125 | KEY_MENU |
0xbd424040 | 0x42 | 1 | KEY_BACK |
0xfe014040 | 0x01 | 2 | KEY_1 |
0xfd024040 | 0x02 | 3 | KEY_2 |
0xfc034040 | 0x03 | 4 | KEY_3 |
0xfb044040 | 0x04 | 5 | KEY_4 |
0xfa054040 | 0x05 | 6 | KEY_5 |
0xf9064040 | 0x06 | 7 | KEY_6 |
0xf8074040 | 0x07 | 8 | KEY_7 |
0xf7084040 | 0x08 | 9 | KEY_8 |
0xf6094040 | 0x09 | 10 | KEY_9 |
0xff004040 | 0x00 | 11 | KEY_0 |
0xb8474040 | 0x47 | fn_key_scancode | BTN_MOUSE |
0xf30c4040 | 0x0c | 24 | KEY_O ( <x] Kodi Player Process Info) |
remote.conf structure
Amlogic specifies following file structure:
One file: remote.conf
The factory code is inserted as factory_code = 0xCCCC0001
Mouse events are entered between mouse_begin
and mouse_end
Key events are entered between key_begin
and key_end
Repeat key events are entered between repeat_key_begin
and repeat_key_end
Entering the data in remote.conf
remote.conf
Bellow is the resulting remote.conf file:
# # ********************************************************************************************************* # this file is configuration for each factory remote device # # work_mode 0 :software mode 1 :hardware mode # repeat_enable 0 :disable repeat 1 :enable repeat # # factory_code each device has it's unique factory code. # pattern:custom_code(16bit)+index_code(16bit) # examble: 0xff000001 = 0xff00(custom cod) 0001 (index) # # release_delay unit:ms.release will report from kernel to user layer after this period of time # from press or repeat triggered. # # debug_enable 0 :debug disable 1 :debug disable # # SW MODE: # # bit_count how many bits in each frame # tw_leader_act time window for leader active # tw_bit0 time window for bit0 time. # tw_bit1 time window for bit1 time # tw_repeat_leader time window for repeat leader # # REG # # reg_base_gen set value for PREG_IR_DEC_BASE_GEN # reg_control set value for PREG_IR_DEC_CONTROL # reg_leader_act set value for PREG_IR_DEC_LEADER_ACTIVE # reg_leader_idle set value for PREG_IR_DEC_LEADER_IDLE # reg_repeat_leader set value for PREG_IR_DEC_REPEAT_IDLE # reg_bit0_time set value for PREG_IR_DEC_BIT0_TIME # # ********************************************************************************************************* # # amlogic NEC remote * Tanix Factory Remote for all TX devices # factory_code = 0x40400001 work_mode = 0 repeat_enable = 1 repeat_delay = 130 repeat_peroid = 120 release_delay = 20 debug_enable = 1 fn_key_scancode = 0x47 # MOUSE left_key_scancode = 0x10 # KEY_LEFT right_key_scancode = 0x11 # KEY_RIGHT up_key_scancode = 0x0b # KEY_UP down_key_scancode = 0x0e # KEY_DOWN ok_key_scancode = 0x0d # KEY_ENTER mouse_begin 0 0x10 # KEY_LEFT 1 0x11 # KEY_RIGHT 2 0x0b # KEY_UP 3 0x0e # KEY_DOWN mouse_end key_begin 0x4d 116 # KEY_POWER 0x43 113 # KEY_MUTE 0x17 114 # KEY_VOLUMEDOWN 0x18 115 # KEY-VOLUMEUP 0x0b 103 # KEY_UP 0x0e 108 # KEY_DOWN 0x10 105 # KEY_LEFT 0x11 106 # KEY_RIGHT 0x0d 97 # KEY_ENTER 0x1a 102 # KEY_HOME 0x45 125 # KEY_MENU 0x42 1 # KEY_BACK 0x01 2 # KEY_1 0x02 3 # KEY_2 0x03 4 # KEY_3 0x04 5 # KEY_4 0x05 6 # KEY_5 0x06 7 # KEY_6 0x07 8 # KEY_7 0x08 9 # KEY_8 0x09 10 # KEY_9 0x00 11 # KEY_0 # 0x00 xx # BTN_MOUSE IS MAPPED IN fn_key_scancode 0x0c 24 # KEY_O <X] (PLAYER PROCESS INFO) key_end repeat_key_begin 0x17 114 # KEY_VOLUMEDOWN 0x18 115 # KEY-VOLUMEUP 0x0b 103 # KEY_UP 0x0e 108 # KEY_DOWN 0x10 105 # KEY_LEFT 0x11 106 # KEY_RIGHT repeat_key_end