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
Cheers,
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

1 Like

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

5 Likes

Props to Multi_sensor and 2xAA!

2 Likes

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

@Multi_Sensor & @lazenbleep

Is anyone of you selling those nifty contraptions for dmx lighting? If not, what’s the cheapest solution on the market so a noob can get started straight away?
Cheers and keep up the good work it looks insane.

I’m interested too, at least with the Arduino part

I found this: https://note.mu/htosaki/n/nd10ce1da59b1
I think he read this article to get inspired, it’s some kind of tutorial.
Unfortunately, it is only in Japanese, with Google translate seems almost readable, but I think he also solders some parts

Worth mentioning: for Neopixels (and probably all the other strips) to work, you have to buy an external 5V 2A power supply – the current from Arduino pins won’t be enough . Adafruit links to one from product description, and I’m waiting for mine now.

How do you find out whether the Z recognized Arduino properly?

My setup is:

  1. Arduino NANO
  2. A noname powered usb-c hub.
  3. 60-LED NeoPixel strip.

The blinking exercise from the NeoPixel guide works fine, but that’s all. Connecting to op-z with Perry Naseck’s code onboard doesn’t show any good signs. Couple of blinks from the arduino TX/RX LEDs is the best I could get.

With Nucleum it seems to work! Kudos to all the commenters above.

Is there a crowdsourced list of op-z compatible devices yet? Not the one from the official guide.

TIL, https://www.amazon.de/dp/B01J4BO0X8/ this one appears to work. It isn’t cheaper than Nucleum, but thinner. Same as Nucleum, it has only 2 USB ports

I’ve been trying to get this to work for a couple days now with no luck. My setup:

OP-Z to Nucleum to an Arduino Nano to a 144 LED strip. I’ve got the LED strip separately powered by a 5V power supply.

I’ve uploaded the software properly with both the DMXUSB.h and FastLED.h and I only get the following message:

In file included from C:\Users\matt\Documents\Arduino\DMXUSB_FastLED\DMXUSB_FastLED.ino:26:0:

C:\Users\matt\Documents\Arduino\libraries\FastLED-master/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002

pragma message “FastLED version 3.003.002”

                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~

I’ve got the OP-Z on and working, but nothing come on on the LED strip. No arduino TX/RX LEDs blinks. Any ideas what i may be doing wrong? Thanks in advance for any help.

I should add that I think i may have a bad Nucleum. It emits a high pitched noise when it’s plugged in and turned on and the blink test does not work on it. The blink test does work when i use a typical Apple USB C to USB adapter.

Hi . Thanks to @lazenbleep 's posts (and others) I’ve got my Arduino Nano + 48 neopixels +5Vdc power+ nucleum hub +OP-Z working.

I’m not an expert and don’t know what your errors are but step 1 was getting the Nano and LEDs working with library and demo code: WS2812FX by Harm Aldick thru the Arduino IDE