Using Pixelblaze as a custom DMX fixture

Inspired by this forum thread, I have just updated Flamecaster to support “fixture” mode. It lets you treat Pixelblazes as custom DMX fixtures (instead of just streaming Art-Net pixels to them, which of course you can still do.)

If you’ve got an Art-Net/DMX board or software, you can set it up to use DMX channels to control parameters on the Pixelblaze. As many channels as you need - it’s up to you. The pattern running on the Pixelblaze determines how the channel data is used.

It’s hard to overstate the potential utility – you can use the Pixelblazes in your Art-Net/DMX show setup as a simple RGB light sources.

Or you can let the Pixelblaze be a Pixelblaze and run complex patterns while you choose color and/or palette via DMX channels. Or, with a little code added to your patterns, you can use DMX to select patterns from the playlist.

It’ll be great for hardware creativity too. Since all the intelligence is in the pattern and is very easy to modify, you can use Pixelblaze to prototype or build any complex DMX light fixture you like.

Here’s a video showing control of a Pixelblaze set up as an RGB+strobe fixture. This is just the tip of the DMX iceberg. If you’re interested, Flamecaster and the patterns I used for this demo live here, on github.

12 Likes

I can’t heart this post enough!

This is very cool!

This is groundbreaking @zranger1 . The potential for this is insane and might expand the use of Pixelblaze to a whole different range of products.

I will get started with this and provide in depth testing in the next 4 months (festival is in October). This is amazing, huge thanks.

In my opinion, the only drawback I see is the need to have an additional laptop to run Flamecaster to enable Pixelblaze connectivity to Artnet. Not end of the world, but definitely not as “easy” as the native support of Artnet we can get with WLED for example.

I’d love to see people using this! There are some really fun possibilities. Right now, I think the main challenge setting it up will be that every lighting control program out there seems to use its own scheme for numbering nets, subnets, universes, and channels. Just remember - in Flamecaster, all numbering for everything starts with zero!

If you’re using software for DMX control, you won’t need another computer. Flamecaster is lightweight enough to run in the background on the same computer. Once configured, it’s made to run in the background and be ignored.

I’ve tested this way with Chromatik, Resolume Arena, Unreal Engine, Touch Designer and Q Light Controller. Having everything on one computer has the advantage of keeping Art-Net data intended for Pixelblazes local to the computer and off your LAN.

(If you’ve got a GrandMA or other dedicated DMX console, you will need a computer to run Flamecaster. It doesn’t have to be a big one though. A Raspberry Pi 4 or any old laptop will do the job. Connecting it to the console w/wired Ethernet is infinitely preferable to wireless though.)

Just to make sure I understand (I’m pretty noob on the network side):

  • PC Software / Console / App ? (Like Luminair ?): emits control signal in Artnet
    |
    | Better to have a wired connection here because Artnet is heavy on wifi / interferences (even if we send only a few parameters ?)
    |
  • Flamecaster (on a PC or Raspberry Pi connected to the same network): receives the Artnet signal and translates it to “Pixelblaze” language
    |
    | Wifi (not critical here since we send much less signal (only a few DMX channels) but is there a Pixelblaze version with an external antenna for better communication ?
    |
  • Pixelblaze (receives DMX channels and interprets them using a specific pattern instruction)

Amazing work !

That’s pretty much the way it works, except that if you’re running your control software on a PC, Mac, or Linux box, you can run Flamecaster on the same computer and save VJ table space, trouble and net bandwidth.

(If you haven’t done this sort of thing before, it involves setting up your software and Flamecaster so they communicate on the computer’s localhost address - usually 127.0.0.1 or 0.0.0.0. If you run into trouble, there are plenty of people here who can help with network configuration.)

Yes, this is clear for me thank you.
I’ve actually tried it with Resolume + Flamecaster on my old laptop to push pixels on Pixelblaze some time ago. It worked okay but failed as soon as I started another WLED device.

I noticed also that if I do VJ on my network in Artnet to Wled devices (not much issues except a few frame rate drops at some times) and I start another device with Pixelblaze (with a normal pattern), I get almost immediately disconnected from the wled devices and struggle to stay connected in a stable way.

Can’t identify precisely why it happens yet. I have planned extensive tests around this, I’ll let you know

Hello !

I’ve started to play with that fixture mode.

Configuration:

  • Pixelblaze driving 815 LED RGB (WS2812) at 192.168.1.44
  • Works fine “standalone” (about 30-40 FPS depending of the patterns)
  • Control laptop with Resolume + Flamecaster in Wifi at 192.168.1.48
  • Flamecaster running and configured as “fixture”

Capture
Capture2

Resolume:
Capture3

It works with the example pattern provided with Flamecaster and I’m able to change the color with Resolume, using a 1 LED fixture (3 channels).

But wierdly (Flamecaster says it gets about 30 FPS in and out), if I change the color, it takes anywhere between 5-20 seconds to register (for 3 channels…).
Interestingly, if I tell Resolume to rotate the color, it starts rotating as well on the Pixelblaze (reasonably smoothly), but with about 10-20 seconds delay, like it’s buffering with a 5-20 seconds delay…

Do you think it’s really wifi signal quality and the fact my control laptop (Resolume + Flamecaster) is not connected in Ethernet to the wifi router ? I can usually stream Artnet data from Resolume to other controllers (2 controllers, over 1000 pixels in total) quite reliably. Here I send only 3 channels.

Thank you

I’m pretty sure this is some kind of network congestion, but without being there, it’s hard to figure out exactly where in the system it would be. (FWIW, which I know is not much, I just tested here and am not seeing any delay at all when driving the Pixelblaze from a 1-pixel Resolume fixture at 30fps.)

Some things to check:

(1) In the Flamecaster ‘System’ tab, check that the Art-Net IP address is set to the actual address you’re using to send DMX from Resolume, and not the default 0.0.0.0 (all interfaces) address. Listening on all interfaces might cause Flamecaster to have to filter a whole bunch of additional traffic.

(This is probably not the issue, but I’ve had Flamecaster stubbornly refuse to save the Artnet IP address on occasion. So it’s worth a look.)

(2) Resolume doesn’t behave quite like a normal DMX fixture controller - it thinks everything is a video display, and is still continuously blasting out that Art-Net packet containing 1 pixel at whatever frame rate you set.

These packets could be piling up faster than the Pixelblaze can handle them, which might eventually cause connection issues, which would account for the delay.

As an experiment, set MaxFPS for the Pixelblaze (in Flamecaster’s ‘Pixelblazes’ tab) to a low value – 10 fps or less – and see if that makes any difference.

(3) Check the signal strength of the Pixelblaze connection, both on your router’s UI, and by doing a WiFi scan from the Pixelblaze’s ‘WiFi’ tab. These values should be -67dBm or higher (less negative) for this kind of traffic.

-70dbm might work, but as signal drops, packet loss and retries increase, and that is definitely going to slow things down. (Every change of -3db means signal strength is halved.)

Thank you for your answer.
I did some checks:

  • Wifi is at -48 dB on Pixelblaze, which is OK. Hard to do better anyways, the controller is currently outside of the Box and 5 meters away from my router

  • For some reason at full power the PB was getting super hot, and I’ve observed in the past being too hot makes the Pixelblaze unresponsive, and impossible to connect in Wifi. It is wierd because it’s currently out of the box 5cm away from any other wire and LED (that got very hot, like unsafe hot despite my wiring calculations). I suspect the temperature went through the Pixelblaze cables to the controller itself, which is wierd because he’s in parallel of course (2x6m of LED to drive). I have reduced power output to 75% and it’s much better: no more issues to connect to the PB in wifi, but no improvement on Artnet delay.

  • Artnet IP address was indeed 0.0.0.0 instead of my Flamecaster computer IP.
    I found out that editing the config file in Notepad before start Flamecaster makes sure the parameters are saved and applied properly. I recommend to use this file for configuration. After setting up Artnet properly, I reduced massively the delay between Resolume and the Pixelblaze, but kept having sometimes up to 2-3 seconds delay.

  • Then I reduced the Resolume output to 20 fps instead of 30 or 40 yesterday. Problem solved immediately ! I can now control the Pixelblaze with a MIDI controller setup in Resolume with no noticeable delay. I did a quick test at 25 fps and it was OK, but 30 fps seems to be too much.

  • I tried also with a small Android app named AuroraDMX. Works like a charm on my “busy” home wifi considering my phone, the computer running Flamecaster and Pixelblaze are all connected to the router in Wifi (no ethernet cables anywhere). App is very “basic” though, I’m open to better suggestions for Android.

Next step, I will try to connect 3 (or more) Pixelblazes and see if I can:

  • Run a different pattern on each of them
  • Manage to go to the next/previous/designated? pattern on one or all Pixelblazes by pressing a button on my MIDI console
  • Adjust the colors of 3 different patterns on 3 different PBs with only one fader on my MIDI controller (does it mean I should use the same DMX channels for the Pixelblazes ?)

Work in progress ! I’ll send videos as soon as I manage to make it work nicely.