# DMX512

DMX (Digital MultipleXed) is een communicatieprotocol dat in de licht- en evenementtechniek gebruikt wordt. Het protocol is gebaseerd op RS-485.

## Werking

DMX512 (ook wel DMX genoemd) wordt gebruikt als seriële communicatiebus tussen verschillende apparaten in de theater- en lichttechniek. Vaak is het sturende apparaat een lichttafel met enkele dimmerpacks of andere meer ingewikkelde armaturen. Elk apparaat heeft een ingang en een uitgang zodat de bus tussen de verschillende apparaten doorgelust kan worden. Volgens de standaard gebruikt de bus vijf-polige XLR connectoren waarvan pin 4 en 5 optioneel zijn. Omdat er veel kabels met drie-polige XLR-connectoren van de geluidstechniek aanwezig waren werden die voor DMX-signalen gebruikt ook al is die niet toegestaan volgens de standaard. Deze kabels hebben vaak een impedantie van 75 ohm in plaats van de gespecificeerde 120 ohm. DMX protocol gebruikt altijd 3 aders, en nadat het protocol ontworpen was zijn, lag de 3-pin XLR voor de hand maar omdat deze al in gebruik was door geluidsturing is er gekeken naar de eerst volgende beschikbare XLR stekker, en dat bleek de 5-pin XLR te zijn. Daardoor kwam het idee voor de overige 2 aders om daar informatie terug te sturen vanuit de lichtapparatuur terug te sturen naar de sturende tafel. Dit is echter alleen geïmplementeerd door ETC, maar over het algemeen opgelost door RDM.
Het protocol zelf is bijzonder eenvoudig: na een korte wachttijd worden tot maximaal 512 8-bits kanaalwaarden achter elkaar verzonden. Er kunnen dus 512 dimmerkanalen aangestuurd worden met één DMX-kabel, waarbij elke dimmer tussen de 0 en 255 geregeld kan worden. Daarbij is een waarde van 255 gelijk aan een volledig ingeschakelde lamp en 0 gelijk aan een uitgeschakelde lamp. Op elk dimmerpack kan het adres waar het naar luistert ingesteld worden, het ontvangende apparaat hoeft na het detecteren van de zendpauze alleen maar af te tellen tot zijn waarde langskomt. Op de verschillende apparatuur die op DMX aangesloten kunnen worden is door middel van een menu, RDM, via dip- of rotary switches het desgewenste startadres in te stellen. Men dient daarbij te letten op het feit dat de adressen elkaar niet mogen overlappen als een apparaat meerdere parameters heeft.
Behalve de lichtintensiteit kunnen ook de kleur, vorm en richting van een lamp variabel zijn. Voor elk van deze parameters wordt dan een DMX-kanaal gebruikt. Voor een enkele apparaat (zoals een moving head) kunnen dan bijvoorbeeld twaalf DMX-kanalen in gebruik zijn:
* Intensiteit
* Rood
* Groen
* Blauw
* Vorm (gobo)
* Prisma
* X-positie (pan)
* Y-positie (tilt)
* Shutter/strobe
* Zoom
* Focus
* Control
Sommige apparaten vragen om een nauwkeurigere positionering dan mogelijk is met één 8-bit waarde. Dan worden er soms twee kanalen gebruikt om één parameter te veranderen, bijvoorbeeld de X-positie. Er zijn dan 2$^{16}$ = 65536 mogelijke waarden, in plaats van 256. Dit wordt gedaan door een tweede kanaal van de soort aan te wijzen. Het tweede kanaal wordt meestal gelabeld met de naam van het 8-bitkanaal gevolgd door het woord fine.

## Elektronisch

Elektrisch kunnen op één DMX-lijn in theorie 32 apparaten (bijvoorbeeld dimmers) aangesloten worden. Als er meer apparaten nodig zijn dan moet er een zogenaamde repeater tussen geplaatst worden, die het signaal versterkt. Verbeterde ontvangers in moderne apparatuur zorgen ervoor dat ze gemiddeld vaak maar ongeveer een kwart van de maximale belasting vertegenwoordigen die oorspronkelijke UARTs op een EIA-485 bus vertegenwoordigden. Hierdoor is het vaak mogelijk -maar niet aangeraden- om meer dan 32 apparaten aan te sluiten op dezelfde bus.
De bekabeling die gebruikt wordt moet volgens de EIA-485-standaard een impedantie hebben van 120 ohm.
Om reflecties te voorkomen dient men in de laatste fixture een zogenaamde DMX-terminator te plaatsen. Een DMX-terminator is een male XLR-connector met een 120 ohm (+5%/-10%) weerstand tussen pen 2 en pen 3. Dit is eveneens het geval voor een 3-pin DMX-connector.

## Manier van aansluiten

DMX 512 data wordt door middel van een 5-polige XLR-connector aangesloten echter voor vaste en afgeschermde installaties mag een RJ45 connector gebruikt worden. De pinbezetting voor een 5-polige XLR-connector is als volgt:
* Massa
* Data 1 (-)
* Data 1 (+)
* Data 2 (-) (optioneel)
* Data 2 (+) (optioneel)
De pinbezetting voor een RJ45 connector is als volgt:
* Data 1 (+)
* Data 1 (-)
* Data 2 (+) (optioneel)
* Niet aangesloten
* Niet aangesloten
* Data 2 (-) (optioneel)
* Data 1 massa
* Data 2 massa (optioneel)

## Geschiedenis

In 1986 werd in een 20 minuten durende bijeenkomst van USITT, opgezet door Steve Terry, de eerste versie van het DMX512 protocol afgesproken en gestandaardiseerd. De bijeenkomst was opgezet om te proberen een standaard te creëren voor de communicatie tussen lichttafels en dimmers, op dat moment was er een wildgroei van protocollen, zowel analoog als digitaal, die allemaal specifiek waren per fabrikant. Deze wildgroei werd veroorzaakt door de groeiende hoeveelheid dimmers die bij evenementen en producties werden gebruikt wat de oude analoge manier van een stuursignaal (0-10V, -2-7V etc.) per dimmer steeds duurder en gecompliceerder maakte, daarnaast waren de analoge oplossingen niet opgewassen tegen de toen gloednieuwe bewegende lichten. De fabrikant Strand Lighting hoopte er hun AMX192 tot standaard te verheffen, wat later ook is gebeurd, maar het voorstel dat het uiteindelijk haalde kwam van Gordon Pearlman. Zijn voorstel was in feite Colortran CMX maar met een hogere snelheid (250kbaud in plaats van 152kbaud). Bij het ontwerpen van DMX werd vooral gedacht aan het aansturen van dimmers en nog niet echt aan alle andere toepassingen die er in de loop der jaren ook mee worden aangestuurd.
In 1990 werd de standaard herzien, onder andere omdat er in zijn oorspronkelijke vorm een fout zat in de tijdsindeling van het signaal: de pauze na het einde van een data pakket (4µs) was korter dan de pauze na elke byte (8µs). Daarnaast was de pauze ook als vaste en niet als minimum-tijd gedefinieerd. Deze problemen werden opgelost in deze revisie die bekendstond als USITT DMX512/1990. Nadat deze problemen waren opgelost kwam de adoptatie van DMX in de lichtindustrie in een stroomversnelling en groeide het uit tot de de facto industriestandaard voor communicatie.
In 1994 worden op een bijeenkomst tijdens een PLASA conferentie verschillende voorstellen gedaan om de DMX512 standaard uit te breiden dan wel te verbeteren.
In maart 1998 publiceerde de subcommissie van het USITT die zich bezighoudt met DMX512 een "Call for Comments". In augustus 1999 werd USITT DMX512/1990 door het IEC erkend als internationale standaard IEC 62136. Een poging om de opvolger van USITT DMX512/1990, DMX512-A, via het IEC verder te ontwikkelen werd vrij snel weer opgegeven.
Onder leiding van het ESTA werd hierna tot 2004 gewerkt aan de ontwikkeling van DMX512-A. In eerste instantie wilde men de oorspronkelijke standaard vooral aanscherpen waardoor onder andere bi-directionele communicatie niet mogelijk zou zijn. De uiteindelijke standaard voorziet juist wel in de mogelijkheid bi-directionele communicatie (deze werd in 2006 afgemaakt met E1.20-2006 - Remote Device Management over USITT DMX512), verder werd onder andere vastgesteld wat de pen-indeling is bij gebruik van een RJ-45 connector, het "system information packet" werd toegevoegd deze biedt de mogelijkheid tot foutdetectie met behulp van controlecijfers, alternatieve start-codes werden vastgelegd voor verschillende typen pakketten (zoals het bovengenoemde "system information packet" en RDM pakketten maar ook fabrikant-specifieke pakket start-codes werden vastgelegd) en de XLR-3 wordt expliciet verboden. Ook het gebruik van het tweede paar in de DMX kabels voor het dragen van spanning om een lichttafel te voeden wordt expliciet verboden, dit paar is uitsluitend bedoeld voor signalen die voldoen aan RS-485 specificaties, mogelijke gebruiken worden vastgelegd maar het paar blijft aangemerkt "voor toekomstig gebruik".
Hoewel de nieuwe revisie de mogelijkheid tot fout-detectie en correctie toevoegt staat er nog steeds in de standaard dat deze niet geschikt is voor pyrotechniek. Op 18 maart 2004 wordt DMX512-A in een stemming door het ESTA comité dat zich bezighield met de ontwikkeling van DMX512-A geaccepteerd.
Op 8 november 2004 keurde het ANSI DMX512-A goed en is E1.11-2004 - USITT DMX512-A, Asynchronous Serial Digital Data Transmission Standard for Controlling Lighting Equipment and Accessories een feit.
Op 4 december 2008 werd een nieuwe revisie van DMX512-A gepubliceerd E1.11-2008 - USITT DMX512-A, deze versie vervangt de 2004 versie. In deze versie werd de verversinglimiet van DMX512 verduidelijkt (max. 44Hz bij 'vol' pakket maar hoger kan als er minder dataslots in gebruik zijn) en werd een nieuwe startcode toegevoegd om diagnostische tekstberichten in UTF-8 te versturen; tot dan toe was alleen ASCII hiervoor toegestaan.