3 novembre 2007

Fonera en récepteur infrarouge

Tags : , ,

posté dans Hack & Bidouille |

Dans un précédent article, je vous parlais de la nouvelle solution pour mettre en place un récepteur IR compatible Lirc sous GNU/Linux sans utiliser de module kernel via un petit montage utilisant un AVR Attiny2313. Utilisant une simple ligne RX en TTL il devient possible de l'utiliser sur un système embarqué disposant d'un port série simple (RX/TX en TTL 0/5V), j'ai nommé : La Fonera !

La solution est toute simple. Puisque le montage AVRLirc utilise une ligne RX il est possible de le connecter au port série normalement utilisé pour la console série de La Fonera. Le connecteur dans le routeur se présent ainsi :

Il suffit de connecter la patte 3 de l'AVR sur RX sans oublier la masse et récupérer l'alimentation +5V sur le circuit du routeur, tout près du connecteur d'alimentation. Le Vcc du connecteur console ne délivre qu'une tension de 3.3V.

Il faut ensuite construire un firmware OpenWRT et le configurer pour ne plus utiliser la console série. Plusieurs éléments de configuration doivent être changés.

  • Configurer le kernel via make kernel_menuconfig puis retirer des arguments par défaut passés au kernel la mention de la console série (Kernel Hacking / Default kernel command string).
  • Toujours dans la configuration du kernel, supprimer la console série : Device Drivers / Character devices / Serial drivers / Console on 8250/16550 and compatible serial port doit être désactivé.
  • Désactiver la console série dans l'inittab du firmware. Il suffit de supprimer la ligne concernant ttyS0 dans package/base-files/files/etc/inittab.

Une fois le firmware construit et installé sur La Fonera, le seul moyen de contacter le système est Telnet. Laissez démarrer le système (la première fois cela met un peu de temps en raison de l'effacement de la Flash non utilisée), connectez-vous en Telnet et définissez un mot de passe pour l'utilisateur root. Ceci aura pour effet d'activer le serveur SSH et de désactiver telnetd.

Configurez le système pour qu'ipkg puisse être utilisé correctement puis installer avrlirc2udp, le client. Voici un paquet binaire pour Kamilaze 7.09 et un tarball des sources à placer dans le répertoire package de l'arborescence OpenWrt :

Il ne vous reste plus qu'à configurer Lircd sur la machine hôte de votre choix en réception UDP (comme dans le billet précédent sur le sujet) et, sur le routeur d'utiliser :

avrlirc2udp -H -t /dev/ttyS0 -h 192.168.0.1

Vous disposez maintenant d'un routeur capable de recevoir des signaux IR et de les transmettre au serveur Lirc via une liaison filaire ou Wifi.

RedBoot reste utilisable au démarrage du routeur et le fait qu'il envoi des données sur le port série n'est pas un problème. La ligne TX du port du routeur n'est pas connecté. Il en va tout autrement s'il s'agit d'utiliser ce port série pour autre chose comme un modem ou un afficheur LCD. Sans doute la prochaine étape du voyage dans le hack de La Fonera.

PS : Si, comme moi, vous avez reconfiguré RedBoot pour un délai plus important (10s) il est possible de se passer du port série. Au moment du démarrage du routeur, RedBoot est en attente de connexion sur le port 9000 (à condition qu'il soit configuré correctement, IP, masque, etc). 10 secondes laissent largement le temps de se connecter avec un telnet. Malheureusement, je n'ai pas trouvé d'autre moyen pour envoyer un ^C que de faire :

% cd /tmp
% cat > break
[CTRL+V][CTRL+C][Entrée]
[CTRL+D]

puis

% nc -vvv 192.168.0.12 9000 < break; telnet 192.168.0.12 9000

C'est pas beau, il y a sûrement mieux, mais ça marche.

Article posté on Samedi, 3 novembre 2007 à 19:25 dans Hack & Bidouille. Vous pouvez suivre les commentaires sur cet article via un feed RSS 2.0. Commentaires et pings fermés.

Il y a actuellement 13 réponses pour “Fonera en récepteur infrarouge”

  1. 1 Le 3 novembre 2007, RoN à écrit :

    Ralala c’est dingue ce qu’elle peut faire cette fonera !

    Super interessant ton blog ;)

    Tu utilise la télécomande infrarouge tout les jours pour linux ?

  2. 2 Le 3 novembre 2007, Lefinnois à écrit :

    Disons que c’est pratique avec les players multimédias par exemple. J’ai aussi pas mal automatisé de choses, comme un notificateur sonore pour le décompte de mails non lu. Un bouton sur la télécommande et bip bip, j’ai deux mails. Pratique.

  3. 3 Le 4 novembre 2007, RoN à écrit :

    Faudra que j’essaye j’ai une télécomande en rab en plus :D

    Sinon ou a tu trouver tes petites plaques de cablage car je doit me faire un cable serie pour la fonera et c’est galère avec la puce :s

    RoN

  4. 4 Le 4 novembre 2007, Lefinnois à écrit :

    J’achète habituellement chez Gotronic :
    http://www.gotronic.fr/catalog/circuits/circuitframe.htm

  5. 5 Le 4 novembre 2007, RoN à écrit :

    Ah merci nikel :D

  6. 6 Le 6 novembre 2007, FRLinux à écrit :

    J’en suis sûr à présent, ce mec est fou :) Bravo, très beau montage.

  7. 7 Le 17 novembre 2007, Pierre DOUCET à écrit :

    Salut,

    Avec OpenWrt 7.09, pour reconfigurer le kernel, il faut faire un make kernel_menuconfig

  8. 8 Le 17 novembre 2007, Lefinnois à écrit :

    Très juste. Je me suis trompé. Mauvais copier/coller.

  9. 9 Le 6 janvier 2008, Pixel du Rezo à écrit :

    Recompiler le kernel, pour ne plus utiliser la console série. Ca veut dire qu’on n’accede plus au redboot par la suite avec un cable série ? Faut pas se planter dans la conf…
    Sinon, je cherche desesperement à mettre un bus 1-wire sur ma fonera, et j’ai l’impression que cela peut m’iader. En effet, si j’ai un port série fonctionnel (je crois qu’il faut utiliser un MAX232 ou DS275 pour avoir un port série OK), je peux ensuite y mettre mon 1-wire si je ne me trompe pas trop (mais peut-etre que j’ai tort, j’ai qq vagues connaissances en elec, mais c’est pas trop ca…)

    Des infos sur le 1-wire ? Car ca serait vraiment le top !
    Merci d’avance pour toute information à ce sujet .

  10. 10 Le 6 janvier 2008, Lefinnois à écrit :

    Non. Redboot reste accessible puisqu’il utilise le port série AVANT le démarrage de l’OS. C’est pour cette raison qu’il est délicat de connecter un montage série sur la Fonera. Redboot lui enverra forcément quelque chose au démarrage.

    Pour le 1-wire, je n’ai jamais regardé. J’ai bien un adaptateur USB Dallas DS1490F (04fa:2490) mais je doit avouer que je n’ai jamais joué avec. Il faut que je me trouve quelques iButtons.

    En googlelant un peu, il semble que le DS2480B de Maxim soit une bonne solution pour la conversion série/1-wire. Reste à voir ce qu’on a déjà dans le Kernel et s’il est tout aussi facile d’ajouter un adaptateur comme avec l’i2c.

  11. 11 Le 7 janvier 2008, Pixel du Rezo à écrit :

    Merci pour cette réponse. C’est une bonne nouvelle que le Redboot reste accessible. Quels sont les risques à envoyer les données du démarrage à un montage sur le port série ? Faudrait-il prévoir un système d’intérupteur pour le déconnecter ?

    Concernant le DS2480B, effectivement, c’est ce que j’avais vu… par contre, ceux qu’on trouve sur le site Dallas en samples ne doivent pas etre faciles à souder ;)

    A propos des iButtons, il est possible de se procurer pas mal de composants 1-wire gratuitement sur le site Maxim/Dallas (capteurs de température, humidité, convertisseurs analogique/numérique, etc…)

    Au niveau de la gestion de tout ca, il y a le owfs (one wire file system) qui permet d’avoir toutes les données de tous les capteurs sous forme de fichiers… Il me semble que c’est très facile à gérer. owfs.sourceforge.net pour plus d’infos…

  12. 12 Le 23 janvier 2008, Spyou à écrit :

    N’etant pas du tout dans le linux world (plutot intégriste BSD pour ma part, mais pas encore eu le temps d’aller fouiner un flash BSD pour la fonera :)) je cherche qqn qui puisse me sortir un kernel avec la console désactivée pour pouvoir jouer avec le port serie.

    Pour Pixel, le DS2480B de chez Maxim est ce qu’il te faut. Il cause directement TTL et doit a priori pouvoir etre alimenté peperre avec les 3.3v de la Fonera (il faudra peut etre par contre ajouter un injecteur 5v sur ton bus 1wire, surtout si t’as des composants gourmands en energie type 18B20 ou 2438/2408)

    Pour ma part j’ai opté pour un controleur un peu plus evolué a base de PIC vendu par ibuttonlink.com en plaque DIP OEM pour pas trop cher

  13. 13 Le 15 mai 2008, Pixel du Rezo à écrit :

    Merci Spyou pour ces quelques précisions.
    Tu dis avoir opté pour un controleur pus évolué à base de PIC.

    C’est pour la Fonera que tu as choisi ce controleur ?
    Tu aurais quelques infos complémentaires, du style modèle de controleur, comment l’integrer dans la fonera (ou dans un autre routeur : j’ai un vieux WRT54G, et j’aimerai lui ajouté le 1-wire aussi…).

    Par avance, merci.