DMX Basics

Understanding DMX for the NE1
Brady Mikesell

I wanted to make this document for those that are new to the DMX stuff. The concept of the NE1 is based around the idea that you shouldn't have to understand that much about DMX.  The reality is, if you want to really be able to take full advantage of the NE1, and be able to diagnose problems, make profiles that work, etc, then you will want to have a good understanding of the basics of DMX.

First Things First:
DMX is NOT like USB.  DMX does not get any information from your lighting fixtures.  It's a one way street.  It only sends data, it does NOT receive anything.  No matter what kind of DMX controller you use, it has no idea what is in that chain of DMX cables.  I know, I know, maybe you have DMX software, or hardware that you load in profiles for (like the NE1) but those labels are for your convenience.  All a DMX controller knows, is it should send out values on certain DMX channels.  That is it, when it comes down to it... and all it does, is send out those values.  It has no idea if those values are being received, or going out into space.  I can not "see" or detect in any way any of your light fixtures.  The DMX protocol was literally created in 1986, with some revisions later on, but the core of it was developed in 1986.  That's 9 years before Windows 95...LOL. 

For review, this is how DMX operates:



What is a DMX "Channel"
Each DMX compatible fixture generally has a number of different control features. A fixture might have different colors it can use, maybe different gobos, perhaps pan controls, tilt controls, laser controls, dimmer control, strobe control.... etc... the types of controls it has just depends on what kind of fixture it is.

In order to control the various functions separately, the different control functions are divded into separate "DMX channels". 1 DMX channel might control color, while another controls Gobo selection, while another controls Strobe function. Each DMX channel has values from 0-255. Only one value can be outputted from each DMX channel at a time. The value will determine what happens with the function being controlled.

You might see something like this in the manual for your  fixture:














The above example is over simplified when it comes to values, but we will discuss values in a bit. What you see above, is that each control function is assigned to a separate channel. The reason why all control functions are not applied to one single channel, is because you can ONLY SELECT ONE VALUE PER CHANNEL AT A TIME. Hence, if you had all control functions on a single channel, you could not choose a Gobo and a Color, you would have to choose one or other, and the one you didn't choose would be off. A Gobo selection without having the lamp turned on would be useless. Hence, you have multiple channels, so you can choose a value for each function indepentently, again, keeping in mind that only one value per channel can be selected.

Why do can you only choose one value per channel?
For two reasons:

  1. Because programmers don't want you to accidentally try to input, for example, values that tell the fixture to try to strobe at two different speeds at the same time, or try to turn in two different directions.
  2. Also, because the traditional DMX controller has a single fader for each DMX channel, and a fade can not be in more than one position at a time.  
Here is a poorly made but very simple drawing of a DMX controller:

This is representative of a traditional DMX controller. As you can see, each DMX channel is controlled by a fader. This is not the way the NE1 is setup, but this is good to understand, for understanding DMX protocol & profiles. The fader is used to choose the DMX value it will send.

DMX Values:
In the figure to the right, you will notice the value of 255 at the top, and value 0 at the bottom. This represents the range for each indivitual fader control. If the fader is set to the bottom, the value it send is 0. If the fader is set to the top, the value it sends is 255. If the fader is somewhere between, then the value is set somewhere between 255 and 0.


Why are their "Ranges" of values for each Color and 
Gobo Selection?
Good Question but a simple answer:
With the NE1, we are using a lot of buttons, but remember with the traditional DMX controller, we were always dealing with faders. Again, each fader produces a value between 0-255.  Imagine drawing 255 equal dividing lines between the bottom of the fader to the top, and then getting a resistance based fader to produce a value of exactly 135. Just considering this, you should probably know the answer now. Because it would be rather difficult to hit an exact value between 0-255, they give you a range instead. Hence, for the color red, ANY value between 31-50 will give you exactly the same result, the color red.

So, why do they have 255 values for each DMX channel then, why not like 24 values?
There is also a simple answer for that. Each DMX channel is GENERIC. Any DMX channel will control any thing with DMX values assigned, whether it's Pan,Tilt, Dimmer, Color, Gobo,- - etc. If you are pointing a moving head to a specific location, do you only want 24 possible values? If you are trying to dim a fixture to a specific brightness, would you only want 24 possible brightness levels? Hence, you have 255 possible values to provide smooth location selections or brightness level, and ranges are given to make specific selections like color or gobo much easier.

So... Back to the simplified DMX profile diagram:


The Specific number in the red circle DOES NOT INDICATE the DMX address of the fixture.

The numbers you see in the red circle, are only there to let you know how many DMX channels you have for the fixture, and what order the channels are in for controlling each function. Plus, it looks better than writing in all of the columns, "the next dmx channel", although that would actually be more technically accurate. The only connection between the numbers in that column, is that they tell you how many DMX channels you will need addressed to each fixture, and what order they are in.

DMX Addressing: EXTRA CREDIT
Fortunately for anyone using the Wifly NE1 controller, the controller figures out your DMX address for you, for the most part. That said, it's good to know what is going on, right?

A fixture DMX address is like a street address, but much simplier, because it's a 1 dimensional address, like if everyone in your city lived on the same street, and the 1st address was just "1". However, the next address would NOT be just "2", kind of like the next house would not just be "2", because it takes up more space than that. Each fixture takes multiple DMX addresses. Remember all of those DMX channels in your fixture profile? Technically, every single one of those channels needs a DMX address.

FORTUNATELY, you only have to come up with the address of the 1 s t DMX channel for your fixture. Basically you are telling your DMX controller, "this is where my fixture starts." To figure out what the address for your next fixture will be, you need to know how many DMX channels, and therefore how many addresses your fixture will take up. Your next fixture, ideally, will be addressed as the next DMX address past your first fixtures last channel. Jump ahead and look at the next table to see how this

works. Them come back here and read further.

IMPORT TO UNDERSTAND:
Traditional DMX controllers are completely stupid. They have NO IDEA WHAT YOUR FIXTURE IS, OR WHAT THE VALUE IT IS SENDING WILL DO. NO CLUE. DON'T CARE. ONLY DO AS TOLD. If you address two fixtures that are completely different to the same DMX address, it will still send out values, because it has no idea what it's actually doing. Of course, at least one of your fixtures will probably do some weird erratic stuff. If you have a fixture functioning very contrary to what you expect, you might want to see if it is addressed wrong..HA!

All a DMX controller knows, is it has a bunch of DMX channels available, and it will send some value between 0-255 to each DMX channel, determined by what you tell it. Even when you use a traditional DMX desk to make a big complex chase program with 40 scenes 28 different fixtures, blah blah blah... the controller doesn't know what's really going on. All it knows, is it's sending a bunch of values out to different channels, and then it's changing scenes and sending different values out. It doesn't care, and it doesn't know. For you old DOS guys, "you want me to delete myself? Sure, you bet". It doesn't know, it doesn't care. It doesn't discriminate. All channels are the same as far as it's concerned.

DMX Addressing, and example of how it works:
Let's say you have 4 different fixtures. Here they are:

Moving Head - 10 channels
Moving Head - 10 channels
Stinger - 10 channels
Stinger - 10 channels
Super Cool - 28 channels
Fog Machine - 2 channels

Okay, there ya go. How do we address these?
First of all, what are your goals? You have two moving heads. Do you want to be able to control them individually at times, or control both of them like a single fixture all the time?  Same question for the effect lights. Do you want to be able to control them individually at times, or control them like a single fixture all the time? Super Cool (just made it up) is a single fixture, so that's easy, individual control. Same for the fog machine.

If you want to send EXACTLY THE SAME COMMANDS to two to more DUPLICATE fixtures all the time, you can give those fixtures the SAME EXACT DMX ADDRESS. Again, the DMX controller doesn't care, and doesn't know the difference. It's just sending out commands to those DMX addresses... whether there are 50 of the same exact fixture on that address, or just 1.

If you want individual control sometimes, then you need seperate and different addresses for each identical fixture. Again, the DMX controller doesn't care, but if you have the same DMX address for both fixtures, it will send exactly the same values to both... because it doesn't know there are 2 or 3 or 58 of the same fixtures on those channels.... and it doesn't care. It's cold hearted that way.

So here is how I would do it:
a. Moving heads - Individual addresses for each, for individual control
b. Stingers – same address for both fixtures, will send same exact commands to each.
c. Unique addresses for both the pretend Super Cool fixture, and the Fog Machine


Things to Notice:
The address you give each fixture is only the "Starting address". The starting address is the address that will be assigned to "DMX Channel #1" of your fixture's DMX profile.  For example, for the ADJ Stinger effect, "DMX Channel #1" controls the built in programs. We have set the starting address for the ADJ Stinger as 021. This means that DMX Channel #1 for the Stinger DMX profile is actually addressed as DMX address #21. ADJ Stinger DMX channel #2 for it's DMX profile, is color  selection... so color selection would be DMX address #22.... and this would continue through all 10 channels of this fixture. (but again, you only have to worry about addressing for the 1st channel of your fixture).


As you look through this table, you can see how the individual DMX channels for each fixture line up
with the DMX addresses for a DMX controller.

Someone who knows DMX well, and how traditional (non-software) DMX controllers work may
comment on how each fixture assignment only allows for a set number of address for each fixture, and each fixture address starts with a specific address. For the non-DMX people who are using the NE1, be thankful you don't have to understand any of that, it's a headache.

The NE1 is a more intelligent controller. Also be very thankful that the Wifly NE1 will actually tell
you on the screen what DMX address you need to set your fixture too. The purpose of this document,
is to understand how DMX works. Understanding how DMX and DMX address works, will help you
with building profiles.



1 comment:

  1. FOUND IT ON UR BLOG NICE ONE
    FORTUNATELY, you only have to come up with the address of the 1 s t DMX channel for your fixture. Basically you are telling your DMX controller, "this is where my fixture starts." To figure out what the address for your next fixture will be, you need to know how many DMX channels, and therefore how many addresses your fixture will take up. Your next fixture, ideally, will be addressed as the next DMX address past your first fixtures last channel. Jump ahead and look at the next table to see how this

    ReplyDelete