En rangeant mes affaires, je suis tombé sur un appareil que j’avais utilisé pas mal à une époque : un switch HDMI. Ce modèle Aten (un VS481a) offre une sortie HDMI et quatre entrées, mais (surtout) une prise DE-9 qui permet de commander le switch depuis un appareil externe.
Le but ultime est de commander le switch depuis un Raspberry Pi pour passer directement sur la bonne entrée sans me lever pour presser un bouton ou utiliser la piètre télécommande fournie. la première étape, présentée ici, consiste surtout à essayer de le faire fonctionner.
L’intégration d’un connecteur DE-9 à la norme RS-232 reste assez classique dans les appareils de salon, comme les amplis, les switchs, certains lecteurs audio, etc. Ca permet de commander facilement un appareil depuis un ordinateur ou un périphérique dédié (il existe des écrans de commandes pour cet usage précis), avec un système fiable et peu coûteux. Sur le papier, ça semble pratique (même si les commandes sur IP remplacent heureusement ça très bien), en pratique ça peut être un cauchemar.
Premièrement, la connexion. Les ordinateurs modernes n’intègrent généralement pas de prises RS-232 (série) et la solution va donc passer par un adaptateur USB. Le choix va être important, pour des questions de pilotes. Les modèles à (très) bas prix (moins de 5 $) utilisent des copies de puces chinoises, avec une fiabilité moyenne, alors que le milieu de gamme (5 à 20 $) se base sur une puce Prolific, la PL2303. Les modèles plus onéreux (on va dire audessus de 20 €) ont une puce FTDI. Soyons clairs, abandonnez les premiers. La puce PL2303, elle, est bien supportée avec des pilotes pour pas mal d’OS, donc macOS Sierra. Le convertisseur FTDI a le gros avantage de fonctionner nativement sous Mac OS X (depuis Mavericks) mais les adaptateurs sont plus chers.
Le choix du type d’adaptateur joue aussi : vous trouverez des modèles compacts, avec une prise directement derrière le port USB, alors que d’autres se présentent sous la forme d’un câble avec une prise USB d’un côté et une prise DE-9 de l’autre. Le choix dépend surtout de vos besoins : le premier type est pratique si vous devez utiliser un câble série, le second permet de s’en passer. Personnellement, j’ai un noname compact, qui utilise une puce PL2303.
La connexion entre l’adaptateur et le switch n’est pas totalement triviale et dépend de l’appareil. certains imposent un câble Null Modem (croisé), d’autres (la majorité) un câble droit, etc. La documentation devrait vous indiquer le modèle adéquat. Avec mon boîtier Aten, un câble droit suffisait, donc j’ai branché directement l’adaptateur sur la prise.
La partie amusante commence maintenant. Les commandes ne sont absolument pas standardisées, ni même les paramètres. Et j’ai perdu 1/2 journée de tests pour une raison totalement idiote : il existe plusieurs versions de mon switch sous le même nom, mais avec des commandes différentes. Le manuel disponible sur le site donne donc des commandes qui ne fonctionnent pas sur mon modèle. En cherchant une vieille version du manuel, je suis tombé sur ManualsLib qui possédait la bonne version, avec les bonnes commandes.
Pour envoyer les commandes, j’utilise CoolTerm qui permet de configurer proprement le port et d’envoyer les commandes. La documentation (correcte) de l’Aten indique qu’il faut communiquer à 19 200 bauds, avec 8 bits sans parité, un bit de stop et pas de flow control.
Ensuite, les commandes sont détaillées. Ce modèle nécessite des commandes en hexadécimal, d’autres acceptent des chaînes de caractères plus lisibles (c’est le cas des versions récentes du boîtier). Avec ma version, 5A7E81080133BD81A5
active l’entrée 3, alors qu’il suffit d’envoyer sw i03
sur les variantes actuelles.
Le tableau donne la liste des commandes à taper pour activer les fonctions du VS481a, à envoyer en hexadécimal. CoolTerm a l’avantage d’avoir une fenêtre de dialogue qui permet d’envoyer directement de l’hexadécimal, ça simplifie les choses. Et avec les bonnes commandes, ça fonctionne directement. Le côté ergonomique reste tout de même assez léger : il n’y a aucun retour de l’appareil, sauf évidemment le changement d’entrée quand la commande passe.
Prochaine étape, s’arranger pour que le Raspberry Pi envoie la commande directement au démarrage. Un jour. A noter que la méthode est globalement la même avec les autres appareils (amplis, TV, etc.), mais les commandes et les paramètres diffèrent.
Bonjour Pierre,
Je lis régulièrement votre blog, et aujourd’hui, je tombe sur cet article.
J’espérais trouver quelques infos sur ce switch hdmi, mais non.
Etant à la recherche d’un switch hdmi de qualité, pourriez-vous svp nous dire si c’est le cas pour celui-ci, ses qualités et ses défauts ?
Merci beaucoup pour votre aide, et votre blog très intéressant !
Cordialement,
Jacques.
C’est un vieux modèle qui ne supporte pas les technologies modernes, en fait.
Aten fait des produits corrects, ceci dit, et la version récente (VS481B) fonctionne en HDMI 2.0. Le truc est bien construit, mais la télécommande est cheap. C’est pratique quand on a plusieurs appareils et peu de prises, et ça marche assez bien : y a soit un bouton sur l’appareil lui-même, soit la télécommande.
Mais j’ai pas grand chose à dire de plus, c’est basique et ma TV actuelle a quatre HDMI, ce qui me suffit
Je vous remercie pour votre retour positif sur ce produit.
Cordialement,
Jacques.
Bonsoir Pierre,
J’utilise un convertisseur PL2303 pour connecter en RS232C plusieurs outils (Une Alarme intrusion, Un programmateur de MicroC et MicroP, une connexion JTAG, ….) c’est un NoName.
Il fonctionne correctement sous mac OS.
Cependant je ne trouve pas de pilote pour Windows 10 32/64 bits. Prolific ne le propose pas en chargement sur son site ….
Si tu as une idée pour en trouver un, je suis preneur !
Bonjour,
Bravo pour votre site.
J’ai réalisé, dans le cadre de mon emploi, un dispositif de pilotage, écrit en Python, avec un ««serveur»» Raspberry Pi. Le Raspberry traduisant en commande RS232 dans le langage de l’équipement cible des messages reçus par UDP venant de client tiers.
Les principaux outils nécessaires sont PySerial (pour la gestion de l’RS232), socket (accessoirement pour l’UDP), et bien plus intéressant PyCRC permettant de générer les Checksum demandées par certains appareils.
Personnellement, ce que j’ai trouvé de plus difficile est le jonglage entre décimal, hexadecimal etc… pour que le message à transmettre soit exact en fonction des données encodées. Le codage de la checksum peut être aussi amusant à retrouver.
J’ai principalement travaillé sur Windows (et oui) avec un «sniffeur» logiciel du port série et sur le web on trouve pléthore de générateur de checksum, et l’on fini par retrouver le codage par essais successif différents.
Pour les convertisseurs USB Prolific, il y a ceux avec la puce révision A et ceux de la puce révision B. Évidemment, la puce A n’a pas droit à Windows 10… C’est la loterie, les A marchant très bien avec Debian, Win 7 etc…
Bonne continuation,
Fabien
Un FTDI pour 11€, je l’ai, il marche nickel :) https://www.amazon.fr/gp/product/B00QUZY4L0/ref=oh_aui_detailpage_o01_s00?ie=UTF8&th=1
Il marche direct ? Parce que la description en dessous indique que c’est du Prolific
le FTDI cité ci dessus nécessite des pilotes :
Win : http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41
Mac : http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41
La version du PL2303 n’est pas spécifiée. Dans les retours utilisateurs, il est spécifié fonctionne sous Win 8.1 donc ce n’est pas l’une des 2 version suivantes :
« Windows 8/8.1/10 are NOT supported in PL-2303HXA and PL-2303X EOL chip versions. »
Oui, donc ce n’est pas du FTDI ;)
Oui, c’est du Prolific !
il faut un chipset FR232xx de FTDI qui lui utilisera le driver censé être implanté dans Mac OS en natif ….
sinon il est téléchargeable aussi sur le site FTDI … ce qui m’inquiète quand à l’inclusion de se pilote en natif dans Mac OS !?
Lien : http://www.ftdichip.com/Drivers/VCP.htm
Apple explique bien que certains trucs précis fonctionnent pas dans sa doc’