Do It Yourself, câbles, amplis, accessoires et bidouillages ...
Page 1 sur 1

Message BMP, le grand frère du DAPI... 25 Juil 2017 21:28

Episode I (la position du tireur couché...)

Les anciens (et amateurs de bricolage soviétique) se souviennent sans doute de mes aventures, il y a quelques années, suite au défi lancé par Wardormeur : créer un DAP nomade basé sur la Raspberry Pi de l'époque, première du nom...

Le fil correspondant s'étale de mars 2013 à novembre 2014 :
viewtopic.php?f=109&t=4947

J'ai appris une foultitude de choses au fil des prototypes successifs, qui tous fonctionnaient, mais force est de constater qu'aucun n'a jamais été vraiment utilisé en tant que DAP nomade, notamment par manque de compétence, d'outils et de courage de ma part pour créer un boîtier digne de ce nom, et surtout autonome...

Aujourd'hui nous en sommes à la Raspi3, et comme j'en ai touché une en promo cet hiver, j'ai eu envie de réutiliser une partie de cette expérience pour en faire une version sédentaire (plus simple, avec moins de contraintes).
En gros l'idée est de remplacer le fouillis qui traîne sur ma table de nuit, pour la lecture du soir (Hidisz AP100, ampli ALO, chargeurs, câbles...) par un "rig" compact et avec un meilleur WAF :-)

D'où le "BMP", pour "Bedside Music Player"...

Comme pour le DAPI je n'ai jamais eu juste du premier coup, et j'étais toujours en train d'attendre la pièce manquante qui arrive à pied par la Chine, mais là le proto est en passe de passer "en prod", miracle !

Il faut dire que le cahier des charges est drastiquement simplifié :
  • plus de galère de boutons, récupération de la zapette Air Mouse du DAPI
  • plus d'écrans chelous avec des fils partout, passage à un 7" 800x480 en HDMI
  • plus de contraintes d'alimentation/portabilité

En fait il n'y a plus que trois composants :
  • la Raspi elle-même
  • l'écran LCD avec sa carte d'interface HDMI (principale source de galères comme on verra)
  • la carte DAC de chez Pimoroni, un clone apacher de Hifiberry et reconnu comme tel

Ce dernier est 100% compatible mais n'a pas de gestion hardware du volume : c'est donc une sortie ligne à niveau fixe, ce qui me convient très bien puisque je garde évidemment le ALO derrière (dont je ne remercierai jamais assez Lito1 de me l'avoir fait découvrir à mes débuts sur TN...).

Ci-dessous le tout à ciel ouvert pour la tof (cliquer pour agrandir) :
7137
De gauche à droite,
  • l'écran posé à l'envers avec son support (un porte-téléphone, sans doute provisoire),
  • la carte d'interface entre la nappe du LCD et le HDMI du Rpi,
  • la Rpi et le DAC soudé dessus,
  • la zapette,
  • la grosse batterie USB qui va alimenter le tout (pour éviter les histoires de masse et parasites)

Mine de rien, cette nappe courte et sans doute fragile, qui va de l'arrière du LCD à un connecteur sur la carte d'interface, impose pas mal de contraintes sur la disposition des composants, la connectique, et finalement le choix du boîtier...

Juste pour rire, la même tof mais avec la carte d'interface livrée d'origine avec le LCD, très complète avec ses trois sorties HDMI, VGA et coax, et ses boutons de contrôle pour le menu des réglages, mais qui est juste énôôrme :
7142

A comparer avec la version HDMI-only à 10$, dure à dégoter mais nettement plus simple à intégrer :
7141

Visez un peu le "cable management" de compétition :-)

Après divers essais (comme d'hab) j'ai retrouvé dans mon bric à brac un vieux répéteur Wifi Netgear, dont le boîtier avait le bon goût d'être sobre, compact, démontable et suffisant pour loger le tout, avec des ouvertures pour l'aération et le passage des fils.

Le gros casse-tête pour l'intégration, c'est cette histoire de nappe et de connecteur qui imposent que la carte d'interface soit à l'arrière et à l'envers par rapport à la Rpi :
  • Les câbles HDMI, même très courts, ont de très gros connecteurs et sont très rigides, impossibles à loger.
  • Les "dongles" à deux prises rapprochent les deux cartes, ce qui est bien, mais du coup on ne peut plus régler l'écartement et il faut la version avec prises inversées.
  • Bien entendu les prises des deux cartes ne tombent pas en face et bien entendu elle tombent face à d'autres prises (d'alimentation en général, d'où la soudure du câble USB directement sur la carte HDMI).
  • Sachant qu'en plus il faut arriver à centrer à peu près la nappe par rapport au boîtier...
    Bref pas mal d'essais et d'erreurs (et un plein tiroir de trucs inutilisables) pour arriver à ce résultat qui paraît tout simple !

Vue de côté du biniou assemblé et fermé :
Image

Et vue de face, comme il est destiné à être utilisé :
7151
(faudra que j'enlève la protection un jour, quand même :-)

Pour l'interface j'ai récupéré le code python/pygame du DAPI, en le simplifiant notablement (plus de GPIO pour l'écran, plus de boutons) et en le toilettant.
Avec cet énôôrme écran à la définition colossale j'ai plutôt travaillé la partie graphique, avec un fond volontairement "rétro" (un affreux mélange de vinyle et de pictos "K7"), l'affichage des pochettes et un scrolling amélioré des titres longs (furieusement boosté par la découverte entretemps des "sprites" de pygame :-). Donc ça pour une fois c'était la partie facile...

C'était moins simple de trouver les formules magiques pour afficher les "splash screens" de début et de fin, et encore moins celles de "systemd" pour lancer le tout avec le nouveau raspbian Jessie, mais comme toujours StackOverflow est ton ami :-)

Un aperçu vite fait du résultat :


Question/commentaires bienvenus :-)

Message 26 Juil 2017 09:52

Bon j'aurais pas dû publier ça au moment où tout le monde est en vacances :-)

Message 26 Juil 2017 09:57

Y aurait pas un moyen d'incruster une vidéo (ici Vimeo) autrement qu'avec le vieux plugin Flash ?...

Message 26 Juil 2017 10:34

(Y)(Y) trop bien !

Message 04 Aoû 2017 10:09

Episode II (retournement de situation, au propre comme au figuré :-)

Après une mise en situation réelle sur ma table de chevet, je n'étais vraiment pas satisfait du résultat en position horizontale.

Bien sûr c'était la solution la plus simple à intégrer, sans aucune modification du boîtier (si ce n'est de reposer le capot à l'envers en forçant un peu, ce qui laissait une ouverture commode à l'avant pour passer la nappe de l'écran).
En revanche ça prenait finalement pas mal de place, la stabilité de l'écran semblait assez aléatoire ("accident waiting to happen" :-), et celui-ci était placé trop bas pour y jeter commodément un coup d’œil depuis le lit...

Donc après démontage et moult essais, j'ai ressorti la Dremel pour remettre le boîtier en position verticale (qui était son utilisation normale en mode répéteur Wifi), et avec le capot à l'endroit.
L'assemblage étant devenu nettement plus délicat, je n'ai pas refait de photo de l'intérieur, mais si vous reprenez la photo n°3 ci-dessus, imaginez :

7141

  • les deux cartes retournées à 180°, donc avec les ports USB de la Raspi dans le coin en haut à gauche
  • le support de vis dans ledit coin, entièrement meulé
  • une ouverture pratiquée à la place pour laisser dépasser le dongle de la telco (qui évidemment se retrouve du mauvais côté :-)
  • du coup la Raspi se retrouve bien collée en haut à droite du boîtier (vertical), de façon à remonter le plus possible la nappe de l'écran vers le haut, et la centrer le mieux possible dans la largeur
  • une vis à travers le PCB pour la fixer à l'arrière du boîtier
  • une saignée horizontale dans le couvercle du boîtier, au bas de la nouvelle position de l'écran, pour passer la nappe (c'était LA partie délicate, mais pour une fois je n'ai pas saboté l'ouvrage et ça ne se voit pas :-)

De face ça donne ceci :

7169

  • empreinte au sol nettement réduite, et écran à la bonne hauteur

Le côté droit doublement charcuté :

7172

  • en haut l'ouverture pour le dongle (bien ratée mais cachée par l'écran :-)
  • en bas deux ouvertures existantes réunies pour le passer des câbles d'alim USB

Et la bonne nouvelle : pour le moment ça marche toujours (touchons du bois :-)

7171
(bon OK la photo est naze :-)

Il me reste quand même à sécuriser la fixation du LCD sur le boîtier, qui pour le moment se résume à un bête pad double-face (et chacun sait que ces trucs-là ne sont pas éternels :-).
Si quelqu'un a une astuce, je suis tout ouïe !

Message 04 Aoû 2017 10:23

(Y)(Y)
Pas mal du tout.

Message 04 Aoû 2017 12:43

Merci !

Allez, pour compenser la dernière photo ratée, une autre vidéo moins bâclée avec le nouveau montage :

Message 12 Aoû 2017 15:23

Episode III (au Paradis de la radio.....)

Le weekend dernier j'étais en train de traquer un bug dans le BMP (la gestion du son sous Linux, que du bonheur :-), avec la Squeezebox Touch branchée comme d'hab' sur Radio Paradise, quand m'est venue l'illumination :

Vu que les Raspi3 ont le bon goût d'intégrer le Wifi, et que le couteau suisse MPD gère également le streaming et les Webradios, ça ne devrait pas être compliqué d'ajouter ça dans BMP, hein ?...

Une semaine après la réponse est... oui et non.

Oui parce que en gros "il suffit" de cloner et d'adapter l'UI BMP existante puis de se débrouiller pour alterner entre les deux via la télécommande.

Non parce que les informations retournées par MPD sur un flux Webradio sont rachitiques par rapport à un fichier local : une chaîne "Artiste - Titre" et l'URL du flux, point (pas de nom d'album, durée de morceau, etc.).
Par ailleurs la playlist ne contient plus des morceaux mais la/les URL de la Webradio.
Il faut donc pas mal remanier pour s'adapter à ce qui est dispo :
  • le nom de l'album est remplacé par un bandeau fixe avec le nom de la radio
  • la jauge de temps est supprimée, et l'affichage remplacé par une durée totale d'écoute (comme sur la SBT)
  • les touches droite/gauche servent maintenant à parcourir les URL de la playlist (Radio Paradise propose les encodages AAC, OGG et MP3 avec 2 débits pour chaque)
  • le morceau de bravoure, à chaque changement de morceau, consiste à aller "scraper" le site web de la radio, pour y récupérer l'URL de la pochette, la télécharger et l'afficher :-)
  • l'encodage et le débit affichés au-dessus de la pochette sont extraits de l'URL de streaming active
...plus quelques gags dans la cohabitation des deux UI dans un même process python/pygame, et des deux playlists associées dans MPD, et les trafics avec ALSA qui un coup joue du son, un coup non, et le compte est bon :-)

Mais finalement le résultat est pas mal, et plutôt rapide pour les commutations entre les deux modes: presque instantané de Webradio vers local, et une paire de secondes dans l'autre sens (le temps de se connecter au flux et de remplir le bufffer je suppose).

Illustration (démarrage par défaut en mode local puis bascules) :

Page 1 sur 1