Markdown source

# Appunti su ir-keytable (no LIRC)

<abstract>
Appunti di uso sul ricevitore IR GPIO e l'utility ir-keytable (senza LIRC Linux Infrared Remote Control)
</abstract>

Gli step per abilitare il funzionamento di un telecomando a raggi infrarossi con ir-keytable sono i seguenti:

* collegare il ricevitore hardware (TSOP48xx)
* installare e configurare il driver PIO 
* installare la utility ir-keytable
* configurare uno o piu' telecomandi

## Installazione hardware

Lo schema mostrato e' riferito al modello TSOP con portante a 38 kHz:

<img src="TSOP48-RPI.png"  width="512px" height="auto">

<img src="TSOP48-RPI.jpg"  width="512px" height="auto">



## Installazione driver GPIO

Per l'utilizzo di LIRC con un ricevitore TSOP e' necessario aggiungere/scommentare
il seguente codice nel file /boot/config.txt

<pre class="terminal">
#
# https://forum.libreelec.tv/thread/4413-7-95-1-lirc-not-working-correct-on-rpi/
#
dtoverlay=gpio-ir,gpio_pin=23,gpio_pull=1,rc-map-name=rc-rc6-mce
</pre>

e fare il reboot del sistema.

## Installazione  utility ir-keytable
<pre class="terminal">

# Remove LIRC from your system
% sudo apt-get purge lirc

# If the /etc/lirc folder exists on your system, remove that as well
% sudo rm -rf /etc/lirc

# install ir-keytable
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo apt-get install ir-keytable -y
</pre>

## Configurazione telecomandi

ir-keytable e' un sistema molto piu' semplice quando comparato con LIRC, 
non richiede installazione di device drivers particolari perche' usa quelli del kernel mainstream 
che su RPI sono inclusi ed i cui DTS sono gia' presenti e, come gia' visto, configurabili su /boot/config.txt .

Il difetto principale e' che , rispetto a LIRC, il numero dei telecomandi gia' presenti e' molto ridotto e quindi, 
con tutta probabilita', occorrera' configurarli da zero.


### Lista protocoli supportati

<pre class="terminal">
pi@rpi-iw0hdv:~ $ ir-keytable -p
ir-keytable: option requires an argument -- 'p'
Try `ir-keytable --help' or `ir-keytable --usage' for more information.
Found /sys/class/rc/rc0/ (/dev/input/event0) with:
	Driver gpio-rc-recv, table rc-rc6-mce
	Supported protocols: unknown other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp 
</pre>




### Lista telecomandi

<pre class="terminal">
pi@rpi-iw0hdv:~ $ ls /lib/udev/rc_keymaps/
a800                      behold               dvico_portable      kworld_315u              pinnacle_color          terratec_cinergy_s2_hd
adstech_dvb_t_pci         behold_columbus      em_terratec         kworld_pc150u            pinnacle_grey           terratec_cinergy_xs
af9005                    budget_ci_old        encore_enltv        kworld_plus_tv_analog    pinnacle_pctv_hd        terratec_slim
alink_dtu_m               cec                  encore_enltv2       leadtek_y04g0051         pixelview               terratec_slim_2
allwinner_ba10_tv_box     cinergy              encore_enltv_fm53   lme2510                  pixelview_002t          tevii_nec
allwinner_i12_a20_tv_box  cinergy_1400         evga_indtube        manli                    pixelview_mk12          tivo
anysee                    cinergyt2            eztv                medion_x10               pixelview_new           total_media_in_hand
apac_viewcomp             d680_dmb             flydvb              medion_x10_digitainer    powercolor_real_angel   total_media_in_hand_02
asus_pc39                 delock_61959         flyvideo            medion_x10_or2x          proteus_2309            trekstor
asus_ps3_100              dib0700_nec          fusionhdtv_mce      megasky                  purpletv                tt_1500
ati_tv_wonder_hd_600      dib0700_rc5          gadmei_rm008z       msi_digivox_ii           pv951                   tvwalkertwin
ati_x10                   dibusb               genius_tvgo_a11mce  msi_digivox_iii          rc6_mce                 twinhan_dtv_cab_ci
avermedia                 digitalnow_tinytwin  gotview7135         msi_tvanywhere           real_audio_220_32_keys  twinhan_vp1027_dvbs
avermedia_a16d            digittrade           haupp               msi_tvanywhere_plus      reddo                   videomate_k100
avermedia_cardbus         digitv               hauppauge           nebula                   snapstream_firefly      videomate_s350
avermedia_dvbt            dm1105_nec           imon_mce            nec_terratec_cinergy_xs  streamzap               videomate_tv_pvr
avermedia_m135a           dntv_live_dvb_t      imon_pad            norwood                  su3000                  vp702x
avermedia_m733a_rm_k6     dntv_live_dvbt_pro   iodata_bctv7e       npgtech                  tbs_nec                 vp7045
avermedia_rm_ks           dtt200u              it913x_v1           opera1                   technisat_ts35          winfast
avertv_303                dvbsky               it913x_v2           pctv_sedna               technisat_usb2          winfast_usbii_deluxe
azurewave_ad_tu700        dvico_mce            kaiomy              pinnacle310e             terratec_cinergy_c_pci  wobo_i5
</pre>

### Test telecomando

Purtroppo per poter appurare quale protocollo supportoa il telecomando sotto test 
occorre andare per esclusione, abilitando dapprima tutti i protocolli disponibili:

<pre class="terminal">
pi@rpi-iw0hdv:~ $ sudo ir-keytable -v -t -p rc-5,rc-5-sz,jvc,sony,nec,sanyo,mce_kbd,rc-6,sharp,xmp
Found device /sys/class/rc/rc0/
Input sysfs node is /sys/class/rc/rc0/input0/
Event sysfs node is /sys/class/rc/rc0/input0/event0/
Parsing uevent /sys/class/rc/rc0/input0/event0/uevent
/sys/class/rc/rc0/input0/event0/uevent uevent MAJOR=13
/sys/class/rc/rc0/input0/event0/uevent uevent MINOR=64
/sys/class/rc/rc0/input0/event0/uevent uevent DEVNAME=input/event0
Parsing uevent /sys/class/rc/rc0/uevent
/sys/class/rc/rc0/uevent uevent NAME=rc-rc6-mce
/sys/class/rc/rc0/uevent uevent DRV_NAME=gpio-rc-recv
input device is /dev/input/event0
/sys/class/rc/rc0/protocols protocol other (disabled)
/sys/class/rc/rc0/protocols protocol unknown (disabled)
/sys/class/rc/rc0/protocols protocol rc-5 (disabled)
/sys/class/rc/rc0/protocols protocol nec (disabled)
/sys/class/rc/rc0/protocols protocol rc-6 (disabled)
/sys/class/rc/rc0/protocols protocol jvc (disabled)
/sys/class/rc/rc0/protocols protocol sony (enabled)
/sys/class/rc/rc0/protocols protocol rc-5-sz (disabled)
/sys/class/rc/rc0/protocols protocol sanyo (disabled)
/sys/class/rc/rc0/protocols protocol sharp (disabled)
/sys/class/rc/rc0/protocols protocol mce_kbd (disabled)
/sys/class/rc/rc0/protocols protocol xmp (disabled)
/sys/class/rc/rc0/protocols protocol cec (disabled)
/sys/class/rc/rc0/protocols protocol lirc (enabled)
Opening /dev/input/event0
Input Protocol version: 0x00010001
Protocols changed to rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp 
Testing events. Please, press CTRL-C to abort.
</pre>

Premendo i tasti del telecomando vengono visualizzati  i codici ricevuti (questo nel caso il protocollo sia supportato).
Eliminando i protocolli uno ad uno , si riesce ad indentificare quello corretto (nel nostro esempio il sony)..

<pre class="terminal">
...
...
1508273202.082676: event type EV_MSC(0x04): scancode = 0x1f0026
1508273202.082676: event type EV_SYN(0x00).
</pre>

se, come nell'esempio, non compare il nome del tasto, la tabella di decodifica non supporta il telecomando.La cosa piu' semplice e' cercare 
se in qualcuno dei telecomandi supportati compare lo scancode:

<pre class="terminal">
grep -iH '0x1f0026' /lib/udev/rc_keymaps/*
</pre>

Se la ricerca e' vana, occorre creare autonomamnnete la mappa scan scode -> tasto, premendo tutti i tasti di interesse del proprio telecomando
ed annotando 


### Creazione file di configurazione

Il formato del file di map e' il seguente:

<pre class="terminal">
pi@rpi-iw0hdv:~ $ cat robophilo.txt
# table robophilo, type: sony
0x1f0026 KEY_1
0x1f0027 KEY_2
0x1f0028 KEY_3
0x1f0029 KEY_4
0x1f002a KEY_5
0x1f002b KEY_6
0x1f002c KEY_7
0x1f002d KEY_8
0x1f002e KEY_9
0x1f002f KEY_SERVO
0x1f0030 KEY_0
0x1f0031 KEY_POSITION
</pre>

la prina riga contiene il nome simbolico del telecomda ad il protocollo, seguono le corrispomdeze scancode / tasto.

Tutti i codici tasto ammessi sono visualizzabili con il seguente comando:

<pre class="terminal">
pi@rpi-iw0hdv:~ $ irrecord -l
KEY_0
KEY_102ND
KEY_10CHANNELSDOWN
KEY_10CHANNELSUP
KEY_1
KEY_2
KEY_3
KEY_4
KEY_5
KEY_6
KEY_7
KEY_8
KEY_9
KEY_A
KEY_AB
KEY_ADDRESSBOOK
KEY_AGAIN
KEY_ALS_TOGGLE
KEY_ALTERASE
KEY_ANGLE
KEY_APOSTROPHE
KEY_APPSELECT
KEY_ARCHIVE
KEY_ATTENDANT_OFF
KEY_ATTENDANT_ON
KEY_ATTENDANT_TOGGLE
KEY_AUDIO
KEY_AUX
KEY_B
KEY_BACK
KEY_BACKSLASH
KEY_BACKSPACE
KEY_BASSBOOST
KEY_BATTERY
KEY_BLUE
KEY_BLUETOOTH
KEY_BOOKMARKS
KEY_BREAK
KEY_BRIGHTNESS_AUTO
KEY_BRIGHTNESS_CYCLE
KEY_BRIGHTNESSDOWN
KEY_BRIGHTNESS_MAX
KEY_BRIGHTNESS_MIN
KEY_BRIGHTNESSUP
KEY_BRL_DOT10
KEY_BRL_DOT1
KEY_BRL_DOT2
KEY_BRL_DOT3
KEY_BRL_DOT4
KEY_BRL_DOT5
KEY_BRL_DOT6
KEY_BRL_DOT7
KEY_BRL_DOT8
KEY_BRL_DOT9
KEY_BUTTONCONFIG
KEY_C
KEY_CALC
KEY_CALENDAR
KEY_CAMERA
KEY_CAMERA_DOWN
KEY_CAMERA_FOCUS
KEY_CAMERA_LEFT
KEY_CAMERA_RIGHT
KEY_CAMERA_UP
KEY_CAMERA_ZOOMIN
KEY_CAMERA_ZOOMOUT
KEY_CANCEL
KEY_CAPSLOCK
KEY_CD
KEY_CHANNEL
KEY_CHANNELDOWN
KEY_CHANNELUP
KEY_CHAT
KEY_CLEAR
KEY_CLOSE
KEY_CLOSECD
KEY_COFFEE
KEY_COMMA
KEY_COMPOSE
KEY_COMPUTER
KEY_CONFIG
KEY_CONNECT
KEY_CONTEXT_MENU
KEY_CONTROLPANEL
KEY_COPY
KEY_CUT
KEY_CYCLEWINDOWS
KEY_D
KEY_DASHBOARD
KEY_DATABASE
KEY_DEL_EOL
KEY_DEL_EOS
KEY_DELETE
KEY_DELETEFILE
KEY_DEL_LINE
KEY_DIGITS
KEY_DIRECTION
KEY_DIRECTORY
KEY_DISPLAY_OFF
KEY_DISPLAYTOGGLE
KEY_DOCUMENTS
KEY_DOLLAR
KEY_DOT
KEY_DOWN
KEY_DVD
KEY_E
KEY_EDIT
KEY_EDITOR
KEY_EJECTCD
KEY_EJECTCLOSECD
KEY_EMAIL
KEY_END
KEY_ENTER
KEY_EPG
KEY_EQUAL
KEY_ESC
KEY_EURO
KEY_EXIT
KEY_F10
KEY_F11
KEY_F12
KEY_F13
KEY_F14
KEY_F15
KEY_F1
KEY_F16
KEY_F17
KEY_F18
KEY_F19
KEY_F20
KEY_F21
KEY_F22
KEY_F23
KEY_F24
KEY_F2
KEY_F
KEY_F3
KEY_F4
KEY_F5
KEY_F6
KEY_F7
KEY_F8
KEY_F9
KEY_FASTFORWARD
KEY_FAVORITES
KEY_FILE
KEY_FINANCE
KEY_FIND
KEY_FIRST
KEY_FN
KEY_FN_1
KEY_FN_2
KEY_FN_B
KEY_FN_D
KEY_FN_E
KEY_FN_ESC
KEY_FN_F
KEY_FN_F10
KEY_FN_F1
KEY_FN_F11
KEY_FN_F12
KEY_FN_F2
KEY_FN_F3
KEY_FN_F4
KEY_FN_F5
KEY_FN_F6
KEY_FN_F7
KEY_FN_F8
KEY_FN_F9
KEY_FN_S
KEY_FORWARD
KEY_FORWARDMAIL
KEY_FRAMEBACK
KEY_FRAMEFORWARD
KEY_FRONT
KEY_G
KEY_GAMES
KEY_GOTO
KEY_GRAPHICSEDITOR
KEY_GRAVE
KEY_GREEN
KEY_H
KEY_HANGEUL
KEY_HANJA
KEY_HELP
KEY_HENKAN
KEY_HIRAGANA
KEY_HOME
KEY_HOMEPAGE
KEY_HP
KEY_I
KEY_IMAGES
KEY_INFO
KEY_INSERT
KEY_INS_LINE
KEY_ISO
KEY_J
KEY_JOURNAL
KEY_K
KEY_KATAKANA
KEY_KATAKANAHIRAGANA
KEY_KBDILLUMDOWN
KEY_KBDILLUMTOGGLE
KEY_KBDILLUMUP
KEY_KBDINPUTASSIST_ACCEPT
KEY_KBDINPUTASSIST_CANCEL
KEY_KBDINPUTASSIST_NEXT
KEY_KBDINPUTASSIST_NEXTGROUP
KEY_KBDINPUTASSIST_PREV
KEY_KBDINPUTASSIST_PREVGROUP
KEY_KEYBOARD
KEY_KP0
KEY_KP1
KEY_KP2
KEY_KP3
KEY_KP4
KEY_KP5
KEY_KP6
KEY_KP7
KEY_KP8
KEY_KP9
KEY_KPASTERISK
KEY_KPCOMMA
KEY_KPDOT
KEY_KPENTER
KEY_KPEQUAL
KEY_KPJPCOMMA
KEY_KPLEFTPAREN
KEY_KPMINUS
KEY_KPPLUS
KEY_KPPLUSMINUS
KEY_KPRIGHTPAREN
KEY_KPSLASH
KEY_L
KEY_LANGUAGE
KEY_LAST
KEY_LEFT
KEY_LEFTALT
KEY_LEFTBRACE
KEY_LEFTCTRL
KEY_LEFTMETA
KEY_LEFTSHIFT
KEY_LIGHTS_TOGGLE
KEY_LINEFEED
KEY_LIST
KEY_LOGOFF
KEY_M
KEY_MACRO
KEY_MAIL
KEY_MAX
KEY_MEDIA
KEY_MEDIA_REPEAT
KEY_MEMO
KEY_MENU
KEY_MESSENGER
KEY_MHP
KEY_MICMUTE
KEY_MINUS
KEY_MODE
KEY_MOVE
KEY_MP3
KEY_MSDOS
KEY_MUHENKAN
KEY_MUTE
KEY_N
KEY_NEW
KEY_NEWS
KEY_NEXT
KEY_NEXTSONG
KEY_NUMERIC_0
KEY_NUMERIC_1
KEY_NUMERIC_2
KEY_NUMERIC_3
KEY_NUMERIC_4
KEY_NUMERIC_5
KEY_NUMERIC_6
KEY_NUMERIC_7
KEY_NUMERIC_8
KEY_NUMERIC_9
KEY_NUMERIC_POUND
KEY_NUMERIC_STAR
KEY_NUMLOCK
KEY_O
KEY_OK
KEY_OPEN
KEY_OPTION
KEY_P
KEY_PAGEDOWN
KEY_PAGEUP
KEY_PASTE
KEY_PAUSE
KEY_PAUSECD
KEY_PC
KEY_PHONE
KEY_PLAY
KEY_PLAYCD
KEY_PLAYER
KEY_PLAYPAUSE
KEY_POWER
KEY_POWER2
KEY_PRESENTATION
KEY_PREVIOUS
KEY_PREVIOUSSONG
KEY_PRINT
KEY_PROG1
KEY_PROG2
KEY_PROG3
KEY_PROG4
KEY_PROGRAM
KEY_PROPS
KEY_PVR
KEY_Q
KEY_QUESTION
KEY_R
KEY_RADIO
KEY_RECORD
KEY_RED
KEY_REDO
KEY_REFRESH
KEY_REPLY
KEY_RESERVED
KEY_RESTART
KEY_REWIND
KEY_RFKILL
KEY_RIGHT
KEY_RIGHTALT
KEY_RIGHTBRACE
KEY_RIGHTCTRL
KEY_RIGHTMETA
KEY_RIGHTSHIFT
KEY_RO
KEY_S
KEY_SAT
KEY_SAT2
KEY_SAVE
KEY_SCALE
KEY_SCREEN
KEY_SCREENSAVER
KEY_SCROLLDOWN
KEY_SCROLLLOCK
KEY_SCROLLUP
KEY_SEARCH
KEY_SELECT
KEY_SEMICOLON
KEY_SEND
KEY_SENDFILE
KEY_SETUP
KEY_SHOP
KEY_SHUFFLE
KEY_SLASH
KEY_SLEEP
KEY_SLOW
KEY_SOUND
KEY_SPACE
KEY_SPELLCHECK
KEY_SPORT
KEY_SPREADSHEET
KEY_STOP
KEY_STOPCD
KEY_SUBTITLE
KEY_SUSPEND
KEY_SWITCHVIDEOMODE
KEY_SYSRQ
KEY_T
KEY_TAB
KEY_TAPE
KEY_TASKMANAGER
KEY_TEEN
KEY_TEXT
KEY_TIME
KEY_TITLE
KEY_TOUCHPAD_OFF
KEY_TOUCHPAD_ON
KEY_TOUCHPAD_TOGGLE
KEY_TUNER
KEY_TV
KEY_TV2
KEY_TWEN
KEY_U
KEY_UNDO
KEY_UNKNOWN
KEY_UP
KEY_UWB
KEY_V
KEY_VCR
KEY_VCR2
KEY_VENDOR
KEY_VIDEO
KEY_VIDEO_NEXT
KEY_VIDEOPHONE
KEY_VIDEO_PREV
KEY_VOICECOMMAND
KEY_VOICEMAIL
KEY_VOLUMEDOWN
KEY_VOLUMEUP
KEY_W
KEY_WAKEUP
KEY_WLAN
KEY_WORDPROCESSOR
KEY_WPS_BUTTON
KEY_WWAN
KEY_WWW
KEY_X
KEY_XFER
KEY_Y
KEY_YELLOW
KEY_YEN
KEY_Z
KEY_ZENKAKUHANKAKU
KEY_ZOOM
KEY_ZOOMIN
KEY_ZOOMOUT
KEY_ZOOMRESET
BTN_0
BTN_1
BTN_2
BTN_3
BTN_4
BTN_5
BTN_6
BTN_7
BTN_8
BTN_9
BTN_BACK
BTN_BASE
BTN_BASE2
BTN_BASE3
BTN_BASE4
BTN_BASE5
BTN_BASE6
BTN_C
BTN_DEAD
BTN_DIGI
BTN_DPAD_DOWN
BTN_DPAD_LEFT
BTN_DPAD_RIGHT
BTN_DPAD_UP
BTN_EAST
BTN_EXTRA
BTN_FORWARD
BTN_GAMEPAD
BTN_GEAR_DOWN
BTN_GEAR_UP
BTN_JOYSTICK
BTN_LEFT
BTN_MIDDLE
BTN_MISC
BTN_MODE
BTN_MOUSE
BTN_NORTH
BTN_PINKIE
BTN_RIGHT
BTN_SELECT
BTN_SIDE
BTN_SOUTH
BTN_START
BTN_STYLUS
BTN_STYLUS2
BTN_TASK
BTN_THUMB
BTN_THUMB2
BTN_THUMBL
BTN_THUMBR
BTN_TL
BTN_TL2
BTN_TOOL_AIRBRUSH
BTN_TOOL_BRUSH
BTN_TOOL_DOUBLETAP
BTN_TOOL_FINGER
BTN_TOOL_LENS
BTN_TOOL_MOUSE
BTN_TOOL_PEN
BTN_TOOL_PENCIL
BTN_TOOL_QUADTAP
BTN_TOOL_QUINTTAP
BTN_TOOL_RUBBER
BTN_TOOL_TRIPLETAP
BTN_TOP
BTN_TOP2
BTN_TOUCH
BTN_TR
BTN_TR2
BTN_TRIGGER
BTN_TRIGGER_HAPPY
BTN_TRIGGER_HAPPY10
BTN_TRIGGER_HAPPY1
BTN_TRIGGER_HAPPY11
BTN_TRIGGER_HAPPY12
BTN_TRIGGER_HAPPY13
BTN_TRIGGER_HAPPY14
BTN_TRIGGER_HAPPY15
BTN_TRIGGER_HAPPY16
BTN_TRIGGER_HAPPY17
BTN_TRIGGER_HAPPY18
BTN_TRIGGER_HAPPY19
BTN_TRIGGER_HAPPY20
BTN_TRIGGER_HAPPY2
BTN_TRIGGER_HAPPY21
BTN_TRIGGER_HAPPY22
BTN_TRIGGER_HAPPY23
BTN_TRIGGER_HAPPY24
BTN_TRIGGER_HAPPY25
BTN_TRIGGER_HAPPY26
BTN_TRIGGER_HAPPY27
BTN_TRIGGER_HAPPY28
BTN_TRIGGER_HAPPY29
BTN_TRIGGER_HAPPY30
BTN_TRIGGER_HAPPY3
BTN_TRIGGER_HAPPY31
BTN_TRIGGER_HAPPY32
BTN_TRIGGER_HAPPY33
BTN_TRIGGER_HAPPY34
BTN_TRIGGER_HAPPY35
BTN_TRIGGER_HAPPY36
BTN_TRIGGER_HAPPY37
BTN_TRIGGER_HAPPY38
BTN_TRIGGER_HAPPY39
BTN_TRIGGER_HAPPY40
BTN_TRIGGER_HAPPY4
BTN_TRIGGER_HAPPY5
BTN_TRIGGER_HAPPY6
BTN_TRIGGER_HAPPY7
BTN_TRIGGER_HAPPY8
BTN_TRIGGER_HAPPY9
BTN_WEST
BTN_WHEEL
BTN_Z
</pre>

nell' esempio gli ultimi tre codici non esistono e non vengono riconosciuti, occorrera' quindi adattarsi all'uso di codici diversi.


### Installazione file di configurazione


<pre class="bash">

# display the existing table
ir-keytable --read
# delete the existing table
ir-keytable -c

# load the new table from local file
sudo ir-keytable -c -p sony -w ./robophilo.txt

# check if the table is really there
pi@rpi-iw0hdv:~ $ ir-keytable -r
scancode 0x1f0026 = KEY_1 (0x02)
scancode 0x1f0027 = KEY_2 (0x03)
scancode 0x1f0028 = KEY_3 (0x04)
scancode 0x1f0029 = KEY_4 (0x05)
scancode 0x1f002a = KEY_5 (0x06)
scancode 0x1f002b = KEY_6 (0x07)
scancode 0x1f002c = KEY_7 (0x08)
scancode 0x1f002d = KEY_8 (0x09)
scancode 0x1f002e = KEY_9 (0x0a)
scancode 0x1f0030 = KEY_0 (0x0b)
Enabled protocols: lirc sony 

# test  the file
sudo ir-keytable -v -t -p sony
Found device /sys/class/rc/rc0/
Input sysfs node is /sys/class/rc/rc0/input0/
Event sysfs node is /sys/class/rc/rc0/input0/event0/
Parsing uevent /sys/class/rc/rc0/input0/event0/uevent
/sys/class/rc/rc0/input0/event0/uevent uevent MAJOR=13
/sys/class/rc/rc0/input0/event0/uevent uevent MINOR=64
/sys/class/rc/rc0/input0/event0/uevent uevent DEVNAME=input/event0
Parsing uevent /sys/class/rc/rc0/uevent
/sys/class/rc/rc0/uevent uevent NAME=rc-rc6-mce
/sys/class/rc/rc0/uevent uevent DRV_NAME=gpio-rc-recv
input device is /dev/input/event0
/sys/class/rc/rc0/protocols protocol other (disabled)
/sys/class/rc/rc0/protocols protocol unknown (disabled)
/sys/class/rc/rc0/protocols protocol rc-5 (disabled)
/sys/class/rc/rc0/protocols protocol nec (disabled)
/sys/class/rc/rc0/protocols protocol rc-6 (disabled)
/sys/class/rc/rc0/protocols protocol jvc (disabled)
/sys/class/rc/rc0/protocols protocol sony (enabled)
/sys/class/rc/rc0/protocols protocol rc-5-sz (disabled)
/sys/class/rc/rc0/protocols protocol sanyo (disabled)
/sys/class/rc/rc0/protocols protocol sharp (disabled)
/sys/class/rc/rc0/protocols protocol mce_kbd (disabled)
/sys/class/rc/rc0/protocols protocol xmp (disabled)
/sys/class/rc/rc0/protocols protocol cec (disabled)
/sys/class/rc/rc0/protocols protocol lirc (enabled)
Opening /dev/input/event0
Input Protocol version: 0x00010001
Protocols changed to sony 
Testing events. Please, press CTRL-C to abort.

1508275306.220144: event type EV_MSC(0x04): scancode = 0x1f0026
1508275306.220144: event type EV_KEY(0x01) <b>key_down: KEY_1(0x0002)</b>
1508275306.220144: event type EV_SYN(0x00).
1508275306.265670: event type EV_MSC(0x04): scancode = 0x1f0026
1508275306.265670: event type EV_SYN(0x00).
1508275306.311174: event type EV_MSC(0x04): scancode = 0x1f0026
1508275306.311174: event type EV_SYN(0x00).
1508275306.462677: event type EV_MSC(0x04): scancode = 0x1f0026
1508275306.462677: event type EV_SYN(0x00).
1508275306.722653: event type EV_KEY(0x01) <b>key_down: KEY_1(0x0002)</b>
1508275306.722653: event type EV_SYN(0x00).
1508275306.722675: event type EV_KEY(0x01) <b>key_up: KEY_1(0x0002)</b>
1508275306.722675: event type EV_SYN(0x00).
1508275306.752903: event type EV_MSC(0x04): scancode = 0x1f002a
1508275306.752903: event type EV_KEY(0x01) <b>key_down: KEY_5(0x0006)</b>
1508275306.752903: event type EV_SYN(0x00).
1508275306.798392: event type EV_MSC(0x04): scancode = 0x1f002a
1508275306.798392: event type EV_SYN(0x00).
1508275306.843903: event type EV_MSC(0x04): scancode = 0x1f002a
1508275306.843903: event type EV_SYN(0x00).
1508275306.992695: event type EV_MSC(0x04): scancode = 0x1f002a
1508275306.992695: event type EV_SYN(0x00).
1508275307.252653: event type EV_KEY(0x01) <b>key_up: KEY_5(0x0006)</b>
1508275307.252653: event type EV_SYN(0x00).
1508275307.363014: event type EV_MSC(0x04): scancode = 0x1f002b
1508275307.363014: event type EV_KEY(0x01) <b>key_down: KEY_6(0x0007)</b>
1508275307.363014: event type EV_SYN(0x00).
1508275307.408518: event type EV_MSC(0x04): scancode = 0x1f002b
1508275307.408518: event type EV_SYN(0x00).
1508275307.552700: event type EV_MSC(0x04): scancode = 0x1f002b
1508275307.552700: event type EV_SYN(0x00).
1508275307.812654: event type EV_KEY(0x01) <b>key_up: KEY_6(0x0007)</b>
1508275307.812654: event type EV_SYN(0x00).

</pre>



Link sull'argomento:

* [IR receiver data sheet](http://www.farnell.com/datasheets/30500.pdf)
* [How to Control the GPIO on a Raspberry Pi with an IR Remote](http://ozzmaker.com/how-to-control-the-gpio-on-a-raspberry-pi-with-an-ir-remote/)
* [IR-KEYTABLE without LIRC / LIRCD](https://forum.libreelec.tv/thread/4210-ir-keytable-without-lirc-lircd/)
* [Remote control media player without lirc using ir-keytable](https://madaboutbrighton.net/articles/2015/remote-control-media-player-without-lirc-using-ir-keymap)
* [HOWTO: Get MCE USB remote working in Ubuntu without using LIRC for MythTV or Kodi (xbmc)](https://pdxpastimes.blogspot.it/2014/11/howto-get-mce-usb-remote-working-in.html)
* [MythTV: Use All Buttons of Your Remote Control - Without LIRC](http://atterer.org/mythtv-xmbc-remote-control-without-lirc)

@include='bio_andrea_montefusco'