The DMX-Serial-Midi Interface

 

[supersize me]

 

Background

This was a custom project we just finished that seemed interesting enough to post on the website for others to see. It accepts regular DMX input and transmits serial and MIDI command, depending on the DMX channel values.

If you look closely, you'll see that the LCD display isn't connected to the main circuit board. In the final version, a short ribbon cable connects the display with the main board.

Contact us for pricing, availability & custom programming options.

* * *

Theory of Operation
-----------------------

The control board accepts a standard DMX signal and outputs a combination of serial and MIDI commands, depending on the DMX signal received. At this time, output commands are not field programmable.

The control board accepts a standard DMX signal, which is a serial data stream running at 250,000 bits per second. The control board includes a DMX input and a DMX through connector. These jacks are connected in parallel.

Power is provided by a wall-mount DC power supply, 9V @ 300 mA, center positive. An amber LED in the lower left hand corner of the circuit board will glow when power is properly applied.

The DMX input is optically and galvanically isolated from the rest of the control circuit.

The complete DMX Serial - Midi interface requires 55 channels of DMX. When an active DMX line is connected and the power is turned on, the unit's start address can be changed by pressing the 'down' and 'up' buttons on the main circuit board. The start address is displayed on the LCD screen.

The start address is retained in memory when the unit is powered down.

Note that if a DMX signal containing data for less than 55 DMX channels is connected, stable operation cannot be guaranteed. Also note that if the control board's start address is set at a value high enough that 55 DMX channels are not available in the data stream, the unit may malfunction.

Operation is as follows:

For the sake of clarity, the channel addresses listed here are internal to the control board. That is, address 1 below corresponds to DMX channel 1 only if the controller's start address has also been set to 1.

Serial Output
=============

If a channel value is greater than zero, the corresponding character will be transmitted on pin 2 of the controller's serial port at 19,200 baud, 8 data bits, 1 stop bit, no parity and no handshaking. The controller board does not respond to any serial input.

Note that a custom cable, or possibly a 'null modem' cable may be required to properly interface with a projector or other equipment. Check the target machine's required pinout carefully! Engineering Solutions Inc will not be held responsible for damage to either the target equipment or the DMX Serial-Midi Interface.

Serial programming was done according to this document:

Channel Output Comments
----------------------------------------------

1 C00{cr} Power On
2 C01{cr} Power Off
3 C30{cr} Digital Zoom +
4 C31{cr} Digital Zoom -
5 C46{cr} Zoom Down
6 C47{cr} Doom Up
7 C4A{cr} Focus Down
8 C4B{c4} Focus Up
9 C5D{cr} Lens Shift Up
10 C5E{cr} Lens Shift Down

Note that {cr} represents the ASCII carriage return character, which is hex '0D' or decimal 13. Also, there is a 10 mS pause between the individual characters being transmitted.

If the channel value is slowly changed from zero to full, the same serial sequence will be transmitted multiple times. This may or may not be desirable.

To transmit a serial string only one time, a cue in the host controller might be written like this:

---> Channel 1 @ Full Time Zero

Returning Channel 1 to zero from a value greater than zero will not result in any output.

Midi Output
=============

These next channels output 'note on' and 'note off' messages. If the DMX value of a particular channel is zero, no output is produced. If the DMX value is between 1 and 127, a note on message is transmitted. If the DMX value is between 128 and 255, a note off message is transmitted.

As above, if an actual fader is used to adjust the channel value, multiple messages will be generated as the DMX value corresponding to the fader position is changed. All of these note messages are transmitted on Midi channel 3.

DMX Channel Output
----------------------

11 A#2
12 A2
13 B2
14 C#2
15 C2
16 C3
17 D#2
18 D2
19 E2
20 F#2
21 F2
22 G#2
23 G2

Finally, there are 32 channels of DMX which correspond to MIDI controller messages. The output value of each controller is linearly proportional to the fader position on the DMX console, ranging from 0 to 127, offset by 1. So a channel value of 0 results in no output, a channel value of 1 results in a '0' message being sent, a channel value of 2 results in a value of '1' being sent, etc.

Again, these MIDI commands are only transmitted when the DMX value changes.

DMX Channel Midi Channel Controller Channel
------------------------------------------------------

24 1 CC00
25 1 CC01
... 1 ...
39 1 CC15

40 2 CC00
41 2 CC01
... 2 ...
55 2 CC15