ESP8266: Artnet receiver

Posted on Updated on

The other I was playing with a matrix of led. The matrix is made of a stripe of WS2801.

So, here is what I have done.

  1. I flash a new lua based firmware in the ESP8266 using Marcel’s NodeMCU custom build cloud service.
    Add WS2801 and / or WS2812 modules
  2. Wait and download the compiled firmware
  3. Flash it using the tool ESPtool
  4. I use ESPlorer to program the ESP
    1. Create a new ini.lua
    2. Copy the following lines of code.
      This is for a matrix 10×10 “snakelines”

      tmr.delay(5000000)   -- wait 1,000,000 us = 1 second
      ws2801.init(0, 2)
      s:on("receive",function(s,c) ws2801.write(string.sub (c, 19, 318)) end)
  5. Use Jinx or Glediator (I prefer Jinx) to drive the matrix and send the Artnet commands to the ESP8266

It works very well.
The code is simple and works well. I haven’t tried on large matrix but I think for larger matrix a fast wifi connection would be needed.

3 thoughts on “ESP8266: Artnet receiver

    Philippe Maegerman said:
    May 5, 2016 at 5:19 pm


    thank you for your code, this is my first project with nodemcu. I have run these leds with arduino and raspberry pi before, time for a new challenge.

    I have only used the udp part of your code to drive 104 leds ( 8*13 ), if I send 104 * blue, only the first 16/17 ones get the right color, the other ones go random.

    Do you have an idea what can cause this ? could it be because of the 3.3V from nodemcu ? Do you use a level shifter on the data line ?

    Here’s my code :

    ws2801.init(4, 5)



      DV responded:
      May 13, 2016 at 10:38 pm

      Hi Philippe,
      which version of Nodemcu are you using?
      I didn’t use any level shifter. Do you have enough power for all the stripe?
      In my Matrix 10×10, I inject 5 vdc every 25 leds.


    pim_man said:
    May 24, 2016 at 11:15 pm

    Hello, just saw your reply …
    I have nodemcu 1.0, never managed to drive the ws2801, the ws2812 do work, even without level shifter, power was OK 5V40A , connected every 50 pixels.
    I gave up on LUA and managed to have my matrix running with arduino IDE and Fastled, using UDP :
    No problems, only solutions ;P


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s