Posted: 11 Aug 2015, 21:07
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