This DMX Shield enables sending and receiving DMX signals by using a save DMX hardware including isolation. Ideal for DMX projects without risking processor damages from high voltage peaks.
Download the project files including the Eagle based schema and board design:
I sometimes may have some boards available so you can ask for per mail.
The ideas behind the hardware design are:
The schema for this board is designed to use the standard serial interface of the Arduino board for sending and reveiving DMX data packages. Therefore the pin 0 and 1 are used to read and send the data. To switch the data direction between sending and receiving the digital pin 2 is used.
Here is the complete layout (click to enlarge):

(click to open a full size picture).
The details of the Shield design are discussed below.
Here is a picture of a fully assembled shield from version 2:

(click to open a full size picture).
There was still a wiring error with the version I took the photo so the 2 resistors have to be "crossed" and the RGB connector was not present yet.
When searching the internet you can see several chips being used to drive a DMX communication. They all are made to convert logic-level signals (LOW & HIGH) to the EIA-485 differential signal levels on the twisted pair cable.
Very common are the chips from MAXIM that I also use for my implementation. The one I prefer is the MAX485 or MAX481 which are identical with the exception of a low power shut down mode in MAX481 that we don’t need in the DMX scenario. MAX481 and MAX485 from MAXIM: http://www.maxim-ic.com/datasheet/index.mvp/id/1111
Other chips often used are the 75176b differential bus transceivers from Texas Instruments.
A typical schema using MAX481 for a DMX controller is:
In addition a +5V supply must be connected to pin 8 and the ground level to pin 5 of the MAX481 chip.
The three resistors are the termination of the DMX bus. These resistors MUST be present at the controlling node of a DMX bus. R2 is eliminating echo packets while R1 and R3 keep the DMX line in logical HIGH state when no controller is sending. This is especially useful when implementing RDM supporting controllers.
A controller that is not designed for RDM can leave the resistors R1 and R3 and use 120 Ω for R2.
When using the DMX controller chip within a slave node the resistors on the board SHOULD NOT be populated at all. The last node of the DMX bus MUST be terminated using a termination socket with a 120 Ω inside.
Pin 2 that chip controls whether the receive (pin 2) is active amd pin 3 does the same for the output direction. Because the pin 2 is internally inverted (marked as an invertion sign at pins 2 connection to the amplifier) both pins can connected together and can be controlled only by one logical signal. If the signal is high the output direction is enabled, if the signal is low, the input direction is enabled.
For a simple setup it is possible to connect the Driver chip directly to the Arduino pins but if you need a robust system, especially on a stage environment, you will have to add some more electronics to avoid electrical damage by defect equipment or accidental circumstances.
The electric potential of the DMX side of the implementation have to be isolated from the processor. There are 2 sort of chips that implement all you need:
There are 3 data signals from the arduino that have to be brought from the arduinos side to the DMX side: transmit, receive and the data direction:
| Part name | Value | Description |
|---|---|---|
|
Starting with the low parts... |
||
| R4, R6 | 330 Ω | Bands: (orange, orange, black, black, brown*) or (orange, orange, brown, silver*) |
| R5, R8, R9 | 470 Ω | Bands: (yellow, purple, black, brown, brown*) or (yellow, purple, brown, silver*) |
| R7 | 4,7 kΩ | Bands: (yellow, purple, black, black, brown*) or (yellow, purple, red, silver*) |
|
The resistors R1 - R3 should be adjusted for the role of the DMX board in your DMX setup.
|
||
| R1, R3 | 562 Ω | Bands: (green, blue, red, black, brown*) |
| R2 | 133 Ω | Bands: (brown, orange, orange, black, brown*) |
|
Now the capacitators... |
||
| C1,C2,C3,C4 | 100n | Capacitors stabilizing the power. Label: 104 |
|
The dc-dc converter... |
||
| DC1 | NME 0505 | A dc-dc-converter. The chip that provides another 5 v source for the DMX signal converter. |
|
Now you can check if the secondary 5v power is existing. |
||
|
The optocouplers and the driver chips... |
||
| IC1 | MAX481CPA | A MAX481CPA from Maxim or another supplier used to convert the differential DMX signal into a logical signal. The 8 pin chip can be soldered directly or put on a socket. Be sure to place it in the right direction. |
| OK1, OK2, OK3 | 6N137 | The optocouplers. The 8 pin chip can be soldered directly or put on a socket. Be sure to place it in the right direction. |
|
...and the connectors |
||
| DMX | 1X03 pinhead. I cut it from a longer (20 pin) one. | |
| RGB | 1X04 pinhead | |
When equipping the board it is possible to let off some components and thus to achieve simplification and cost reduction.
Here is a picture of a partly assembled shield from version 2 where all isolating components have been left off and only the sending and direction signal have been bridged.
I have included some comments in the parts list for using the board as a DMX Master, RDM Master and DMX/RDM Slave.
If you only need a DMX Master or DMX slave configuration the data direction can be set to a constant level.
If you only need to send then you should not connect the RX signal so you can still use the USB to upload sketches.
| Part | Value | DMX Controller | RDM Controller | DMX Slave | RDM Device | no isolation |
|---|---|---|---|---|---|---|
| C1 – C4 | 100 nF | C1, C2, C3 only | C1 and C2 only | |||
| DC1 | dc-dc-converter 0505 | none | ||||
| IC1 | maxim MAX481CPA | |||||
| OK1 - OK3 | Optocoupler 6N137 | only OK2 | only OK3 | none | ||
| R1, R3 | (see text) | none | 562 Ω | none | none | |
| R2 | (see text) | 120 Ω | 133 Ω | none | none | |
| R4, R6 | 330 Ω | R4 only | none | none | ||
| R5, R7, R8, R9 | 470 Ω | R8 only | R5 and R7 only | none | ||
| DMX | 3 pin connector | |||||
| Bridge R9 | Bridge OK1: pin 6 and 5 | Bridge used data lines from Shield pin to MAX481 pin |
A schema design I used for designing this shield can be found at: http://www.mikrocontroller.net/topic/190608
This work is licensed under a BSD style license. See http://www.mathertel.de/License.aspx
This page is part of the http://www.mathertel.de/ web site.