Skip Navigation Linkswww.mathertel.de --> Arduino Projects --> DMX Shield with isolation

DMX Shield for Arduino with isolation

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

Download the project files including the Eagle based schema and board design:

Hardware design of the shield

The ideas behind the hardware design are:

  • One shield for DMX sending and receiving
    There are some Arduino Shield designs and standalone projects available that only support for one direction of communication. Because I played around with both scenarios I built a solution that allows both roles in a DMX setup. When only a receiver or sender situation is needed it is possible to leave some components unpopulated.
  • Support of DMX and RDM
    This requirement results in an explicit controlling of the direction of the communication and enabling/disabling the receiving and sending drivers. Also the main controller also has to be terminated and must provide a bias to keep the level in the ‘marking state’ when no driver is enabled.
  • Galvanic decoupling
    If you like a robust system and like to use your laptop or computer in a rough environment it is essential to decouple the systems and eliminate so called ground loops. Especially on stage you’ll be glad about that!
  • Simple solution for beginners
    All the components can be mounted on the Shield without much soldering experience and the extra components for supporting RDM and extra components for isolation can easily be left away
  • The shield also provides 3 PWM LED outputs (red, green and blue).
  • The DMX sockets are not part of the Shield layout to enable a flexible design of the box.

Schema

The schema for this board is designed to use the standard serial interface of the Arduino board for sending and reveiving DMX data packages. To switch the data direction between sending and receiving the digital pin 2 is used.

Here is the complete layout (click to enlarge):

The schema of the DMX Shield

The details of the Shield design are discussed below.

Here is a picture of a fully assembled shield from version 2:

A picture of the DMX Shield

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.

Driver Chips and DMX bus termination

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:

The schema of a DMX Driver chip

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.

Isolation

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:

  1. A 5 volt to 5 volt DC/DC converter with galvanic decoupling.
    There are complete solutions in a single component available like NME0505SC or AM1S-0505SZ that can be used to generate a 5V power supply that is galvanic isolated up to 1000V. So even if there is a high voltage attached to the DMX bus there is a chance of no or low damage.
  2. High speed TTL compatible Optocouplers
    These chips use a LED and light sensitive transistor to isolate the DMX bus from the Arduino data pins. There are standard TTL compatible Optocouplers available like the 6N137 from MOTOROLA.

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:

The schema for the DMX Shield

Simplifying

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.

A picture of a simplified DMX Shield

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.

Partslist and variations

Part Value DMX Controller RDM Controller DMX Slave RDM Slave 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)none562 Ωnonenone
R2(see text)120 Ω133 Ωnonenone
R4, R6330 Ω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

Appendix

A picture of the first DMX Shield Prototype, still without isolation looked like this:

A picture of the DMX Shield Prototype

Links

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.