summaryrefslogtreecommitdiff
path: root/src/SW/usb-ir-toy-lirc/document.it.rest.txt
blob: 95cda2dd7a1627df9b23ec5c81b5f1478e02ddf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
=================================
Come usare lo USB IR Toy con LIRC
=================================
:CreationDate: 2012-10-08 10:49:07
:Id: SW/usb-ir-toy-lirc
:tags: - software
       - configs
 
Mi son comprato un `telecomando universale a forma di cacciavite
sonico <https://www.thewandcompany.com/eleventh-doctors-sonic/>`_ (il
sito è orrendo e difficile da navigare…). Chiaramente voglio poterci
controllare il mio PC!
 
Per farlo, mi serviva un ricevitore IR e `LIRC
<http://www.lirc.org/>`_. Visto che mi piace complicarmi la vita, ho
comprato lo `USB Infrared Toy
<http://dangerousprototypes.com/docs/USB_Infrared_Toy>`_ da `Dangerous
Prototypes <http://dangerousprototypes.com/>`_, che permette di
inviare e ricevere qualsiasi sequenza di impulsi a infrarossi.
 
Convincere i tre pezzi (telecomando, Toy, LIRC) a funzionare assieme è
stato più complicato di quel che avrei gradito, per cui descrivo qua
quel che ho fatto, per aiutare i prossimi.
 
Aggiornare il firmware
======================
 
Il vostro IR Toy ha probabilmente una versione vecchia del
firmware. Se usate Windows, le `instruzioni fornite
<http://dangerousprototypes.com/docs/USB_IR_Toy_firmware_update>`_
potrebbero anche funzionare; altrimenti, bisogna studiarci un po'. I
sorgenti del programma ``fw_update`` che potete ottenere da quelle
pagine (o dal `repository Subversion
<http://dangerous-prototypes-open-hardware.googlecode.com/svn/trunk/Bootloaders/USB-HID-Diolan/18F24J50/fw_update/>`_)
non compilano neppure (si sono "scordati" di includere metà degli
header che servono), e quando riuscite a compilarli, vanno in
segfault. L'utente "JessH" dei forum di Dangerous Prototypes `ha
postato una versione che funziona
<http://dangerousprototypes.com/forum/viewtopic.php?t=3697&p=37398#p37371>`_
(`questa è la patch <JessH.patch>`_ se la volete vedere, dovrebbe
applicarsi alla versione SVN).
 
.. note::
 
  Sì, lo so che sto puntando ai sorgenti per il 18F24J50, ma il chip
  sul IR Toy dice "18F2550". Che ci posso fare, così funziona!
 
Dopo averlo compilato, sono finalmente riuscito ad aggiornare il
firmware alla versione 22::
 
  $ echo '$' > /dev/ttyACM0
  $ ./fw_update  -e -w -v -m all -vid 0x04D8 -pid 0xFD0B \
      -ix ~/src/dangerous-prototypes-open-hardware/USB_IR_Toy/package/firmware/USBIRToy.v22.hex
 
Stacca, ri-attacca, e siamo pronti.
 
Patch per LIRC
==============
 
.. note::
 
   ``lircd`` 0.10 supporta nativamente lo "USB IR Toy", usando il
   driver ``irtoy``
 
LIRC può usare lo IR Toy in modalità compatibile ``irman``, ma a me
serviva la funzione completa di invio segnali, per programmare il
cacciavite. Ho trovato `una patch per aggiungere il supporto completo
<http://sourceforge.net/mailarchive/forum.php?thread_name=4ebf97df-17f8-48bb-ba65-32e4b9983ac4%40devleno&forum_name=lirc-list>`_,
grazie a Peter Kooiman. Se usate Gentoo, potete aggiungere `la mia
overlay <http://www.thenautilus.net/cgit/gentoo-overlay/>`_ e
installare `LIRC già modificato
<http://www.thenautilus.net/cgit/gentoo-overlay/tree/app-misc/lirc/>`_.
 
Configurare LIRC
================
 
Questo dovrebbe essere scritto da qualche parte, ma non sono riuscito
a trovare usa spiegazione usabile, per cui mostro quel che ho fatto:
 
1) mi son procurato un set completo di codici Philips RC-5 dal
   `repository di telecomandi LIRC
   <http://lirc.sourceforge.net/remotes/rc-5/>`_
 
2) ho assegnato, arbitrariamente, i primi 39 codici ai 13 gesti su 3
   banchi di memoria del cacciavite::
 
     begin remote
      name  sonic
      # snip
      begin codes
        b1_tap_top    0x1000
        b1_tap_left   0x1001
      #etc etc
 
Programmare il telecomando
==========================
 
Ho scritto `un semplice programma Perl per inviare i codici IR
<send>`_. Eseguitelo mentre ``lircd`` è in esecuzione, e con
``irsend`` nel path. Quando dice ``Ready to send $something``, premete
"enter" per inviare il codice, ``a`` per tornare al codice precedente
(utile se il cacciavite non l'ha ricevuto), ``n`` per saltare al
codice successivo senza inviare nulla.
 
Ho messo il cacciavite in modalità programmazione, ho eseguito i 39
gesti uno alla volta, e li ho programmati tutti. LIRC ora usa nomi
sensati per tutti e 39 i gesti.
 
Usarlo
======
 
Finalmente, ho ri-compilato `vlc <http://www.videolan.org/>`_ col
supporto LIRC, e ho scritto `un |lircrc| per vlc <lircrc>`_. A questo
punto, posso controllare ``vlc`` col cacciavite sonico!
 
.. |lircrc| replace:: ``~/.lircrc``