DMX512, spesso abbreviato a DMX (Digital MultipleX), è un protocollo di comunicazione usato principalmente per il controllo dell'illuminazione di scena per controllare da computer o centraline vari tipi di luci, intelligenti e classiche.

Storia

Sviluppato dalla Commissione Tecnica dell' USITT, prese piede nel 1986 con successive revisioni nel 1990 che portarono allo standard USITT DMX512/1990. Nel 1998 lo standard passò sotto il controllo dell' ESTA che ne cominciò un processo di revisione. La nuova versione, conosciuta ufficialmente come:
"Entertainment Technology - USITT DMX512-A - Asynchronous Serial Digital Data Transmission Standard for Controlling Lighting Equipment and Accessories",
fu approvato dall'ANSI nel novembre del 2004. L'attuale standard è conosciuto come E1.11, USITT DMX512–A o, più semplicemente DMX512-A e viene correntemente mantenuto dall'ESTA.

DMX nella sua concezione originale era stato pensato per permettere il collegamento di controller e dimmer di diverse marche, un protocollo da usare come ultima risorsa nel caso altri protocolli proprietari non fossero stati compatibili. Di fatto questo standard prese piede e in breve tempo fu utilizzato per collegare anche altri dispositivi più avanzati come i fogger, oltre ai controller e ai dimmer.

Siccome DMX512 è un sistema di trasmissione dati unidirezionale, non deve essere usato per il controllo dei fuochi pirotecnici ed al suo posto viene a volte usato il protocollo MIDI.

Nozioni teoriche

Per collegare un controller DMX512 alle apparecchiature compatibili si usa un cavo DMX512. Ogni dispositivo ha un connettore DMX512 in e, di solito, un DMX512 out. La porta DMX512 in sul primo dispositivo viene collegata al DMX512 out del controller mentre il DMX512 out del primo apparecchio viene collegato al DMX in del secondo, e così via, in cascata. Il connettore DMX512 out dell'ultimo dispositivo di questa catena così formata dovrebbe avere inserito un terminatore DMX512, che è una resistenza da 120 ohm e 0,25 W tra i pin 2 e 3 del connettore. Questa configurazione di collegamenti viene chiamata daisy chain.

   Schema di collegamento dei dispositivi DMX512

+------------+   +---------------+   +---------------+
| controller |   | dispositivo 1 |   | dispositivo 2 |
+------+-----+   +----+---+------+   +----+---+------+
       | out       in |   | out        in |   | out       +-------------+
       +--------------+   +---------------+   +-----------+ terminatore |
                                                          +-------------+

I connettori usati sono dei connettori XLR da 5 pin, vengono però usati solo 3 dei 5 pin disponibili. Molti produttori usano invece connettori XLR da 3 pin (più economici), violando così lo standard approvato.

Dovrebbero essere utilizzati solamente cavi progettati per il DMX512 o per audio digitale AES/EBU compatibili con impedenza 110 ohm. I test dell'ESTA hanno dimostrato che si possono usare cavi di categoria 5 senza compromettere la qualità del segnale. Tuttavia, vista la diffusione dei connettori XLR a 3 pin, spesso vengono usati cavi per microfono anche se questa non è di certo una pratica consigliabile. Come non è consigliabile lo "sdoppio" o connettore a Y per rinviare il segnale.A tal proposito esistono degli apparecchi appositi chiamati Splitter di segnale.

Sui cavi, i segnali hot e cold sono invertiti rispetto ai cavi per la trasmissione di segnali sonori e il segnale viaggia nella direzione opposta ai pin (il connettore femmina è out mentre il maschio è in). La disposizione dei pin è la seguente:

  1. Riferimento di terra
  2. Cold
  3. Hot
  4. (Non usato) Originariamente era il segnale di ritorno negativo
  5. (Non usato) Originariamente era il segnale di ritorno positivo

Ogni cavo DMX512 può trasmettere fino a 512 valori da 8 bit, tra 0 e 255, in questo modo un cavo può controllare fino a 512 dispositivi distinti. Siccome DMX supporta solo 512 canali, ci si può imbattere in situazioni in cui sono necessari universi DMX distinti. Per universo DMX si intende una singola linea di collegamento dal controller e tutti i dispositivi associati a quel cavo. La maggior parte delle console DMX recenti supportano più di un universo DMX, ognuno dei quali deve essere cablato indipendentemente.

I dati DMX512 vengono inviati utilizzando i livelli di voltaggio e il sistema di cablatura dello standard RS-485. La specifica DMX fa riferimento a RS-485 per le informazioni riguardanti i segnali elettrici. I dati sono trasmessi in modo seriale a 250 kbit/s e sono raggruppati in pacchetti di dimensione massima di 513 byte, con 1 bit di start e 2 bit di stop, in modalità LSB first. L'inizio di un pacchetto viene identificato con una pausa di almeno 88 µs (nello standard del 1986 era di soli 44 µs). I dispositivi ricevitori, quando si accorgono di questa pausa, resettano i contatori di ricezione. A questo punto vengono inviati i dati fino ad un massimo di 513 byte. Il primo byte è sempre il byte di stato, che indica ai ricevitori il tipo dei dati che seguiranno. Per i dati standard riguardanti i dimmer, il valore del byte di stato è sempre 0x00, mentre altri valori sono usati per sistemi proprietari o per le estensioni RDM dello standard.

I restanti byte costituiscono i dati reali. Possono essere inviati al massimo 512 byte ed è compito dei ricevitori mantenere un conteggio interno dei byte per distinguere i singoli canali. Poiché il protocollo DMX non prevede né error detectionerror correction, è importante che i ricevitori non perdano dei byte e che scartino i pacchetti nel caso si verifichino errori di framing o buffer overflow.

Un pacchetto completo impiega circa 23 ms per essere inviato. Ciò corrisponde ad un refresh rate di circa 44 Hz. Se è necessario un refresh rate più alto si possono utilizzare meno canali semplicemente iniziando l'invio di un nuovo pacchetto prima del completamento dell'invio di tutti i 512 valori. La dimensione minima di un pacchetto è di 24 canali. Tuttavia quasi tutti i trasmettitori inviano sempre 512 valori poiché molti ricevitori hanno problemi a gestire pacchetti più corti.

Le luci dinamiche usano canali adiacenti per controllare diversi aspetti del loro comportamento. Questi attributi posso essere disposti, ad esempio, nel modo seguente:

  1. Intensità
  2. Colore
  3. Filtro
  4. Rotazione sul piano orizzontale
  5. Rotazione sul piano verticale

Il canale filtro può utilizzare gruppi di valori per indicare quale filtro usare, ad esempio:

  • 0-20 = filtro 1
  • 21-40 = filtro 2
  • e così via.

Può essere indicata anche la rotazione del filtro, ad esempio:

  • 21-25 = filtro 2, fisso
  • 26-40 = filtro 2, rotazione da lento a veloce

Se sono presenti vari apparrecchi da controllare separatamente, l'indirizzo DMX512 di ogni dispositivo può essere impostato in modo che non si verifichino sovrapposizioni. Ad esempio, se l'indirizzo del primo dispositivo fosse 1 e quello del secondo 6, la situazione sarebbe la seguente:

Indirizzo DMX   Disp.   Attributo
    1            1      Intensità
    2            1      Colore
    3            1      Filtro
   ...          ...     ...
    6            2      Intensità
    7            2      Colore
   ...          ...     ...

I controller DMX512 moderni contengono librerie che indicano come mappare gli attributi sui vari dispositivi. Il controller in questo modo può utilizzare vari metodi di selezione e rotazione dei filtri anche se su un particolare dispositivo viene rappresentato da un singolo canale.

All'operatore viene così presentato un solo metodo coerente per controllare le luci anche se in realtà i vari dispositivi utilizzano valori e sistemi differenti per ottenere i vari effetti. Il controller deciderà in automatico i vari indirizzi per i dispositivi. Se 512 canali non sono sufficienti, sarà necessaria una console con connettori di uscita multipli. Ogni connettore di uscita controlla un universo differente, permettendo in questo modo di gestire molti più dispositivi.

L'output DMX512 è progettato per gestire 32 unità di carico. Un singolo dispositivo può rappresentare una frazione dell'unità di carico anche se la cablatura tra i dispositivi può degradare il segnale in modo significativo. Per ovviare a questo problema ed al problema della gestione dei cavi, spesso si usano dei buffer DMX512. Questi apparecchi hanno un DMX512 in e parecchi DMX512 out, attraverso i quali vengono trasmessi gli stessi dati. Ogni output può così controllare 32 unità in modo da dividere il segnale dal controller a centinaia di dispositivi.

Non è consigliabile, invece, suddividere il segnare DMX512 cablando un output verso due input. Ciò potrebbe portare a problemi di terminazione. Per esempio, se entrambi i rami della suddivisione fossero terminati con resistenza da 120 ohm, la resistenza combinata risultante sarebbe di soli 60 ohm e ciò probabilmente porterebbe in sovraccarico il trasmettitore DMX facendolo spegnere o produrre un voltaggio troppo basso. Nel caso in cui solo uno, o nessuno, dei due rami fosse terminato, i rami non terminati creerebbero segnali di riflesso, causando la perdita di dati.

Nozioni pratiche

La diffusione di DMX512 è dovuta in gran parte alla sua robustezza. I cavi possono essere maltrattati senza avere degradi di prestazioni come ad esempio avverrebbe con i cavi Ethernet. Spesso non vengono applicati i terminatori in modo che, senza di essi, un'eventuale interruzione del cavo non comprometterebbe l'operatività dei dispositivi.

Comportamenti anomali degli apparati di solito sono dovuti ad errori di indirizzamento, cavi rovinati o istruzioni errate dal controller. I cavi rovinati possono potare a problemi intermittenti come il twitching dei dispositivi.

I due pin non utilizzati sul connettore a 5 pin, in origine, erano stati riservati per fornire dati diagnostici di ritorno al controller ma, in realtà, questa funzionalità non è mai stata implementata, così alcuni produttori hanno deciso di usare connettori a 3 pin. Altri produttori usano i pin aggiuntivi per trasmettere altri dati o corrente elettrica ma ESTA vieta l'utilizzo di questi pin per trasportare corrente poiché ciò potrebbe danneggiare i componenti elettronici di alcuni dispositivi. Di conseguenza, spesso si rendono necessari parecchi adattatori che possono portare ad un degrado della funzionalità del sistema. Alcuni produttori preferiscono usare i connettori a 5 pin per evitare confusione tra i cavi del sonoro e delle luci.

Per controllare la rotazione orizzontale di un Martin Mac 500, la cui rotazione massima è di 440°, un incremento di 1 risulterebbe in un movimento di 1,7°. Essendo necessaria una precisione maggiore, i Mac e altri dispositivi utilizzano 2 canali per segnale. Ciò permette l'utilizzo di valori a 16 bit, tra 0 e 65535, fornendo due canali di controllo, coarse e fine.

Sviluppo

ESTA e altre associazioni hanno sviluppato parecchie alternative al DMX512, per ovviarne i difetti. Una configurazione che sta avendo successo è la combinazione di DMX512 ed Ethernet. Si usa Ethernet per comunicare tra il controller ed il palco, dal quale poi degli appositi dispositivi bridge convertono il segnare in DMX512 verso i dispositivi. I protocolli Ethernet utilizzati sono spesso specifici al produttore.

Una nuova versione dello standard DMX512, chiamata DMX512A, pone le basi per il protocollo RDM (Remote Device Management), il quale permetterà il feedback diagnostico dai dispositivi al controller e permetterà la comunicazione bidirezionale tra controller e dispositivi. Sul lungo termine, continuano i lavori sull'ACN, uno standard open basato su Ethernet pensato come rimpiazzo del DMX512. Anche quest'ultimo standard è gestito dall'ESTA.

Protocollo

Il protocollo si basa su una linea industriale, ovvero la RS485, ed è formato da un treno di dati digitali (1=Acceso/0=Spento) a 5 volt. Un bit viaggia alla velocità di 4 µs, ossia c'è una frequenza di 250 kHz.

Il gruppo di dati è formato da 6 parti:

  • BREAK: Segnale di inizio della trasmissione di un gruppo di dati della durata minima di 88 µs e quindi 22 bit a 0.
  • MARK AFTER BREAK (MAB): Questo segnale serve per portare tutti i canali a livello basso; può essere visto anche come un reset. Ha una durata minima di 8 µs o 2 impulsi. La durata massima di questo comando è di 1 secondo e non deve essere di più. Precedentemente, prima della riforma del 1990, l'impulso durava 4 µs o 1 impulso.
  • START CODE (SC): È il comando che indica che si sta cominciando la trasmissione del livello dei vari canali. In confronto al MAB o BREAK questo comando ha una durata fissa di 44 µs o 11 impulsi. È formato come un normale frame CD ma con il valore tutto alto.
  • MARK TIME BETWEEN FRAMES (MTBF): È il comando che indica l'avvio della trasmissione del valore di un canale. Può avere una durata variabile da 0 ad 1 secondo.
  • CHANNEL DATA (CD): È il comando che trasporta il livello di un canale. È formato da 3 parti: uno Start bit di 11 impulsi che indica l'avvio della trasmissione del valore, un valore variabile da 0 a 255 formato da 8 bit (multipli di due, ad esempio se voglio il valore 67 avrò a 1 il primo, il secondo e il settimo bit, infatti gli 8 bit corrispondono a 1-2-4-8-16-32-64-128), un segnale che indica il termine della trasmissione del valore formato da 2 bit.
  • MARK TIME BETWEEN FRAMES (MTBF): È il comando che indica il termine della trasmissione per un canale e indica il passaggio a quello successivo.

Facendo il calcolo di quanto tempo ci si impiega per il tutto troviamo che un blocco di dati dura 22754 µs.

Tipi di controller

Ci sono vari tipi di controller che utilizzano il DMX, essi variano da normali mixerini a 8 canali a mixer più sofisticati che con solo 8 slider e pochi bottoni (circa 20/25) gestiscono 192 canali e si possono programmare delle sequenze di luci da utilizzare poi.

Se invece andiamo sul professionale troviamo delle console studiate apposta per le teste mobili e gli scanner con un joystick o due cursori rotativi e una serie di tasti programmabili, oppure delle console che addirittura utilizzano degli schermi LCD dalle quali è possibile comandare più universi DMX ovvero si possono utilizzare più cavi DMX e quindi andare oltre i 512 canali.

Per ultimo cito la tecnologia che ormai sta prendendo piede fra coloro che gestiscono le luci (me compreso) ovvero il computer.

Ci sono molti programmi per farlo ma ne cito alcuni che secondo me sono i migliori; se poi qualcuno ne ha in mente altri non esiti ad editare questa parte ed aggiungerli:

Ricevere il segnale DMX con un microcontrollore

Grazie a un uC, da pochi euro si può prelevare il segnale DMX, e fare SWITCH, DIMMER tutto quello che si vuole.

Per prelevare il segnale si usa l'USART integrata in alcuni micocontrollori. Bisogna solo ricordarsi di alcuni parametri fondamentali per i settaggi. Che sono:

-->I baud 250000
-->Bit del dato 9

Prima di poter ricevere il segnale con l'USART bisogna riconoscere il segnale iniziale di BREAK, per riconoscerlo bisogna contare i bit che sono a 0, che minimo devono essere 44.

Una volta ricevuto il dato ci si può fare quello che si vuole. Un semplice SWITCH (ON/OFF), o qualcosa di più complesso come un DIMMER.

Se si volesse fare un dimmer, c'è da ricordare che i TRIAC al contrario dei TRANSISTOR, non limitano la corrente, ma fungono solo da interuttori. Quindi bisogna sincronizzarsi con la rete e tagliare la semionda. Per far ciò si manda un impulso al gate del TRIAC dopo un periodo (variabile da 0ms a 20ms) dal passaggio per lo zero della tensione di rete. Ovviamente un'impulso inviato subito dopo il passaggio per lo zero farà "passare" tutta la semionda (100%) e invece non mandare mai l'impulso corrisponderà allo 0%.

Oltre a dimmer e switch, si possono relizzare altre numerossissime periferiche come per esmpio uno splitter video. Così dalla console DMX si possono controllare anche degli schermi e sorgenti video oltre che delle luci.

Un valido microcontrollore che svolge questo compito è il PIC 16F876, che con pochi componenti (3 integrati)e tanti triac secondo i canali desiderati, si crea un DIMMER che viene a costare massimo 30 euro, che è agli stessi livelli di uno professionale.

Ancora una cosa per trasformare il segnale RS485 (quello utilizzato dl DMX), in segnale TTL, ci sono degli appostiti integrati come il MAX485. Per fare un lavoro fatto bene conviene usare un OPTO transistor come IL 6N136, così si isola la rete DMX dal circuito e si evita la formazioni di inutili LOOP di massa.

Più avanti mettero in rete un sito dove affrontero in modo molto dettagliato e diretto questo argomento, che è difficle diciamo impossibile da trovare nella rete.

Collegamenti esterni

Software di controllo DMX