Python library to control LED strips through Ethernet

I’m looking for Python libraries for simple on/off control of individual LEDs on a strip through Ethernet controller, e.g. Octo Mk2 (LED pixel controller - NextGen of DIN-rail data converter | ENTTEC : ENTTEC). LED blinking option would be a plus.

There are several protocols one can use, e.g. Art-Net or sACN.

I tried stupidArtnet (GitHub - cpvalente/stupidArtnet: (Very) Simple Python library implementation of the Art-Net protocol), which worked, but I couldn’t make PyArtNet (GitHub - MattIPv4/PyDMXControl: A Python 3 module to control DMX using OpenDMX or uDMX - Featuring fixture profiles, built-in effects and a web control panel.) to work. I’d appreciate any other suitable Python library suggestions?

I read an on-line magazine called Full Circle in which there’s feature titled “Micro This Micro That”. The guy that writes those features (Greg Walters) uses a MicroPython Libary called machine.

Now, I don’t know the first thing about the topic, but this came to mind, when I read your post, so I thought that possibly this info could be of help, if not directly, than maybe indirectly.

Thank you. This is close, but not quite what I’m looking for. The neopixel module (neopixel — control of WS2812 / NeoPixel LEDs — MicroPython latest documentation) can control LED strip from a microcontroller running MicroPython or CircuitPython, but it has to be directly connected to its SPI port. I’m looking for a solution where a PC sends control commands through an Ethernet network to a controller.

No worries. I’ll ask Greg if he knows anything about this and (if he can add any useful info) I’ll post back.


@pauljurczak

Hi Paul.

Greg has in fact responded right away. This is what he’s had to say:

I took a look and there is nothing that comes to mind immediately.

HOWEVER, I did find this link that MIGHT be helpful.

How to control Enttec Open DMX USB via Python? - Stack Overflow

That having been said, the LED strips DO look VERY close to the NEOPixel strips with the exception that they have a clock line on where the +5 VDC would be. I’m guessing that the Clock is used to pulse the voltage into each pixel.

I will study the home page for ENTEC a bit closer tomorrow (I didn’t sleep much last night) and look at their documentation a bit closer.

There is NO reason that either a RPi Pico/PicoW, ESP32 or ESP8266 couldn’t eventually be made to drive those puppies. The MicroPython group is REALLY smart and they have a bunch of wizards out there who seem to take challenges like this one head on.

Give me until sometime tomorrow and I’ll see what I can suss out.

I don’t think, by the way, that it’s an SPI port since it could be any pin except voltage that the signal is sent out on, but I could be wrong. Yes, their interface box MIGHT need an Ethernet connection, but there is nothing about Ethernet directly to the pixel strips. So Any microcontroller that has wireless capability (ESP32, ESP8266 or RPi Pico-W) should be able to work. Someone just needs to take the communication protocols and “hack” them.
Three MIGHT need to be a few external components requires for the clock and data lines (to get the voltages correct) but again, there SHOULD be no reason. IF the commands and schematics are not proprietary. Glancing at their home page, it might all be there for anyone to take a (pardon the pun) “hack” at it.

Greg is true to his word, so as and when I hear more, I’ll keep you posted.

Yes, I was oversimplifying with SPI. Capable microcontrollers can use any I/O pin. There are OTS solutions for USB controllers, e.g. Adafruit Feather RP2040 SCORPIO - 8 Channel NeoPixel Driver : ID 5650 : $14.50 : Adafruit Industries, Unique & fun DIY electronics and kits.

My question is constrained by Ethernet network requirement, e.g. with Enttec Octo. This is different from Enttec Open DMX USB.

Hi Paul. An update for you:

Greg has tried as much as he can to get the documentation and even registered an account with the Enttec Website so that he can d/load said, but for some reason, there’s been no response to his request for access. He says…

I STILL haven’t heard back from Enttec. However, as I scrolled the website again today I noticed that there are three sets of documentation.

Documents 0.1 and firmware v2.1 are for OCTO MK2 with serial numbers 2318635 – 2323030 ONLY

Documents 0.2 and firmware v3.1 are for OCTO MK2 with serial numbers 2341008 – 2350677 ONLY

Documents 0.3 and firmware v4.0+ are for OCTO MK2 with serial numbers 2374307 onwards ONLY

So, in order to offer any more assistance, the field of research would need to be narrowed down. He’d also need much more granular details about the light strips, the software scripts, and so on.

Not that I want to speak out of turn, but I think that Greg has really done as much as he can to help with this, so I don’t want to ask much more of him, but if you do have some more questions or comments, I’ll ask that he reads this thread, and I’ll then see if there’s anything more he can add.

Hi Rob,

Thanks a lot for your help. I have the newest Octo Mk2 with firmware v4.0. I will continue using stupidArtnet, which worked fine so far. I also posted a question on their forum: Python API to work with Octo : Technical Support. There is no need to dig deeper there. Just wanted to make sure I’m not missing something obvious.

1 Like