Lateo.net - Flux RSS en pagaille (pour en ajouter : @ moi)

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierPila's blog

BEOTOOTH 5500 : Un récepteur Bluetooth compatible Datalink

Par : Pila

Introduit en 1980 par le fabricant danois Bang & Olufsen avec le système Beolab 8000, le protocole Datalink 80 raccorde par un bus de données les différents appareils d’un même système , offrant à l’utilisateur un contrôle unifié sur ce dernier. Ainsi, une télécommande unique contrôle l’ensemble du système, et commencer la lecture sur un appareil provoque le basculement automatique de l’amplificateur sur l’entrée associée, ainsi que la mise en pause des autres appareils. Le protocole évolue au fil des années, voyant notamment, avec le Beosystem 5500, l’addition d’une transmission en temps réelle de l’état des appareils, alors affiché sur la télécommande (Master Control Panel 5500)

Master Control Panel 5500

Étant propriétaire d’un système 5500 (BEOMASTER 5500, BEOCORD 5500, BEOGRAM CD 5500, et MASTER CONTROL PANEL 5500), j’ai souhaité lui ajouter une fonction Bluetooth audio, qui, contrairement à un adaptateur Bluetooth Audio classique, exploiterait le protocole Datalink pour offrir la même interface de contrôle que les autres éléments du système.

Le BEOMASTER 5500 étant doté d’une entrée TP2 permettant le contrôle d’un second BEOCORD, j’ai entrepris de concevoir un récepteur Bluetooth capable de simuler un BEOCORD 5500 sur le bus Datalink. Ce récepteur relaie les commandes du système (PLAY/PAUSE, etc.) via Bluetooth et transmet les informations sur la piste en cours de lecture au système.

Après un premier prototype à base d’ESP32 ne me donnant par entièrement satisfaction (codec SBC seulement, et stabilité de la connexion marginale), j’ai remanié le projet autour d’un module BM83 de Microchip, et je suis parvenu à un résultat satisfaisant, que j’ai nommé le BEOTOOTH 5500.

Boitier BEOTOOTH 5500

Sous la forme d’un boitier de 66mm de coté, et 27mm de haut, il dispose d’un câble (solidement maintenu en place par un support anti-arrachement) terminé par une prise DIN 7 broches pour se raccorder aux prises TP ou TP2 des équipements B&O, ainsi que d’une prise USB-C pour son alimentation. (5V, 100mA). De part de d’autre de la prise USB-C sont disposées une LED rouge qui indique l’état de la liaison Bluetooth (En veille / Connecté / Appairage), ainsi qu’un bouton poussoir, qui permet par un appui court d’entrer en mode appairage, ou par un appui prolongé (10 secondes) d’oublier tous les appareils appairés.

Ses principales fonctions sont :

  • Transmission d’un signal audio de haute fidélité (codec AAC, et DAC TI PCM5102A) et même niveau que les autres appareils B&O
  • Contrôle de la lecture (Lecture / Pause / Piste suivante et précédente, Avance et retour rapide) à partir des terminaux B&O (Beolink & Master Control Panel)
  • Transmission de l’état actuel au système. (Lecture / Pause / Déconnecté)
  • Transmission au système des informations sur la piste en cours lecture (Numéro de piste / Nombre total de pistes / Compteur de temps de lecture).
  • Arrêt automatique lorsque l’appareil Bluetooth ne transmet pas ou est déconnecté.
  • Démarrage automatique du système lors du lancement de la lecture sur le périphérique Bluetooth.

La vidéo ci dessous démontre ces fonctionnalités :

Le BEOTOOTH 5500 est compatible avec tout appareil doté d’une interface Datalink (DIN 7 broches) et a été testé (par les membres du forum Beoworld) avec les systèmes suivants :

AppareilAffichage du statutNote
Beomaster 5500OuiEtat en temps réel sur entrée TP1 seulement
Beosystem 2500Non
Beocenter 9500Non
Beomaster 5000
BeoMaster 7000OuiStatut affiché sur MCP6500, mais pas sur Beolink 7000 ?
Confirmé OK contrôle et affichage status sur BL7000 et BL5000
Beosound OuvertureNon
MCL2AVNon
Beomaster 4500
BeoSound 3200NonAudio seulement ! Pas de liaison de donnée Datalink !
Compatibilité vérifiée avec différents systèmes

Il est possible de mettre à jour son micrologiciel simplement en le raccordant à un ordinateur (Windows ou Linux) via un câble USB-C.

Le BEOTOOTH 5500 est disponible assemblé et prêt à l’emploi, ou sous forme de kit incluant : la carte électronique préassemblée, la led rouge, le cable, la prise DIN 7 broche, le boitier usiné adéquatement, la pièce de support du câble, la visserie nécessaire, ainsi que l’étiquette. Le kit contient l’ensemble des éléments nécessaires à l’assemblage, mais nécessite des compétences en soudure électronique.

Un guide de montage et d’utilisation (en anglais) est disponible ici : Beotooth_Manual_V1.1

Si vous souhaitez acquérir un BEOTOOTH 5500, ou pour toute question, merci de publier un commentaire avec votre adresse e-mail, et je vous répondrai dans les plus bref délais.

Linux Mint / Ubuntu : Transmettre les informations de lecture multimédia via Bluetooth (AVRCP TG)

Par : Pila

Ayant récemment développé un projet de récepteur audio Bluetooth utilisant AVRCP pour récupérer les informations du lecteur multimédia actif, j’ai pu constater que Linux Mint ne communique aucune information sur le média en cours de lecture à travers la liaison Bluetooth.

Après quelques recherche, il s’avère que c’est le démon MPRIS-PROXY qui est chargé de cette fonction, mais celui-ci ne semble pas actif sous Mint. Pire, il est introuvable ni à son emplacement supposé (/bin), ni dans les paquets !

La frayeur est de courte durée, il est bien installé avec le paquet bluez, et se situe à /lib/bluetooth/mpris-proxy.

Il suffit pour l’activer de créer un fichier de configuration pour systemd en mode utilisateur :

$ mkdir ~/.config/systemd/user
$ nano ~/.config/systemd/user/mpris-proxy.service

Y ajouter le contenu suivant :

[Unit]
Description=Forward bluetooth media controls to MPRIS

[Service]
Type=simple
ExecStart=/lib/bluetooth/mpris-proxy

[Install]
WantedBy=default.target

Il ne reste plus qu’à l’activer :

$ systemctl --user start mpris-proxy.service
$ systemctl --user enable mpris-proxy.service

On peut vérifier son bon fonctionnement avec la commande suivante :

$ systemctl --user status mpris-proxy.service

Qui doit nous retourner cette réponse :

Et voilà, les informations de la lecture multimédia (état lecture / pause, piste en cours, et position) sont maintenant accessibles par les périphériques Bluetooth connectés.

ABetterXinputCalibrator : un outil pour faciliter la calibration d’écran tactiles sous X11

Par : Pila

Il s’agit d’un petit logiciel que j’ai développé sous Qt, facilitant la calibration d’un écran tactile / tablette graphique, notamment quand l’écran en question est un écran secondaire

Screenshot :

https://gitlab.com/Pilatomic/abetterxinputcalibrator/-/raw/master/doc/Screenshot.png

Dépot gitlab :

https://gitlab.com/Pilatomic/abetterxinputcalibrator

Développer sur STM32 avec stm32plus, OpenOCD et QtCreator

Par : Pila

Cet article décrit très rapidement la procédure que j’ai suivie ( durant de nombreuses heures de tatonnements ) afin de mettre en place sous Linux Mint un environnement de développement pour stm32f042 basé sur QtCreator, stm32plus et OpenOCD, permettant de s’affranchir des logiciels ST.

Installation de la bibliothèque stm32plus

Cloner le dépot git situé à l’URL suivante :

https://github.com/andysworkshop/stm32plus

Installer les dépendances nécessaires :

$ apt install libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib scons gdb-multiarch cmake

Compiler la bibliothèque stm32plus : Exécuter la commande suivante dans le dossier stm32plus en modifiant si nécessaire le type de MCU, le mode ( fast, small ou debug ) ainsi qu’en précisant la fréquence en Hz de l’oscillateur interne ou externe utilisé (paramètre hsi ou hse)

$ scons mode=debug mcu=f042 hsi=8000000 -j4

Installer la bibliothèque compilée :

$ sudo scons mode=debug mcu=f042 hsi=8000000 -j4 install

Corriger les problèmes de stm32plus avec CMake :
Dans le dossier /usr/local/arm-none-eabi/lib/stm32plus-040100
Pour éviter un problème de fichier non trouvé, éditer le contenu du fichier stm32plus-config.cmake pour ne conserver que les 2 premières lignes ( copiées ci dessous )

include(${CMAKE_CURRENT_LIST_DIR}/stm32plus-config-${STM32PLUS_CONFIGURATION}i.cmake
OPTIONAL RESULT_VARIABLE STM32PLUS_CONFIG_FILE)

Modifier le fichier stm32plus-config-debug-f042-8000000i.cmake ( modification à répéter pour chaque version de stm32plus compilée ) : ajouter --specs=nosys.specs aux variables CMAKE_C_FLAGS et CMAKE_CXX_FLAGS.

Répéter éventuellement avec les autres modes pour disposer de la bibliothèque compilée pour chaque mode

Configuration générale de QtCreator

Récupérer l’exemple de compilation avec CMake fourni avec stm32plus dans le dossier stm32plus/cmake/example

Activer le plugin Bare Metal

Dans QtCreator : Aide -> Plugins, activer « BareMetal », et redémarrer QtCreator

Ajouter OpenOCD

Dans les options de QtCreator, catégorie « Appareils Mobiles », onglet « Bare Metal », cliquer « Add » et sélectionner « OpenOCD », remplir ainsi :
Name : OpenOCD for STM32F042
Startup mode : Pipe mode
Executable file : openocd
Root script directory : /usr/share/openocd/scripts
Configuration file : /usr/share/openocd/scripts/board/st_nucleo_f0.cfg

Puis cliquer sur Appliquer

Ajouter le périphérique STM32F042

Dans les options de QtCreator, catégorie « Appareils Mobiles », onglet « Périphériques », cliquer « Ajouter » et sélectionner « Bare Metal Device », remplir ainsi :

Nom : STM32F042
GDB Service Provider : OpenOCD for STM32F042

Cliquer sur appliquer

Ajouter le debugger GDB-Multiarch

Dans les options de QtCreator, catégorie « Kits », Onglet « Debugger », cliquer sur « Add » et remplir les champs suivants :

Name : GDB Multiarch
Path : /usr/bin/gdb-multiarch

Cliquer sur Appliquer

Ajouter un Kit

Dans les options de QtCreator, catégorie « Kits », Onglet « Kits », cliquer sur « Ajouter » et remplir les champs suivants :
Nom : STM32F042
Device type : Bare Metal Device
Device : STM32F042
Compiler C : GCC (C, arm 32 bits in /usr/bin)
Compiler C++ : GCC (C++, arm 32 bits in /usr/bin)
Debugger : GDB Multiarch
Qt Version : None
Cmake tool : System CMake at /usb/bin/cmake
CMake Configuration : cliquer sur « change », puis supprimer la ligne commençant par CMAKE_PREFIX_PATH

Cliquer sur appliquer

Configuration d’un projet QtCreator

Se rendre dans le dossier où l’on a précédemment copié l’exemple CMake fourni avec stm32plus

Ouvrir le fichier CMakeList.txt avec QtCreator, et sélectionner le kit STM32 précédemment créé.

Editer le fichier CMakeList.txt pour refléter le MCU utilisé ainsi que le mode ( fast, small ou debug ) de compilation de stm32plus à utiliser. Spécifier aussi la fréquence de l’oscillateur, suivi de la lettre i ou e pour un oscillateur interne ou externe.

Dans mon cas, ce dossier était inexistant, j’ai copié le dossier system depuis l’example Blink ( sans CMake ), dans lequel j’ai renommé le dossier f042_48_8 en f042.

Renommer le fichier system/f042/startup.asm en system/f042/startup.s. Modifier le fichier CMakeList.txt pour refléter ce changement.

Dans la catégorie « Projet », sélectionner la variable CMAKE_PREFIX_PATH, et cliquer sur « unset », puis « Apply configuration change ». La variable doit se remplir avec le contenu suivant :

/usr/local/arm-none-eabi;/usr/arm-none-eabi

Dans QtCreator, Menu « Compiler », cliquer sur « Executer CMake ».

Il est maintenant (enfin) possible de compiler et de débugger le projet 🙂

❌