DMX512-A
DMX512-A は、EIA-485 に基づく通信プロトコルであり、主に舞台照明や演出機器の制御に使われている。
米国劇場技術協会 (USITT) の技術委員会が1986年から開発を始め、1990年には USITT DMX512/1990 という規格に進化した。1998年、ESTA (Entertainment Services and Technology Association) がANSI規格とするべく改訂を開始し、一般レビューも行った。改訂版 "Entertainment Technology — USITT DMX512–A — Asynchronous Serial Digital Data Transmission Standard for Controlling Lighting Equipment and Accessories" は、2004年11月にANSIに承認された。この現在の版は "E1.11、USITT DMX512–A"、または単に "DMX512-A" とも呼ばれ、ESTA が保守している。
DMX512 は当初「最小公分母」プロトコルとして各社独自のプロトコルのインタフェースとなるべく開発された。しかし、間もなく単にコントローラと調光器の接続だけでなく、演出機器や特殊効果デバイスの接続にも使われるようになった。DMX512 はコントローラ側から制御対象機器に信号を送るだけで、自動誤り検出も訂正もない。したがって、パイロテクニクスの制御のような人命に関わる用途に使うのは安全ではない。その用途にはMIDIショーコントロールなどが使われる。
制御対象機器は一般にデイジーチェイン接続される。各機器には DMX512 in コネクタがあり、一般に DMX512 out コネクタもある（機器によっては DMX512 thru と表示されている）。コントローラの DMX512 out にケーブルを接続し、それを最初の機器の DMX512 in に接続する。2番目の機器は1番目の機器の DMX512 out と接続する。通常、最後の機器の DMX512 out にはターミネータプラグを装着する。これは、インピーダンスを整合させるための抵抗（通常120Ω）が2番と3番のピンの間にある単純な器具である。機器によっては自動ターミネート機能があり、ターミネータプラグが不要である。
コネクタ自体は5ピンのXLRだが、実際に使っているのはそのうち3ピンである。機器によっては3ピンのXLRコネクタを使っており、フォーンプラグのジャックでDMXを接続する機器もある。ただし、これらは規格に違反しており、プロ用機器では DMX512-A 準拠が一般化しつつある。DMX512-A では5ピンXLR以外の使用は原則禁止で、コネクタを設置するスペースがない場合は、アダプタを付属させることになっている。
ケーブルそのものの規格は DMX512 から除外され、2004年にケーブルに関する規格策定プロジェクトが始まった。ケーブル規格としては、ポータブルな規格と恒久的設備としての規格がある。これらは、各地を移動してショーを行う際に必要となるケーブルと劇場に備え付けの配線に対応している。さらに、インピーダンスとキャパシタンスの基準を定義することで利用可能なケーブルの手引きを提供している。例えば、マイクやオーディオ用ケーブルは特性が違うため、DMX512 に使うべきではない。そのようなケーブルはインピーダンスが低すぎ、キャパシタンスが大きすぎるため、DMX512 のケーブルとして使うとデータの誤りを引き起こしやすい。
Data Plus（3番ピン）と Data Minus（2番ピン）は通常とは信号の流れる方向が逆である（メスが out、オスが in）。DMX512-A のピン配置は次の通り。規定に反して2番と3番のピンの極性を逆転させているメーカーもあり、アダプタなどが必要になる。照明制御卓には極性セレクタがあることが多く、全体が逆の極性ならアダプタは不要である。
DMX512データリンクでは、まずデータ型を指定する開始コードを送信し、それに512チャンネルに対応した8ビットコードが続く。したがって一本のケーブルで512個までの調光または制御が可能である。それ以上の制御が必要であれば複数のDMX「ユニバース」を使用する。ユニバースとは、DMX512の1つのデータリンクを意味し、そのデータリンク上の全ての機器を意味する。制御を分離する目的でユニバースを分けることもある。例えば、調光と照明の向きの制御を異なるデータリンクにするなどである（それぞれが512のチャンネル全部を使わない場合も分けて制御する）。
DMX512のデータは EIA-485 の電気的仕様を使っている。DMXの仕様では、電気信号については EIA-485 を参照することになっている。データは250kbit/sでシリアルに伝送され、1度に連続転送されるのは最大513バイトのパケットである。1バイトを DMX512-A では「スロット」と呼ぶ。このプロトコルでは1ビットのスタートビットと2ビットのストップビットを使い、データはリトルエンディアンである。パケットの先頭には最低でも88μ秒のブレーク信号があり、それに最低でも8μ秒の "Mark After Break" (MAB) が続く（1986年の規格では4μ秒だったが1990年に拡張された）。ブレーク信号は受信側にデータが後に続くことを予告するものである。ブレーク信号の後に最大513スロットが送信される。最初のスロットは「開始コード」であり、後に続くデータの種類を知らせるものである。照明や調光器向けの開始コードはゼロである。他の開始コードとしては、Textパケット、System Information Packet (SIP)、システム独自のもの、DMXのRDM (Remote Device Management) 拡張用などがある。
残りのスロットは実際のレベルデータである。最大512スロットを送信し、受信側がスロットを数えて自分のチャンネルを捉える必要がある。DMXには誤り検出訂正機能がないので、受信側がスロットを受信しそこなわないことが重要である。
最大長のパケットの送信には約23ミリ秒かかるので、リフレッシュレートは約44Hzである。リフレッシュレートを高くするには、送信チャンネル数を減らせばよい。これは、512チャンネルを全て送信し終える前に次のパケットを送信し始めるということを意味する。最小パケット長は24チャンネルぶんである。しかし、受信側が短いパケットに対応できないものが多いため、多くの送信器は512チャンネルを常に送信するようになっている。
一般的な調光器は複数の照明を制御するので、複数スロットを使って調光レベルを決定する。一般に、一番小さいチャンネル番号を指定し、必要なチャンネル数ぶんをその機器が使用する。例えば6個の照明を調光する調光器が2台あると、1台目はチャンネル1から、2台目はチャンネル7から使用する。各スロットは1つの照明の調光に対応している。スロットで示されたレベル数値の解釈（プロファイル）も様々である。線型プロファイルであれば、スロットの値がそのまま照明の強さに対応する。例えば、プレヒート・プロファイルではスロットが示す値が5%未満であれば、5%の出力をキープしておき、5%を超えると線型に出力を変化させる。
照明を自動的に動かす場合、連続するチャンネルを使って様々な制御を行う。例えば、次のような制御が並んでいる。ゴーボーのチャンネルの値はグループ化して種板の選択に使う。例えば、0 - 20 は種板なし、21 - 40 は種板1番、41 - 60 は種板2番といった風になる。また、同じチャンネルで種板の回転を指示することもできる。
DMX512 のケーブルで機器をデイジーチェインする場合、ケーブル長が長くなると信号が劣化する。そのためDMXバッファをよく使う。DMXバッファは DMX512 in は1つだが、DMX512 out を複数持っていて、それぞれに機器をデイジーチェイン接続できる。DMXバッファを使わずにケーブルを二股にすることはできない。分岐点で信号の反射が発生し、誤動作の原因になる。
DMX512 は単純であるがゆえに堅牢性がある。イーサネットなどの高速データケーブルでは考えられないような乱暴な扱いをしても問題なく運用できる。ターミネートプラグなしでも運用に支障がない場合もある。問題が生じるのは、機器のチャンネル設定ミス、ケーブル接続ミス、コントローラの制御データの間違いがほとんどである。ケーブルに問題があると、機器が間欠的に誤動作するなどの奇妙な現象が発生する。
補助データリンク用の2つのピンは、2つ目のユニバースのデータを送信することを意図しているが、最近ではその用途に使うことはほとんどない。メーカーによっては規格で禁止されている3ピンのコネクタを使っている。DMX512-A では、5ピンXLRコネクタだけを使用可能としている。なぜそのような規定があるかというと、3ピンのXLRは容易にミキシング・コンソールなどに接続できるためである。誤ってそのように接続すると、強力な音声信号が照明などの電気回路を損傷する危険がある。しかし、一部メーカーはXLRコネクタのエクストラピンを電力（DC24V）の送電に使っており、これをDMX512対応機器と接続すると、やはり回路が損傷する可能性がある。
照明の向きは、ほんの少し角度を変えただけで舞台上にあたる光は大きく変化する。そのため、なるべく正確な制御が望ましいが、DMX512 では1スロットでのレベルは0から255であり、それ以上の細かい指定ができない。そのためパンやチルトにそれぞれ2チャンネルを使い、0 から 65535 の値を使って制御する機器もある。これを古いコントローラで制御する場合、2つの連続する制御チャンネルが1つの動作に対応することになる。そして、一方は大まかな制御（レベルを256単位で変化させる）で、もう一方が細かい制御（256未満の細かいレベル調整）に対応する。
最近では、ケーブルの設置が困難な場合に無線LAN技術を使うDMX512アダプタが登場している。無線でEIA-485の信号を送信すると、理想的条件下では約900メートルまで通信可能だが、メーカーは300メートルから400メートル程度の有効範囲を設定している。
チャンネル数の制限、信号が一方向だけである点、誤り検出訂正ができない点などDMX512の欠点に対処した拡張が各種提案されている。コントローラとブレイクアウトボックスの間をCAT5ケーブルで接続して複数のDMXユニバースのパケットを送信し、ブレイクアウトボックスから複数の機器に従来と同じ信号を送信する。このような方式はそれぞれのメーカーが独自に拡張したものだが、ESTAは現在この標準化に取り組んでいる。
2004年版のDMX512-Aでは、RDM (Remote Device Management) プロトコルが拡張として規定されている。RDMは各機器の診断フィードバックをコントローラに送るもので、双方向通信を実現している。2006年にはANSIにも承認され、急速に広まりつつある。
ESTA では、Architecture for Control Networks (ACN) というプロジェクトも行っている。これは、信頼できる転送機構を提供することを第一目的としている。また、ACNには機器がコントローラに対して自身の仕様（制御方法など）を通知する Device Description Language も含まれている。