# D54 (protocol)

D54 is an analogue lighting communications protocol used to control stage lighting. It was developed by Strand Lighting in the late 1970s and was originally designed to handle 384 channels. Though more advanced protocols exist such as Digital MultipleX DMX (lighting), it was widely used in larger venues such as London's West End theatres which had Strand Lighting dimming installations, and it was popular amongst technicians because all the levels can be "seen" on an oscilloscope. D54 is still supported on legacy equipment such as the Strand 500 series consoles alongside DMX. Generally a protocol converter is now used to convert DMX (lighting) down to the native D54.

## History

One of the significant problems in controlling dimmers is getting the control signal from a lighting control unit to the dimmer units. For many years this was achieved by providing a dedicated wire from the control unit to each dimmer (analogue control) where the voltage present on the wire was varied by the control unit to set the output level of the dimmer. In about 1976, to deal with the bulky cable requirements of analogue control, Strand's R&D group in the UK developed an analogue multiplexing control system designated D54 (D54 is the internal standards number, which became the accepted name). Originally developed for use on the Strand Galaxy (1980) and Strand Gemini (1984) control desks.
Although a claimed expansion capability of 768 dimmers was documented, early receivers used simple hardware counters that rolled over before reaching 768, effectively preventing commercial exploitation. The refresh period would also have been slow on such a long dimmer update cycle. Instead, multiple D54 streams were supported by some later consoles.
D54 was developed in the United Kingdom at approximately the same time as AMX192 (another analogue multiplexing protocol) was developed in the United States, and the two protocols remained almost exclusively in those countries.

## Protocol

Article Authors Note: Little information is available regarding this protocol, so the below data is unverified and provided 'as is'.
Electrical Parameters
| Parameter | Abr. | Transmitting | Transmitting | Transmitting | Receiving | Receiving | Receiving |
| | | Max | Min | Nominal | Max | Min | Nominal |
| Transmitting Impedance$^1$ | Ro | 10 Ω | - | - | - | - | - |
| Receiving Impedance | Ri | - | - | - | - | 90 kΩ | 100 kΩ |
| Termination per dimmer$^2$ | Rt | - | - | - | 30 kΩ | 20 kΩ | 24 kΩ |
| Termination capacitor$^3$ | Ct | - | - | - | +25% | -25% | $10^{-}6/Rt$ |
| Sync Level | Vs | -6.0 V | -4.0 V | -5.0 V | - | - | - |
| Sync Detector Threshold | Vst | - | - | - | -3.0 V | -2.0 V | -2.5 V |
| Full Level$^4$ | Vf | 5.1 V | 4.9 V | 5.0 V | 5.1 V | 4.9 V | 5.0 V |
| Off Level | Vo | 0.1 V | 0.1 V | 0.0 V | 0.1 V | 0.1 V | 0.0 V |
| Safe Input Levels | Vm | - | - | - | - | +/-10 V | - |
1) Outputs to be short-circuit proof to 0 V to unlimited periods. 2) The termination resistor is paralleled for multiple dimmers received, e.g. 24 dimmers use 1 kΩ. 3) The termination capacitor is set to give a 1 μs time-constant, e.g. for Rt = 1k, Ct = 1,000 pF. 4) Full Level may be adjusted at the control system.
Temporal Parameters
| Parameter | Abr. | Transmitting | Transmitting | Transmitting | Receiving | Receiving | Receiving |
| | | Max | Min | Nominal | Max | Min | Nominal |
| End of Frame pulse | Te | 0.5 s | 35 μs | - | 0.5 s | 30 μs | - |
| Inter-Frame period | Ti | 15 μs | 0.5 s | - | - | 10 μs | - |
| Sync Pulse | Ts | 10 μs | 6 μs | 8 μs | 15 μs | 3 μs | - |
| Analogue Valid Delay | Tv | 15 μs | - | - | 20 μs | - | - |
| Analogue Hold period | Th | Td | 50 μs | - | Td | 45 μs | - |
| Total Dimmer period | Td | 0.5 s | 70 μs | - | 0.5 s | 70 μs | - |
| Total Cycle period | Tc | 0.5 s | - | 40 ms | 0.5 s | - | 40 ms |
| Analogue Gate Delay | Tg | 20 μs | 0 | - | - | - | - |
| Number of Dimmers | N | 384 | 1 | - | 768 | 1 | - |
| Slew Rate | - | - | 2 V/μs | 2.5 V/μs | - | 0 | - |
Practical remarks (Found while working on a project to interface DMX512 console to Strand EC90 dimmer):
1) The frame starts with a 0 volt for (> 50us i.e. a channel time) followed by a sync pulse then (channel 1) value and so on tell the whole (384 channels) i.e. you send a 0 valued channel then the 384 channel values, this first 0 valued channel acts as a start code.
2) Every thing works fine when the sync pulse >= 10 us.
3) Unlike DMX512, you cannot shorten the frame to the no. of channels you use, the whole 384 channels + the start 0 valued channel must be sent.
Again these remarks are gained from a practical project with Strand EC90 dimmer.