DMX - découverte de la technologie DMX512

DMX512 est une norme de transmissions (basée sur RS-485) utilisée essentiellement dans le contrôle d'éclairages et scènes de spectacles.

J'ai eu, à plusieurs reprises, l'occasion d'approcher cette norme mais jamais de m'y intéresser de plus prêt.
J'ai donc procédé à deux trois achats chez MonoPrice (Canada) pour découvrir les fonctionnalités de DMX avant d'envisager d'autres investigations.

Principe DMX512

En principe, DMX512 permet d'utiliser des consoles DMX (dit "contrôleur") pour contrôler des périphériques (dit "fixture/device") d'éclairage, boules, ventilateur, rampe de LED, effet lumineux, etc.


Setup DMX

DMX utilise un connecteur 3 Pôles (XLR) transportant les signaux GND, A, B. Ce signal passe de périphérique en périphérique (dit "Daisy-Chain" en anglais).

Par ailleurs, et sauf erreur, la communication se fait exclusivement dans un seul sens: du contrôleur --> les périphériques.

Bien que le XLR 3 poles soit très répandu, c'est le XLR 5 poles qui est recommandé aujourd'hui.

Connecteur XLR

L'interface présente un impédance de 100 Ohms et des signaux en -2.5V / +2.5V.
Basé sur la norme RS485, les interface DMX mettent en oeuvre un transceiver MAX485 ou SN75176.

Il est par ailleurs recommandé d'utiliser un terminateur (résistance de 120 Ohms) après le dernier appareil pour éviter la déformation/corruption des messages.
Ceci dit, cela ne pose pas vraiment de problème sur une toute petite installation.

Canaux DMX et périphériques

DMX permet de contrôler 512 canaux individuels. 

Chaque canal pouvant recevoir une valeur numérique entre 0 et 255 (ce qui correspond à 8 bits).

Dans l'abstrait, il est donc possible de contrôler 512 périphériques distincts.
L'adresse d'un périphérique correspond à une valeur entre 1 et 512.

Dans les faits, un périphérique utilise souvent  plusieurs canaux pour sa configuration (ex: 1 canal pour le rouge, 1 canal pour le vert, 1 canal pour le bleu, etc). Il est donc commode de regrouper les canaux par 16 pour chaque périphérique.

En regroupant les canaux par 16, l'adresse du premier périphérique est 1, l'adresse du second périphérique est 17, le 3ieme périphérique est à l'adresse 33 et ainsi de suite!
Mais rien n'empêche d'accéder directement à n'importe quel canal entre 1 et 512.

Résolution d'un canal

La valeur attribuable à un canal est entre 0 et 255, soit une résolution de 8 bits.
Cette résolution est parfois insuffisante.

Il est possible de passer en résolution 16 bits en réquisitionnant deux canaux contigus. Le premier canal prend la valeur "grossière" entre 0 et 255 (ex: 163).

Ensuite, le second canal reçoit la valeur "fine" entre 0 et 255 (ex: 87). Cette valeur "fine" correspond physiquement à un positionnement en 1/255, positionnement qui sépare la valeur grossière (ex:163) du canal précédent de la valeur grossière suivante (donc 164 dans l'exemple).

Le résultat final en 16 bits sera: 163+(87/255) =  163.3411

Du matériel de test

Avant de se lancer dans des projets à base de microcontrôleurs autour de DMX, j'ai préféré faire joujou avec la technologie... histoire d'en apprendre plus par l'expérience.

J'ai fais quelques achats chez MonoPrice (au Canada) pour me faire la main 

Contrôleur DMX-512 à 192 canaux


Le MonoPrice 612120, tout à fait abordable, ce contrôleur à ~80Eur hors TVA permettra d'explorer les possibilités offertes à peu d'investissement.

Son appellation complète est "contrôleur 192 canaux". Avec 16 canaux par périphériques et 12 périphériques, ce contrôleur peut commander 12*16=192 canaux DMX au total.


A noter: 

  • les 8 curseurs permettent de commander les 16 canaux en utilisant un bouton pour passer des canaux 1 à 8 --> canaux 9 à 16.
  • Un petit afficheur LCD mentionne la valeur envoyée sur le canal (0 à 255). Bien pratique pour l'expérimentation.
  • J'ai aussi noté les deux bouton rotatif (tilt & pan) disposant aussi d'un réglage fin (donc 16 bits sur deux canaux).

Spot RGB avec contrôle d'effet

Le sport MonoPrice 612970 dispose de plusieurs effet qu'il est possible d'activer.

J'ai mis un certain temps à comprendre la configuration de l'appareil qui propose:

  • des modes autonomes (assez sympa d'ailleurs),
  • un mode DMX dont il est possible de fixer l'adresse (de 1 à 512).
    j'ai laissé 1 pour l'adresse DMX --> donc le périphérique 1 sur la console

En mode DMX, il est possible de configurer le nombre de canaux utilisés (4, 8, 11, 23).
Plus le nombres de canaux utilisés est important et plus les fonctionnalités sont riches.
A titre d'exemple, voici le détails du mode 4 & 8 canaux.

Dans le mode 4 canaux, il est possible d'utiliser les 4 premiers curseurs permettent de contrôler respectivement:

  • La luminosité générale
  • La quantité de rouge
  • La quantité de vert
  • La quantité de bleu

Configurer l'adressage avec intelligence

Il est forcement possible d'utiliser plusieurs spot avec la console.
Si l'on s'arrête à deux spots, la premier peut assigné au périphérique 1 (canal DMX 1) et le deuxième spot assigné sur le périphérique 2 (canal DMX 17).

Mais il est aussi possible de configurer les deux spots en mode 4 canaux pour n'utiliser qu'un seul périphérique sur la console.
Lle premier spot est configuré sur le canal DMX 1 et le 2ieme spot sur le canal DMX 5.
Du coup, les deux spots peuvent être commandés avec la console depuis le périphérique 1... les 4 premiers curseurs (canaux DMX 1 à 4) commandent le 1ier spot et les 4 curseurs suivants (canaux DMX 5 à 8) commandent le 2ieme spot. 

Relais commandé par DMX

J'ai aussi eu l'occasion de dénicher un relais contrôlable par via DMX.

Le canal est configuré à l'aide d'un DIP switch (les 9 permiers bit).

Le relais s'active si la valeur communiquée est >= 140.
Le relais se désactive si la valeur communiquée est <= 120.

Module breakout

Et bien entendu, dès que j'aurais passé l'étape des premiers tests, je pourrais me pencher sur le protocole DMX pour réagir à la console... ou pour contrôler un périphérique DMX.

Mais cela sera pour plus tard.
Il manque par ailleurs une broche permettant de passer de réception en émission (voir cette documentation de Sonelec-musique.com). Tout me laisse a penser qu'il sera uniquement possible de créer des périphériques DMX avec ce breakout.
 

Montage de test

Les premiers essais DMX se font avec la console et le spot... pas trop difficile à maîtriser une fois que l'on a compris le principe des canaux DMX.


Et ensuite?

Après le montage du module relais DMX (et oui, il est en kit!), je vais m'atteler à interfacer le bus DMX avec une carte MicroPython.

Ressources

5 commentaires:

  1. Hello MCHobby,
    Il y a fort longtemps, je me suis penché sur le DMX, et je suis tombé sur cet article (https://diyprojects.tech/2013/05/diy-usb-dmx-dongle-interface-for-under-10/), qui utilise l'équivalent du module breakout.
    Et pour l'avoir expérimenté (sur un spot dmx équivalent à celui de l'article), je peux confirmer que ça fonctionne.

    RépondreSupprimer
  2. Bonjour, j'ai lu votre article. Je vous conseil de laisser ces consoles pas chère et de vous tourner vers le PC avec Dlight ou freestyler... Et d'acheter un boitier Enttec usb a 99€ voir le DMX usb pro mk2 150€ ce dernier a une sortie et une entrée DMX en 5pin. Si vous désirez voir plus loin, il y a l'artnet qui est un dérivé du protocol DMX mais en ethernet. Enttec a aussi ses propres logiciels gratuit qui permettent de visualiser ce qu'il se passe avec plus de précision.

    https://www.enttec.co.uk/en/product/software/lighting-control-software/emu-dmx-lighting-control-for-musicians/

    https://www.enttec.co.uk/en/product/lighting-communication-protocols/dmx512/pro-manager/

    https://www.enttec.co.uk/en/product/lighting-communication-protocols/dmx512/usb-assembled-widget/

    Le bouchon que vous appelez terminateur n'est pas obligatoire pas avec un ou deux projecteurs. c'est lier aux perturbations sur la ligne en passant de machines à machines, du à la longueur de câbles, à du mauvais câble... Utilisez bien un câble DMX et non du XLR pour le son, pas les même impédances.

    Quand vous parlez de 512 canaux, c'est un univers. 1-512 / 513-1024 / 1025-1536... Sont des univers. On les écrit aussi, 1/1-512, 2/1-512, 3/1-512. en général, en théâtre, il y a encore peu, nous n'avions besoin que d'un univers avec l’avènement des LED, c'est fini.

    Canal/circuit : nous parlons pour nous simplifier de canaux et de circuits. Un canal sur la console et un circuit DMX ou un circuit gradateur (dimmer) pour les projecteurs traditionnels (lampes tungstène). Un canal est modifiable numériquement sur la console et un circuit physiquement sur la/les machines (vos DIPswitch). Exemple. j'ai un gradateur de 6 circuits (12-18) et une machines de 4 circuit (50-53) je peux dire à la console que les circuits 12-18 sont contrôlés par les canaux de 1-6 et 50-53 par 7-10. On contrôle les canaux 1- 10 sur la console mais les données sont envoyé aux circuits 12-18 et 50-53.

    La résolution est aussi venue avec les machines. les moteurs n'aiment pas trop le 8bit, le soucis est souvent de se retrouver entre deux pas et que celles-ci deviennent bruyante voir folle et sautent entre les deux pas 8bit. Le 16bit rectifie cela. Il n'est pris en compte que depuis moins de 10ans. Les pupitres de la dernière génération permettent le contrôle 16bit avant non. soucis évidemment, un univers ne compte plus que "256" circuits puisque les réglages fin en prennent un aussi. Problème inexistant avec les projecteurs traditionnels qui étaient sur des gradateurs géré analogiquement avec des triacs. Pour finir, le dernier problème sont les LED qui pour être graduée correctement doivent être en 16bit car les premiers pas flick souvent entre 0 et 5% donc les 13 premiers pas numérique sur les 256.

    Problème de machine qui sautille (5minute20) c'est rapide mais le volet se met a vibrer.
    https://www.youtube.com/watch?v=v-4k6qoZVEY
    récurrent sur cette machine, j'en ai passé des heures sur les courbes pour ne pas que ça arrive en spectacle ^^

    Pour finir, oui, le DMX est un monologue et les connecteurs sont bypass. Une machine éteinte doit laisser passer les données, en cas de panne dans un concert par exemple pour ne pas avoir de black out général si, par exemple, le premier devise se coupe. Pour du dialogue, nous utiliserons le protocole RDM qui est encore peu utilisé car nous entrons dans l'air de l'automatisation "outrancière". le RDM permet d'avoir des retours machines pour les problèmes. Ca permet de recevoir des codes d'erreur à la console pour dire que la LED est morte ou que le signal est faible... Le RDM fonctionne via ethernet ou dmx(5pin) et permet aussi de gérer le chauffage, l'ouverture des portes, les moteurs du ceintrier... bref automatisation vraiment à "outrance".

    Voila pour quelques points pourraient peut être vous aider a comment on utilise le protocole DMX dans le domaine du spectacle.

    RépondreSupprimer
  3. ... Voila pour quelques points qui pourraient peut être vous aider a comprendre comment nous utilisons le protocole DMX dans le domaine du spectacle.

    Bonne amusement.
    Bien à vous

    RépondreSupprimer
    Réponses
    1. Brenion, merci pour ces précisions.
      Il est vrai que j'aborde DMX sur le plan technique et c'est aussi la raison pour laquelle je me penche sur les consoles bon marchés (pour avoir un "générateur" DMX fiable).

      Supprimer
  4. Bonjour Brenion, c'est la première fois que j'utilise le blog. 1ère question puis-je me passer d'une console DMX et donc utiliser un PC(ou autre sait-on jamais ; tablette, smartphone) pour piloter 24 rubans LED RGB ?

    RépondreSupprimer