Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ETC Ion flashing issue #3

Closed
TobyKLight opened this issue Nov 2, 2015 · 11 comments
Closed

ETC Ion flashing issue #3

TobyKLight opened this issue Nov 2, 2015 · 11 comments
Assignees
Labels

Comments

@TobyKLight
Copy link

First off - thanks so much for making this. It's pretty impressive to get E131 running on a tiny ESP8266 and doing some wireless pixel goodness.

The issue I'm having is that everything worked fine with my test controller - a software solution called QLC+ (http://www.qlcplus.org/)

But when I connected it to an ETC ION lighting console (Running software v2.2.1) it works but there are intermittent random flashes.

Debugging revealed those flashes were e131.data[#] values jumping to 200 inexplicably.
For now I've made a hack solution where I've modified the sketch so it doesn't process pixels when the value is 200.

This could be an issue with the ION but it seems unlikely given ETC is on the working group that setup the E131 standard. You think they'd implement it properly.

I understand no-one can do much about this without an ION console handy, and I'm afraid I've run out of time to look at this problem. But I thought I'd open an issue and get it out there in case anyone else runs into it.

@nccwarp9
Copy link

nccwarp9 commented Nov 2, 2015

for a while Ive been trying to get ws2811 work with esp8266 and am so happy I found this. I have also been getting random flashes but I think that's can be fixed by adding a 100p cap across GPIO0 to GND. I will try it later today.

@forkineye
Copy link
Owner

@finechap Do you have any packet captures from the network when this happens? The ION may be sending something that I shouldn't be processing as channel data.

@nccwarp9 If you're wanting to do WS2811, checkout my ESPixelStick project here - https://github.com/forkineye/ESPixelStick

@nccwarp9
Copy link

nccwarp9 commented Nov 2, 2015

that is one seriously nice project. I got a question, I have a led panel with 288 leds. From what I read universe can take up to 170 rgb leds. Is it possible to set up 2 universes on a single esp? or will I have to add it in the code ?

@forkineye
Copy link
Owner

@nccwarp9 It'll handle it just fine via unicast. Here's my 720 pixel test matrix (just over 4 universes) being driven by one ESPixelStick - http://www.youtube.com/watch?v=perR5NHttQ4

@mkohler99
Copy link

I can confirm this issue as well. We have 8 boards running this library with an ETC element and we saw flashes of channels to 100. On a GrandMA2 with the same boards and code, the issue was not observed. I'm assured by my contacts at ETC that their ACN implementation is more correct but it seems to cause issues with this library

@jmusarra
Copy link

What you're probably seeing is DD start code data. Consoles can transmit this information to enable users of multi-controller systems to merge data sources on a per-channel basis. Normal dimmer data (DMX) has a start code of 00 - also referred to as Null Start Code data. Only this 00 start code information should be interpreted by receivers as dimmer level data. Other start codes should be handled according to this document: http://tsp.esta.org/tsp/working_groups/CP/DMXAlternateCodes.php , or simply dropped.

@peerstelter
Copy link

I don't know how to fix...
but the Problem with ETC Desks is that the code interpret the Priority of the ACN Stream.
If you set the Priority to 100, you get flashes off 100.
if you set the priority to 200 you get flashes off 200 and so on...

@ThomasH-W
Copy link

Thanks to this thread, I got the hint what to do.
My fix for this issue:

Update e131.h for two lines

  1. add the declaration for ddStartCode (2nd line)
    public:
    uint8_t data; / Pointer to DMX channel data /
    uint8_t ddStartCode; /
    DD start code data*/
    uint16_t universe; /* DMX Universe of last valid packet */

  2. function "inline uint16_t parsePacket() {" : add the 2nd line in order to set ddStartCode

             universe = htons(packet->universe);
             ddStartCode = *packet->property_values;
             data = packet->property_values + 1;
    
  3. in the udp handler after receiving the package, you need to check the ddStartCode
    if (e131.universe == universe && e131.ddStartCode == 0)

@forkineye
Copy link
Owner

This completely slipped off my plate. I'll get a fix pushed this evening that ignores alternate start codes, just need some of you guys with those fancy console to test it :)

@forkineye forkineye self-assigned this Aug 3, 2017
@forkineye forkineye added the bug label Aug 3, 2017
@forkineye
Copy link
Owner

Possibly fixed in b6c7071, but I'm unable to test it. Can anyone test it and report back? Thanks.

@forkineye
Copy link
Owner

forkineye commented Aug 10, 2017

Fixed - b6c7071

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants