PixelPusher How To / DMX and ArtNet
-
CleverConQueso
- Member
- Posts: 190
- Contact:
This post is for the purpose of documenting the use of Usine HH2 with the PixelPusher LED controller. I'm 80% of the way to having it work the way I want. I don't see much on the topic and it appears that DMX is so archaic that the vocabulary and metaphors are oddball.
The PP connects via Ethernet. A config file on a USB stick lets you set the number of its 8 physical ports that are enabled and a number of LED's assigned to each one. You also put in a part number for the type of LED strip you're using and set some default options. There's a reset button inside the PP. When in doubt, press that.
PP provides a Java program that runs in a DOS box on your PC or Mac. My experience is with the PC. (http://forum.heroicrobotics.com/thread/39) This software acts as a bridge, connecting ArtNet messages to the PP. When it launches, it discovers the PP and reports back some of its basic config info like power draw, number of configured strips, the LED count on each strip. The program also advertises as an ArtNet server. When in doubt, restart this program.
LightJams distributes a free ArtNet sniffer program so that you can troubleshoot. It is here. (http://www.lightjams.com/artnetominator/) They're also offering a free 3 month license for Burning Man use. Thanks, LightJams!
Usine HH2 is configured under its settings control panel, DMX tab. Enable DMX and ArtNet. Put your full IP address under the IP address setting and select 'Broadcast'. I've experimented with putting localhost or 127.0.0.1 and neither are reliable.
I should mention here that going between WIFI and Ethernet with different devices on each was problematic. Reduce your opportunity for unknowns by going wired Ethernet throughout until you have everything working. Some routers isolate WIFI from physical or from each other. Whatever, go LAN.
When you put your IP address under the ArtNet config, it is saying that you want Usine to send DMX data inside the ArtNet protocol to the Java program you have running which will then convert the data to PixelPusher data and send it to the device it discovered.
In Usine, you are going to use DMX as your protocol. You start by adding a 'fixture' to a 'plot'. Fixtures are text files that contain configuration information for the physical devices - in our case LED's attached to the PixelPusher. Take a look in the Usine files on your hard drive for Resources/Fixtures. You'll see that they are text files with a format like the below. This is for one LED with three color settings.
R
V,1,255
G
V,1,255
B
V,1,255
(NB: The 1 could be a 0, I don't have the file in front of me)
Copy them to make a backup. Also, observe that there is no carriage return on the last line. You can make custom fixture files. In my case I have 170 LED's per strip so my file repeats that list above 170 times.
When you send data to this fixture, in Usine the input ports will be labeled R, G, B. You send a value of 0 to 1 to the port and it is converted to a value from 1-255. Sending a .5 to R, G and B all at once make the LED light half way to white. Here is where you have to talk DMX. Each variable, R, G, B etc are called Channels in DMX. In my example above, channel 1 is Red, 2 is Green, 3 is Blue and if there were another LED, Red for that one would start with channel 4, Green would be 5, etc.
When you enable DMX in Usine, the DMX panel appears in the top. It's the one with a 'fader'. The two numbers, 1 and 2 to the left of 'fader' are for 'plots' 1 and 2. I don't know where this language comes from but that's what they are. Open plot one by clicking on it. A patch-style window opens here. Right-click on a blank spot in the plot window and the edit panel will show you what 'universe' the plot is configured for. In DMX, for our purposes, universe 0 is the first 512 'channels'.
Recalling our example, Ch1 = LED1, Red, CH2 = LED1, Green, CH3 = LED1, Blue, CH4 = LED2, Red. Repeat. So in a single universe with three color LED's with no other controls, you can have 512/3 LED's. The PixelPusher will 'wrap' to the next universe when you get over 512 channels. This is different from how Usine appears to work. (I am trying to learn what other options are available with respect to Usine and DMX and unixerses.)
Open your object browser and drag a fixture from the fixture tab into the plot. Then drag the fixture from the plot to your patch. You can hook an LFO to say the R input for example and at this point, your LED should start cycling.
It appears to me that you can only address 512 channels in a single Usine plot. It also appears that there are only two Usine plots, which implies that you can only address two universes or 1024 values or 340 three color LED's. I'm very interested to see if this is not the case.
There are Usine objects for the DMX control panel which does not expose the universe number as a variable. There is another DMX object but I don't understand what it does and the WIKI page does not exist.
I'll update this post as I learn more.
-CCQ
The PP connects via Ethernet. A config file on a USB stick lets you set the number of its 8 physical ports that are enabled and a number of LED's assigned to each one. You also put in a part number for the type of LED strip you're using and set some default options. There's a reset button inside the PP. When in doubt, press that.
PP provides a Java program that runs in a DOS box on your PC or Mac. My experience is with the PC. (http://forum.heroicrobotics.com/thread/39) This software acts as a bridge, connecting ArtNet messages to the PP. When it launches, it discovers the PP and reports back some of its basic config info like power draw, number of configured strips, the LED count on each strip. The program also advertises as an ArtNet server. When in doubt, restart this program.
LightJams distributes a free ArtNet sniffer program so that you can troubleshoot. It is here. (http://www.lightjams.com/artnetominator/) They're also offering a free 3 month license for Burning Man use. Thanks, LightJams!
Usine HH2 is configured under its settings control panel, DMX tab. Enable DMX and ArtNet. Put your full IP address under the IP address setting and select 'Broadcast'. I've experimented with putting localhost or 127.0.0.1 and neither are reliable.
I should mention here that going between WIFI and Ethernet with different devices on each was problematic. Reduce your opportunity for unknowns by going wired Ethernet throughout until you have everything working. Some routers isolate WIFI from physical or from each other. Whatever, go LAN.
When you put your IP address under the ArtNet config, it is saying that you want Usine to send DMX data inside the ArtNet protocol to the Java program you have running which will then convert the data to PixelPusher data and send it to the device it discovered.
In Usine, you are going to use DMX as your protocol. You start by adding a 'fixture' to a 'plot'. Fixtures are text files that contain configuration information for the physical devices - in our case LED's attached to the PixelPusher. Take a look in the Usine files on your hard drive for Resources/Fixtures. You'll see that they are text files with a format like the below. This is for one LED with three color settings.
R
V,1,255
G
V,1,255
B
V,1,255
(NB: The 1 could be a 0, I don't have the file in front of me)
Copy them to make a backup. Also, observe that there is no carriage return on the last line. You can make custom fixture files. In my case I have 170 LED's per strip so my file repeats that list above 170 times.
When you send data to this fixture, in Usine the input ports will be labeled R, G, B. You send a value of 0 to 1 to the port and it is converted to a value from 1-255. Sending a .5 to R, G and B all at once make the LED light half way to white. Here is where you have to talk DMX. Each variable, R, G, B etc are called Channels in DMX. In my example above, channel 1 is Red, 2 is Green, 3 is Blue and if there were another LED, Red for that one would start with channel 4, Green would be 5, etc.
When you enable DMX in Usine, the DMX panel appears in the top. It's the one with a 'fader'. The two numbers, 1 and 2 to the left of 'fader' are for 'plots' 1 and 2. I don't know where this language comes from but that's what they are. Open plot one by clicking on it. A patch-style window opens here. Right-click on a blank spot in the plot window and the edit panel will show you what 'universe' the plot is configured for. In DMX, for our purposes, universe 0 is the first 512 'channels'.
Recalling our example, Ch1 = LED1, Red, CH2 = LED1, Green, CH3 = LED1, Blue, CH4 = LED2, Red. Repeat. So in a single universe with three color LED's with no other controls, you can have 512/3 LED's. The PixelPusher will 'wrap' to the next universe when you get over 512 channels. This is different from how Usine appears to work. (I am trying to learn what other options are available with respect to Usine and DMX and unixerses.)
Open your object browser and drag a fixture from the fixture tab into the plot. Then drag the fixture from the plot to your patch. You can hook an LFO to say the R input for example and at this point, your LED should start cycling.
It appears to me that you can only address 512 channels in a single Usine plot. It also appears that there are only two Usine plots, which implies that you can only address two universes or 1024 values or 340 three color LED's. I'm very interested to see if this is not the case.
There are Usine objects for the DMX control panel which does not expose the universe number as a variable. There is another DMX object but I don't understand what it does and the WIKI page does not exist.
I'll update this post as I learn more.
-CCQ
Very interesting post, thank you for sharing

-s
I guess the need might drive the ability to do so? 512 channels for a typical light setup would seem alot, but when you are talking controlling individual LEDs I could see why the huge quantity of channels are needed. As I had said, thank you for sharing it made me think a little. I don't get into the DMX portion of Hollyhock much, nor have dug deep. I mostly use my enttec VST, and just fiddle with an Intimidator, scorpion and kintex. More introductory for me...lolIt appears to me that you can only address 512 channels in a single Usine plot. It also appears that there are only two Usine plots, which implies that you can only address two universes or 1024 values or 340 three color LED's. I'm very interested to see if this is not the case
-s
"Every act of creation is first an act of destruction." -Picasso
-
CleverConQueso
- Member
- Posts: 190
- Contact:
Yes, when you start creating a light surface of three color LED's you run out of "channels" right away. There's like 30 LED's per meter or something. (I'm not sure, that's the hardware team's problem.) In our case we are trying to simulate Aurora Borealis in a steel tree canopy... in two weeks.
DMX seems to be a cousin of MIDI and both are showing their age as technology allows faster speeds and more devices.
To be very clear - I _freaking_ love Usine. We had folks working on this problem and another one for six months now and nothing. I banged out a working instrument in two weeks and the lights are coming along handsomely. The community is solid and dev support is amazing.
Watch this space for updates as the thing start to take more shape.
-CCQ
DMX seems to be a cousin of MIDI and both are showing their age as technology allows faster speeds and more devices.
To be very clear - I _freaking_ love Usine. We had folks working on this problem and another one for six months now and nothing. I banged out a working instrument in two weeks and the lights are coming along handsomely. The community is solid and dev support is amazing.
Watch this space for updates as the thing start to take more shape.
-CCQ
-
CleverConQueso
- Member
- Posts: 190
- Contact:
As it turns out - there's a very good doc I didn't see til now. Much of the above is covered there.
DMX MANUAL
DMX MANUAL
Yes, I just haven't personally put into experience. I helped edit and write the manual. I picked up a little of the DMX but spent more time in main Hollyhock manual....maybe I should go back through and run my lights through their paces 
Regardless, your sharing I picked up quite a bit I hadn't thought of especially with the aging technology and limitations in a common application.
BTW, I love your T-Shirts. Very cool design
-s
Regardless, your sharing I picked up quite a bit I hadn't thought of especially with the aging technology and limitations in a common application.
BTW, I love your T-Shirts. Very cool design
-s
"Every act of creation is first an act of destruction." -Picasso
-
CleverConQueso
- Member
- Posts: 190
- Contact:
Thanks. Soooo many meetings to get at that design. And thanks for the doc. It's super. Wish I had seen it earlier.
We did a custom fixture (super easy) with 170x3 inputs. My implementation plan is to send a color and a number to a data bus. Assign a serial number to each LED and do a 'pass if equal that number' for each one to make them individually addressable. Put the bus receiver logic in a sub-patch so that I can update the patch and reload it from the update rather than have to reattach 170x3x2 wires.
Then we can use step sequencers to control destination and XY pads to control color and send the data to the bus.
We did a custom fixture (super easy) with 170x3 inputs. My implementation plan is to send a color and a number to a data bus. Assign a serial number to each LED and do a 'pass if equal that number' for each one to make them individually addressable. Put the bus receiver logic in a sub-patch so that I can update the patch and reload it from the update rather than have to reattach 170x3x2 wires.
Then we can use step sequencers to control destination and XY pads to control color and send the data to the bus.
-
CleverConQueso
- Member
- Posts: 190
- Contact:
Status Report:
https://youtu.be/cTOGIBa2i10
This is ArtNet/DMX all powered by Usine - Usine is making the music (which cannot be heard) and the music is creating the data that powers the LEDs. We will have 17 more of these light strips.
https://youtu.be/cTOGIBa2i10
This is ArtNet/DMX all powered by Usine - Usine is making the music (which cannot be heard) and the music is creating the data that powers the LEDs. We will have 17 more of these light strips.
Who is online
Users browsing this forum: No registered users and 25 guests
