Poppikone

Introduction

Poppikone (prononcer « pop-pi-co-né »), du finnois « poppi » qui signifie « pop-music » et de « kone » qui signifie « machine ». Poppikone est un lecteur de musique numérique compressé au format MP3 ou Ogg/Vorbis. Il accepte exclusivement les CD-ROMS et CD-R (parce que j'ai déjà un lecteur de CD Audio qui fonctionne très bien, et qui n'a pas été construit à partir de matériel de récupération, lui).

L'appareil

Matériel

Poppikone est à la base un PC réduit au strict minimum : une carte mère (Soyo), un processeur (Intel Pentium 200 MHz ralenti à 133 MHz), 32 Mo de RAM, un disque dur de 850 Mo, un lecteur de CD-ROM (24x, ralenti à 8x), une carte son (SoundBlaster Vibra128) et une alimentation pour PC.

À cela s'ajoute un écran à cristaux liquides (4 lignes de 20 caractères) connecté au port parallèle, un récepteur infra-rouge relié au port série et la puce d'un clavier, branchée sur une matrice de boutons-poussoirs, qui joue le rôle d'un clavier de 9 touches. La télécommande infra-rouge est celle de l'amplificateur de la chaîne HiFi, qui a le bon goût d'être prévue pour commander 9 appareiles différents.

Il semble que 133 MHz soit un minimum pour jouer correctement les Ogg/Vorbis. Si on se contente du Mp3, 100 MHz seraient suffisants.

Logiciel

Poppikone boote Linux (2.2.19), puis charge un ramdisk (initrd) de 6 Mo qui contient une Debian GNU/Linux (2.2) réduite au minimum : le noyau lance init, qui lance un shell (bash) sur le deuxième port série, et lance le script d'initialisation. Celui-ci charge les modules son, met le disque dur en veille, ralentit le lecteur de CD-ROM à 8x, lance lcdproc pour gérer l'écran, lirc pour le récepteur infra-rouge, dmms pour jouer les fichiers son et enfin lcdplaylist qui reçoit des commandes du clavier (de tty1 sur l'entrée standard) et de lirc et envoie des commandes à dmms et lcdproc.

Tous les logiciels utilisés sont des logiciels libres, et sont disponibles en téléchargement

Boitier

Fait de contreplaqué de 6,5mm, de profil d'aluminium en L de 15x15x1mm et de tasseau de 15x15mm. Le panneau avant est en polycarbonate, et les pieds sont en bois. Le tout a été peint en noir mat, à la bombe. Le panneau avant a été peint sur sa face arrière, ce qui lui donne un aspect très brillant qui rappelle le noir laqué d'un piano, et collé sur le boitier. Toutes les autres parties sont vissées, à l'exception des pieds qui sont collés.

Fonctionnement

Fonctionnalités

Le bouton Power switch met Poppikone en marche. Au bout d'environ 30 secondes, il est prêt à fonctionner (oui c'est long, mais il est difficile de faire beaucoup plus court). Pour l'arrêter, il suffit de presser le même bouton à nouveau, l'extinction est immédiate (pas de système de fichier à démonter !)

Poppikone dispose ensuite de 9 touches sur le panneau avant qui sont suffisante pour accéder aux principales fonctionnalités de l'appareil:

La touche Open/Close ouvre ou referme le tiroir du lecteur de CD. L'écran affiche Open lorsque le tiroir est ouvert, Empty lorsqu'il est fermé et vide, et le nom du CD lorsqu'il y a un CD dans le tiroir. Il faut noter que la touche d'ouverture/fermeture situé sur le lecteur de CD lui-même n'a pas été desactivé. Cependant, à cause de limitations dans l'interface (ATAPI) entre le lecteur de CD et la carte-mère, il n'est pas possible au logiciel de connaître la position du tiroir, ce qui fait qu'utiliser cette touche va fausser les informations dont le logiciel dispose au sujet de l'état du tiroir, et provoquer un comportement inhabituel de la touche Open/Close. Presser cette touche deux fois de suite permet de revenir au fonctionnement normal.

Poppikone dispose de 3 modes d'affichage:

La touche Display mode permet de passer d'un mode à l'autre: Liste des fichiers → Informations → Liste des morceaux → Liste des fichiers.

Front Panel

Le panneau avant de Poppikone

Liste des fichiers

Dans le mode liste des fichiers, la première ligne de l'écran affiche Browse: et un certain nombre de caractères indiquant les actions possibles : ˆ et v indiquent qu'on peut faire défiler la liste vers le haut ou vers le bas, > indique que l'élément courant est un répertoire et que l'on peut y entrer, et < indique que l'on peut sortir du répertoire courant. Les 3 lignes suivantes affichent les noms des fichiers et répertoires, et un curseur (le symbole >) indique l'élément courant.

Liste des fichiers

La liste des fichiers

On peut utiliser les quatre touches fléchées du clavier pour parcourir la liste des fichiers. Les flèches vers le haut (↑) et vers le bas (↓) permettent de faire défiler la liste, la flèche vers la droite (→) permet d'entrer dans un répertoire, et la flèche vers la gauche (←) permet de sortir du répertoire courant. Les touches correspondantes sur la télécommande ont le même effet. La touche Play/Add permet d'ajouter l'élément courant à la liste des morceaux à jouer. Si l'élément courant est un répertoire, son contenu sera ajouté à la liste des morceaux à jouer, y compris d'éventuels sous-répertoires, dont le contenu sera aussi pris en compte. La touche Play de la télécommande assure la même fonction.

Informations

Le mode informations affiche diverses informations sur le morceau en cours :

Informations

Informations sur le morceau courant

Les touches Play, Stop et Pause permettent respectivement de commencer la lecture du morceau, de l'arrêter ou de la mettre en pause. Ces trois états sont représentés respectivement par les symboles |>, [] et ||. Les touches Previous et Next permettent de passer respectivement au morceau précédent ou suivant. Les touches Forward et Backward permettent de sauter 3 secondes respectivement vers l'avant ou vers l'arrière.

Les touches équivalentes de la télécommande ont les mêmes fonctionnalités. En plus des précédentes, des pressions successives sur la touche Time permettent d'afficher, dans cet ordre, le temps restant avant la fin du morceau, la durée totale du morceau et de revenir à l'affichage de la durée écoulée depuis le début du morceau. Enfin, des pressions successives sur la touche Text de la télecommande permettent de faire défiler le nom du compositeur (s'il dépasse les 20 caractères de long), le nom de l'album (s'il dépasse les 20 caractères de long), de ne faire défiler aucune des 3 lignes d'information, ou de revenir au défilement du titre du morceau

Liste des morceaux

Le mode de liste des morceaux affiche la liste des morceaux qui ont été ou vont être joués, dans l'ordre. La première ligne de l'écran affiche PL: , le numéro d'ordre du morceau courant dans la liste et le nombre total de morceaux dans la liste. Deux curseurs dans la colonne de gauche indiquent le morceau en train d'être joué (à l'aide du symbole |) et le morceau sélectionné (à l'aide du symbole -. Lorsque le morceau sélectionné est le même que le morceau en train d'être joué, le symbole utilisé est +.

Liste des morceaux

Liste des morceaux

On peut utiliser les quatre touches fléchées du clavier pour parcourir et modifier la liste des fichiers : les flèches vers le haut (↑) et vers le bas (↓) permettent de faire défiler la liste, et les flèches vers la droite (→) et vers la gauche (←) permettent de déplacer le morceau sélectionné respectivement vers le bas et vers le haut au sein de la liste. La touche Play permet de commencer la lecture du morceau sélectionné, la touche Stop/Clear efface toute la liste et la touche Pause/Del enlève le morceau sélectionné de la liste. Les touches équivalentes de la télécommande ont les même fonctionnalités.

Des pressions successives sur la touche Text de la télécommande permet d'afficher sur les 3 lignes en même temps le nom de l'album, puis celui du compositeur, puis une ligne composée du nom de l'auteur, de l'album et du titre du morceau, et enfin de revenir à l'affichage du titre du morceau.

Bruit

Le niveau de bruit du système est acceptable compte tenu qu'aucune isolation phonique n'a été faite et que les composants sont tout à fait ordinaires. Le fait de mettre le disque dur en veille après le démarrage diminue grandement le bruit (et probablement la température dans le boitier). Le ventilateur de l'alimentation est cependant perceptible lorsque le volume de la musique est faible. Ceci est peut-être amplifié par le fait qu'il y a un mur plat juste derrière le boitier, qui peut réverbérer le son...

Refroidissement

L'alimentation dispose d'un ventilateur dont la vitesse est régulée par une thermistance et est raisonnablement silencieuse (mais ça pourrait être mieux).

Le processeur dispose d'un radiateur en aluminium dont les ailettes font environ 6cm de hauteur, sans ventilateur.

Le ventilateur de l'alimentation crée un courant d'air suffisant pour refroidir le processeur, même si celui-ci se trouve loin de l'entrée d'air du boitier de l'alimentation, et que le chemin que parcourt le flux d'air est assez tortueux. La température entre les ailettes du radiateur en fonctionnement est de 36°C, ce qui est tout à fait acceptable.

Administration

Poppikone dispose d'une interface série sur le panneau arrière qui permet d'y brancher un terminal texte (ou un émulateur de terminal sur un ordinateur ordinaire). Le script /etc/rc3 permet de passer en mode d'administration, c'est à dire qu'il monte le disque dur et lance chroot pour en faire la nouvelle racine du système de fichiers. On peut alors modifier des fichiers du ramdisc, puis recréer le ramdisc, quitter le mode administration (par CTRL-D) pour démonter le disque dur et enfin rebooter pour prendre en compte les modifications.

Remerciements

Un grand merci à mes collègues et amis Lari et Tommi pour m'avoir conseillé dans le choix des matériaux et le montage du boitier et m'avoir transporté jusqu'aux différents magasins de bricolage de Jyväskylä, à Pasi pour avoir donné son nom au Poppikone, avoir baptisé cette version Kenny (parce qu'à chaque fois que ça ne marchait pas, il pouvait alors s'écrier « Oh my God, you killed Kenny! » et pour m'avoir demandé au moins une fois par semaine si « ça avançait », à mon beau-frère Reijo et au laboratoire de télécomunications de l'université de Jyväskylä pour m'avoir prêté leurs outils et de l'espace de travail, et à l'université de Jyväskylä pour avoir prêté le coeur de Poppikone pour une durée indéterminée. Merci enfin à Ritva pour n'avoir pas trop râlé que je ne m'occupe pas assez d'elle lors des longues heures passées à monter Poppikone...