DIY DMX USB adapter for the Z


Thank you so much for your kind reply…
Thanks to you my other Leds als light up now, RGB is fine after some swapping, To make the colors accurate I had to change to GRB…
So far it is not 100% stable, but at least I am using most of my led strip at this moment,
I just need to fine tune the code to work with my specific setup.
I just can’t thank you enough for sending me your code and information…
I am trying to learn from your code since I am a total noob when it comes to coding :-))
Your video looks cool, great contribution
Ps:could the reason that it is not 100% stable for me be that I use Arduino Nano, you think I need the Teensy for more stability
Really looking forward to your tutorial


Nice work, Multi_Sensor!

I’m working with lazenbleep on some lighting panels using this method.

@guyken1 - you said it’s not super stable, are you getting random frame lagging with your LEDs?
That’s what I’ve been encountering, with the Nano and a Duemilanove.

Checking out the DMXUSB library issues there’s an issue with memory being out of bounds, but even with a fix implemented myself I’m still getting frame lagging.

I thought it might be to do with Baud Rates, but the OP-Z seems to use 115200 only (same as the Enttec Pro? can’t find info on this).

One other idea I’ve had is that maybe the OP-Z actually requests proper DMX Widget parameters.
The DMXUSB library currently reports to the OP-Z that it can process 40 DMX frames a second, while this might not be true.

You can check what the spec needs with this document (page 3, section 5).

I’ll see what I can achieve by updating the library to report a “proper” break time and output rate, this might fix things. 40 frames a second should be no problem, even for an Arduino Nano.

@Multi_Sensor - have you experienced any frame lagging with the Teensy? I haven’t had the chance to test this out yet.

Wonder if Teenage could give us some DMX implementation insights?
Would be very handy to be able to know exactly what the OP-Z is expecting to receive from the DMX USB device, if anything at all.

Anyway, will let you know how I get on - cheers!


Strange thing is if I limit myself to 1 led for each fixture so a total of max 16 fixtures so only 16 leds max are controlled… everything is perfectly stable, just when I try to use multisensors code(with the greatest respect) when I adapt this script to my setup/ for example 80 leds total makes 16 x 5 and then it doesnt work as it does with multi_sensor … it is unstable meaning that a few leds don t do what they should, most do however…
Hope my explanation makes sense to you! Please feel free to ask me more … if you find how to adapt the code that would be amazing if you could share this with me or this community !
On Multi_sensors setup it works perfectly though… so it is probably on my side


Hey! Sorry for being M.I.A. I’ve been chatting with lazenbleep and I think I solved your stability problem. I made two adjustments to the code. If you add the line: #define FASTLED_ALLOW_INTERRUPTS 0
At the very top of your code, before #include <fastled.h> it will help because of how the fastled library handles interrupts. You can see more info here:

it disables interrupts while writing the LED data. The theory is that the OP-Z keeps interrupting the nano while its trying to write to the LEDS. The more LEDS, more time is needed to write the data and every now and then it gets stuck

Also, changing one of the “for” loops to this:
for (int index=0; index < 120; index++) {

So the code for that section becomes this:
// receive a DMX transmission
void showLEDs(int universe, char buffer[512]) {
for (int index=0; index < 120; index++) { // for each channel, universe starts at 0
int dmxValue = buffer[index]; // DMX value 0 to 255
int LEDchannel = (universe*510) + index; // Find the LED number; can’t fit a 3-channel fixture on the remaining two channels
…etc etc

that changes the range of channels. Seeing as we can only push out 16 fixtures, lowering that number gave me a performance boost as it’s not trying cycle through all 512 channels

Hope that helps. Amped to see what everyone’s been working on


Hey! Check my reply to 2xAA. It should apply to your code too and help make it more stable. I’ll share a version of that code too sometime soon. I found that while the Nano works quite well (I think I got 16x5 LEDs working really well), using a teensy 3.2 and ftdi chip I got 16x17 LEDs working really well.


I built a wireless DMX light transmitter that fits inside the module slot. Well sort of. It’s just taped into there right now but fits snugly. It also connects to and is powered by the OP-Z via a USB cable and then transmits the lighting data wirelessly to the lights in the room. It uses an ftdi USB serial chip and transfers the data using a wireless serial transceiver. It’s a fun solution for now. Maybe one day TE will implement artnet into the OP-Z app to make wireless lighting easier :grin: I’ll post tutorials soon, just been a little busy but if anyone wants the code or some help getting started if you know your way around an Arduino, message me. Happy to help


Props to Multi_sensor and 2xAA!


Thanks Multi_Sensor It works more stable now(after adding your lines to the code), thanks for your effort much appreciated mate !
I can fit 48 leds now it works really good 16 X 3 if I go higher its no longer stable, sometimes it works for a few second than it blocks completely after 10 or 20 seconds it kicks back in for a few steps and so on…
Anyway improvement is there, Did you really got it stable on 16 X 5 , if you have more ideas always welcome, but you already helped me out a a lot! Thank you soo much
BTW: The wireless control is awesome… Congratulations on that


This is awesome! I’m trying to do the same thing but only have an Arduino Uno and a micro. Neither seem to work. I guess the important bit is having the FT232 as the FTDI chip?

Anyone had any luck with the CP2102 as an FTDI?


Hi… mine stops working properly after a few seconds to 1 minute and it only stops working if I press play on the sequencer…
If I dont press play I can change color mix and it works just fine/ would be great if it would work when the seq runs.

pcb assembly