ESPixelStick


ESPixelStick – An E1.31 WiFi Pixel Controller

What is it?

A cost effective solution for driving a universe of pixels via E1.31 over WiFi.  The controller itself fits in 1″ thin wall PVC to enable embedding with the fixture its controlling.

From a hardware perspective, the ESPixelStick is a pixel driver motherboard for the ESP8266 ESP-01 WiFi module.  It provides proper power regulation for the module, a 5V tolerant programming interface, 5V buffer drive for the data line, configurable 5V/12V pixel support, fusing, and power connectors suitable for 5A of current.

From a software perspective, it is an E1.31 sACN (Streaming ACN) pixel controller that connects over a standard (802.11g/n) WiFi network.  The firmware is open source and developed in the ESP8266 Arduino environment.  It provides a web based configuration front-end and currently supports WS2811 / WS2812 pixels.  The web based configuration is mobile friendly and makes configuration a breeze, thank to John Lassen’s web framework.

How do I use it?

Wiring

Pixel and power wiring is straight forward and simple. Just make sure to set the jumper to 5V or 12V based upon your power source.  The programming interface consists of 3 wires: Ground, Serial Transmit, and Serial Receive.  Using a USB to serial breakout, simply connect the grounds together, T to TX on your adapter, and R to RX on your adapter.  Any USB to serial adapter that exposes the Ground, TX and RX connections should work, provided your system has the drivers for it.  CP2102 and FTDI (legit) based adapters shouldn’t require drivers to be loaded if you’re on Windows.

Programming

Flashing and Configuration

Flashing is done via the Arduino IDE with the ESP8266 board add-on.  You’ll need to have the board powered as no power connections are made via the programming connection.  To enter flash mode, reset the ESPixelStick using the RESET button, while holding down the PROG button – <Press PROG><Press / Release RESET><Release PROG>.  At the top of the ESPixelStick sketch, you can define your default ssid and passphrase for your WiFi access point.  The ESPixelStick will report its status and IP via the Arduino Serial Monitor as it connects to your network.  Further configuration can be done via the web interface once the ESPixelStick is connected to your network.

Making it flash lights!

If you’re new to lighting control or DMX, I recommend doing a little reading on E1.31 – sACN (Streaming ACN) which is the “DMX over Ethernet” standard.  diychristmas.org and doityourselfchristmas.com are excellent resources to get you started in lighting control.  Vixen 3 and xLights are two free and open source applications I recommend looking at to get you started in sequencing.  Both are actively being developed and offer different angles on light sequencing.

Here are 4 modules being tested (one attached to each pixel column), driven by Vixen 3

Where can I get it?

The ESPixelStick is available for purchase on Amazon.

Latest Firmware: https://github.com/forkineye/ESPixelStick/releases

Latest V2 Manual: ESPixelStick Assembly and Usage


Leave a comment

Your email address will not be published. Required fields are marked *

171 thoughts on “ESPixelStick

  • Dean

    Hi thank you for your hard work on the espixelstick but I hoping you could help me with a small issue.
    the unit is working in multicast with a problem with resetting every minute (virtual to the second) and im not sure why?
    com port reports

    ESPixelStick v1.3
    – Configuration loaded.
    Connecting to TP-LINK_B123CA………..
    Connected DHCP with IP: 192.168.0.100
    – Universe: 4
    – Multicast address: 239.255.0.4
    – Web Server started on port 80
    – Listening for 510 channels, from Universe 4 to 4
    Exception (0):
    epc1=0x40107092 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
    ctx: sys
    sp: 3ffffda0 end: 3fffffb0 offset: 01a0
    >>>stack>>>
    3fffff40: 4020d845 3fff5fb0 3fffff80 3fff5af0
    3fffff50: 3ffe0000 3fff5f88 3ffec900 4020e200
    3fffff60: 3fff5fb0 3fff5af0 3ffede36 40213fe3
    3fffff70: 3fff5af0 00000014 40214582 3fff5fb0
    3fffff80: 3fff5af0 3fffdc80 3fff5b88 00000052
    3fffff90: 40214eaf 3fff5fb0 00000000 3fffdcc0
    3fffffa0: 40000f49 3fffdab0 3fffdab0 40000f49
    <<<stack<<<
    ets Jan 8 2013,rst cause:2, boot mode:(1,6)
    ets Jan 8 2013,rst cause:4, boot mode:(1,6)
    wdt reset

    any ideas?

    • Shelby Merrick Post author

      Do you have any other devices on your network? It sounds like your multicast traffic is being queued on the DTIM interval which is common when devices with power management are connected (like phones, laptops, tablets, etc…). With 3rd party firmware, you can force Multicast rates, but a dedicated network is recommended if you require Multicast. Can you use Unicast?

      • Dean

        The network router is only connected to the Nodemcu 1.0 Esp12-12E and my laptop which is streaming the artnet but even if the module is the only thing connected to the router it still reset’s after 1 minute (54 sec from logging onto the network).
        I’ve adjusted the settings inside the router but this made no difference and also tried a Netgear router with the same result .
        I’m currently using a TP-Link TL-WR841HP.
        You also said about unicast I’m not sure how to set it up in this mode?
        any help would be appreciated

    • dunk

      I know whats wrong,its the cheap flash chips inside the esp under the metal case,replace it with winbond chip,100% fix,esp sometimes come with cheap chinese clones of the flash,they become corrupt quite quick,about 20 erase and writes and they are for the bin.

  • Sean

    I decided I’m going to make my own using the OSH Park PCB, but I was wondering, for L1 on the PCB, your Mouser parts list uses a 220 Ohm Ferrite Bead. I already have 4 Ohm Ferrite Beads, will that work in replace of the 220 Ohm Ferrite Bead?

  • Alan

    Curious as to the range this unit has. If I were to install these in arches and place them up and down my street. Say 100yrds. Will this need an extender on the antenna? I’d say the typical wifi (Linksys, netgear, cisco etc) is about 200 feet line of sight.

    Tnx
    Alan

  • Jann

    I’m pretty new to Arduino and only get this error message:
    “””
    ESPixelStick:77: error: ‘loadConfig’ was not declared in this scope
    loadConfig();
    ^
    ESPixelStick:80: error: ‘initWifi’ was not declared in this scope
    int status = initWifi();
    ^
    ESPixelStick:96: error: ‘initWeb’ was not declared in this scope
    initWeb();
    ^
    exit status 1
    ‘loadConfig’ was not declared in this scope
    “””

    I am running the latest Arduino and the latest ESP8266 Board version and on both windows and arch linux I get the same errors.

    Thank you for your great work!!!

        • Jann

          First of all, a big thank you!
          I have tested your project with a NodeMCU so far and used up to 64 Pixels and plan to make a wish tree (500+ pixels) with it.
          Sometimes I see a bit of a stuttering, have you experienced similar things, or do you know how to improve the rate of frames per second?
          Is it the webinterface?
          If yes, would an additional button to trigger the webinterface be the solution?
          I will try to debug things with Wireshark and I’m already using a dedicated 2,4Ghz n router.

          • Geoff

            Hello, currently using NodeMCU 0.9. Uploading via Arduino IDE 1.6.5.

            Compile Errors as Follows;

            ESPixelStick\bitbang.c.o: In function doGECE':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/bitbang.c:58: multiple definition of
            doGECE’
            bitbang.c.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/bitbang.c:58: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::setPin(unsigned char)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:57: multiple definition of
            ESPixelDriver::setPin(unsigned char)’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:57: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::begin(pixel_t)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:60: multiple definition of
            ESPixelDriver::setGamma(float)’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:60: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::ws2811_init()':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:70: multiple definition of
            ESPixelDriver::ws2811_init()’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:70: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::show()':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:76: multiple definition of
            ESPixelDriver::gece_init()’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:76: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::show()':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:83: multiple definition of
            ESPixelDriver::updateLength(unsigned short)’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:83: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::updateOrder(color_t)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:96: multiple definition of
            ESPixelDriver::updateOrder(color_t)’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:96: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::begin(pixel_t, color_t)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:37: multiple definition of
            ESPixelDriver::begin(pixel_t, color_t)’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:37: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::begin()':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:30: multiple definition of
            ESPixelDriver::begin()’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:30: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::begin(pixel_t)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:33: multiple definition of
            ESPixelDriver::begin(pixel_t)’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:33: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::setPixelColor(unsigned short, unsigned char, unsigned char, unsigned char)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:122: multiple definition of
            ESPixelDriver::setPixelColor(unsigned short, unsigned char, unsigned char, unsigned char)’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:122: first defined here
            ESPixelStick\ESPixelDriver.cpp.o: In function ESPixelDriver::show()':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/ESPixelDriver.cpp:131: multiple definition of
            ESPixelDriver::show()’
            ESPixelDriver.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/ESPixelDriver.cpp:131: first defined here
            ESPixelStick\_E131.cpp.o: In function _GLOBAL__sub_I__ZN4E1316ACN_IDE':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:31: multiple definition of
            E131::E131()’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:31: first defined here
            ESPixelStick\_E131.cpp.o: In function _GLOBAL__sub_I__ZN4E1316ACN_IDE':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:31: multiple definition of
            E131::E131()’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:31: first defined here
            ESPixelStick\_E131.cpp.o: In function E131::initMulticast(unsigned short)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:58: multiple definition of
            E131::initMulticast(unsigned short)’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:58: first defined here
            ESPixelStick\_E131.cpp.o: In function E131::initWiFi(char const*, char const*)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:76: multiple definition of
            E131::initWiFi(char const*, char const*)’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:76: first defined here
            ESPixelStick\_E131.cpp.o: In function E131::beginMulticast(char const*, char const*, unsigned short)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:150: multiple definition of
            E131::beginMulticast(char const*, char const*, unsigned short)’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:150: first defined here
            ESPixelStick\_E131.cpp.o: In function E131::beginMulticast(char const*, char const*, unsigned short, IPAddress, IPAddress, IPAddress, IPAddress)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:163: multiple definition of
            E131::beginMulticast(char const*, char const*, unsigned short, IPAddress, IPAddress, IPAddress, IPAddress)’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:163: first defined here
            ESPixelStick\_E131.cpp.o: In function E131::dumpError(e131_error_t)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:239: multiple definition of
            E131::dumpError(e131_error_t)’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:239: first defined here
            ESPixelStick\_E131.cpp.o: In function E131::initUnicast()':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:49: multiple definition of
            E131::initUnicast()’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:49: first defined here
            ESPixelStick\_E131.cpp.o: In function E131::begin(e131_listen_t, unsigned short)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:112: multiple definition of
            E131::begin(e131_listen_t, unsigned short)’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:112: first defined here
            ESPixelStick\_E131.cpp.o: In function E131::begin(char const*, char const*)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:119: multiple definition of
            E131::begin(char const*, char const*)’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:119: first defined here
            ESPixelStick\_E131.cpp.o: In function E131::begin(char const*, char const*, IPAddress, IPAddress, IPAddress, IPAddress)':
            C:\Program Files (x86)\Arduino\libraries\ESPixelStick/_E131.cpp:132: multiple definition of
            E131::begin(char const*, char const*, IPAddress, IPAddress, IPAddress, IPAddress)’
            _E131.cpp.o:C:\Users\spod\AppData\Local\Temp\build3390892978680968553.tmp/_E131.cpp:132: first defined here
            ESPixelStick\_E131.cpp.o:(.rodata._ZN4E1316ACN_IDE+0x0): multiple definition of `E131::ACN_ID’
            _E131.cpp.o:(.rodata._ZN4E1316ACN_IDE+0x0): first defined here
            collect2.exe: error: ld returned 1 exit status
            Error compiling.

            Had compile errors before and downgraded to IDE 1.6.5, not sure why I am getting these errors now as others seems to get on ok with using the nodeMCU. Any help would be greatly appreciated.

  • Dan Kisling

    I’m trying to adopt your code for a single LED, but I’m having some issues. I can show that I’m connected to sACN network, but I don’t seem to be receiving any information. Any ideas on how to troubleshoot this? I would really appreciate the help. I’m using an ETC GIO connected to a router to send the information.

    • Shelby Merrick Post author

      I’ve had a few reports of issues using ETC gear as a source, but unfortunately I don’t have any to test with. There’s an issue logged in the github repo talking about this and I plan on looking into the way I’m handling the E1.31 packets soon.

  • Alex Woodmansey

    Love the look of your device!
    I’m thinking of making 20 or so. Is there any chance you would release the gerbers (a bit of a cheeky request i know) or a Panelize version? I’d love to be able to made the boards over at dirty pcbs. getting 8x made in a 10x10cm panel would be a very cost effective of making a batch of boards. Otherwise you could upload your design there and get a kickback on each board purchased.
    Thanks, looking forward to seeing the new version
    🙂

  • Frank

    I see that you have a shared board design on OSHPARK. Is that the final version?

    If so, would it be possible to get the SMD parts list, please?

    Thanks!

    • Shelby Merrick Post author

      As of right now, I’m all out of the ESPixelStick kits. I’m in the middle of building and testing the new revision prototypes, which should hopefully be available mid to late July.

      • aj reynolds

        just curious are you going to post the schematic so we can see how V2 has changed from V1.3 last year. I’m trying to figure out if its worth replacing my existing boards with the new ones. Then again I had no issues last year so I’m really curious about the changes.

        • Shelby Merrick Post author

          I’ll post them once the boards are available. The V2 hardware replaces the primary regulator with a switching regulator and no longer requires manual voltage selection for 12V vs 5V power. It also fixes the bug with using 3.3v programmers and has a mounting hole so that it can be attached to a stud in a CG case. The physical size is the same and both utilize the same ESP-01 module.

  • Alan

    Shelby, I was running a few tests via xLights on the new test page. All seems to be working ok with the ESPixelStick. When I went to all on, the strip started flashing full white. Looking at the stick I saw the 8266 blicking blue and red light. Like it was locked up. The only way to stop it was pull the power. This also happened on the sequence page when I went to all white. I’ll do a bit more analysis and let you know if there is one specific reason for the board locking up.

  • JannF

    Is there any way you will add ArtNet as Input instead of sACN, as many Lighting Gear sends ArtNet and not sACN.
    They should be very similar both, but unfortunately I don’t have the skills to adopt it.

  • Bernard

    Shelby, I am curious to know if once the group buy is over if it will still be possible to still purchase the pixelstick as a kit or maybe simply the pre-soldered SMD board?
    Great work! lots of people were waiting for this group buy, thanks for putting it together.

  • LC

    Hello Shelby, very good project! I want to assembly one to try it, my problem is that I can´t find the buffer you used, can you suggest me some change, I will stay alert for a new board sell. Thanks!

    • Shelby Merrick Post author

      Sorry for the delayed reply. That’s the correct v1.1 board, yes. The V2 hardware board was never shared on OSH Park. I highly recommend sticking to the V1 if you wish to handle assemble them. The switching regulator on the V2 is very difficult even with a reflow station (10 pin .5mm WSON with power pad).

    • Mark P

      Not on it’s own, there’s not enough pins on the ESP8266. You’d need to have it output serial to another device that did the control.

  • Andy Lawton

    Great project, thanks for all your effort on this! Until I found your project I had almost given up on using pixels for Christmas lighting due to Ethernet controller costs. I’m kinda cheap and not frightened to get my soldering iron out if it means saving some $$!
    I knocked up a separate programming board on stripboard and a few interface boards on perfboard (they’re nowhere near as pretty as yours, but did I say I was cheap?!); the level shifter sits quite nice between four 0.1″ pads with the input leg lifted a little to ease soldering. I did have to solder them in place when I didn’t have my contact lenses in and was wearing reading glasses so I could see up close! My board is small enough to sit under the ESP-01 leaving the antenna clear. So far I have only three ESP-01s but more are on their way! All are working great with Vixen3 running on a Windows10 guest on a VMWare ESXi virtual server, talking on a separate NIC, VLAN and wireless access point. I see very very few out of sequence packets.

  • Nathon Johnson

    I’m using your firmware but connected using a nodeMCU esp8266 and a logic level converter to up to 5volts.
    everything works well on a single controller pushing 480 ws2801s but when i scale this to three units running 480 LEDS i get flicker and the units are resetting themselves

  • Kevin H

    When Uploading Sketch Data I receive the following compiler message:

    Exception in thread “AWT-EventQueue-0” java.lang.NoSuchMethodError: processing.app.Sketch.getBuildPath()Ljava/io/File;
    at com.esp8266.mkspiffs.ESP8266FS.getBuildFolderPath(ESP8266FS.java:117)
    at com.esp8266.mkspiffs.ESP8266FS.createAndUpload(ESP8266FS.java:263)
    at com.esp8266.mkspiffs.ESP8266FS.run(ESP8266FS.java:322)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

    Which could be the reason why the “Page Not Found” 404 error pops up when I access the node. Loving this project so far. Any thoughts?

      • Kevin H

        Is there some finessing required after I download the latest Java Update to my computer? OR do you think I should download a previous update of Java?

          • Kevin H

            I just redid everything and got a few steps further but am still hitting a road block. Now the “file system is full”

            [SPIFFS] data : /Users/kevin/Documents/Arduino/ESPixelStick/data
            [SPIFFS] size : 128
            [SPIFFS] page : 256
            [SPIFFS] block : 4096
            /www/bootstrap.css.gz
            /www/bootstrap.js.gz
            /www/index.html.gz
            /www/jqColorPicker.js.gz
            /www/jquery-3.1.1.js.gz
            SPIFFS_write error(-10001): File system is full.

            error adding file!
            Error for adding content from www!
            [SPIFFS] upload : /var/folders/k0/x6x1z2ls4xx800mf6f2_qzh40000gn/T/arduino_build_703869/ESPixelStick.spiffs.bin
            [SPIFFS] address: 0xDB000
            [SPIFFS] reset : ck
            [SPIFFS] port : /dev/cu.usbmodemFA141
            [SPIFFS] speed : 115200

            warning: espcomm_sync failed
            error: espcomm_open failed
            error: espcomm_upload_mem failed
            SPIFFS Upload failed!

          • Kevin H

            So I’ve managed to get the SPIFFS upload plugin installed correctly. Now when i upload the sketch data I’m receiving “SPIFFS_write error(-10001): File system is full.” Do you know what files are necessary to gzip and upload?

      • Zdzislaw

        @Kevin H
        Hello

        I have the same problem, the errors are the same.
        How did you solve this problem?

        Exception in thread “AWT-EventQueue-0” java.lang.NoSuchMethodError: processing.app.Sketch.getBuildPath()Ljava/io/File;
        at com.esp8266.mkspiffs.ESP8266FS.getBuildFolderPath(ESP8266FS.java:117)
        at com.esp8266.mkspiffs.ESP8266FS.createAndUpload(ESP8266FS.java:263)
        at com.esp8266.mkspiffs.ESP8266FS.run(ESP8266FS.java:322)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

  • Darren Reynolds

    Keen on purchasing a bunch of these, will they only be available from Amazon? If so what the ETA please?
    Many Thanks
    Darren

  • polosa

    Hi Shelby! Excellent project. In Argentina I can not get M74VHC1GT125DT1G. I can replace it with another buffer.
    I await your response.
    Regards!

  • Thierry

    Hello, and first of all thank you for this excellent program. I decorated my whole house for the Christmas 2015 with Led ribbon that I ordered thanks to a single module activating the 4 universes. My problem is that I have LED ribbons RGB, BGR and other RBG. Would it be possible to add the possibility in your software to be able to configure several types of led according to their position. For example 1 to 20 RGB and then 21 to 50 BGR then 51 to 70 RGB.

    Thanks for your response.

  • Kevin Graff

    This device has a serial option for DMX/Renard. What exactly does that option do? Does it output a serial stream in Renard protocol that emulates a USB connection? I’m thinking that maybe I could use it to communicate to an Arduino to run some dumb lights.

  • Laurentiu

    Hi,
    I have this issue :
    I have made a wifi network and I have connected 4 esp8266 (espixelstick) to it
    also I have connected a PC (windows 10) to the network wich runs MADRIX
    the esp8266 are programmed to listen multicast.
    in the router I have reserved IPs based on esp8266 MAC address
    each esp8266 has his own reserved IP
    each esp8266 controlls 96 ws2812b leds wich receive the same data ( the inputs are tied together), so all the leds shows the same color and intensity.
    the first esp8266 is programmed to listen to the universe 1 / ch 1-3, the second esp : universe 1 / ch 4-6, the third esp : universe 1 / ch 7-9 and so on. Each ESP8266 controlls one RGB pixel.
    the pc is connected to the router by wire.
    I have powered the esp8266, in a few seconds they connect to the network
    I start MADRIX and the ESPs are working corectly
    Now, if I restart the power for the esp8266 and MADRIX send data to the netowrk, the esp8266 needs about 5 minutes or more to join the network again.
    pls advise what can I do to make the ESPs to join faster to the netowrk.
    thanks

    • Shelby Merrick Post author

      That’s really odd. Can you confirm its taking 5 minutes for them to re-connect by watching the serial output when this happens? I’m curious if this is related to some IGMP bugs I just fixed as well. Please download and try 3.0-rc3 and report back. Also, please file an issue on the GitHub page if the problem still exists – https://github.com/forkineye/ESPixelStick.
      thanks,
      -shelby

      • Laurentiu

        Hi Shelby,
        sorry for the big delay.
        I have done what you said and the time to reconnect to the network is about 10 to 15 sec wich is ok. This is with the PC connected via WIFI to the router.
        the time is less then 5 sec if I do not use IP mac reservation in the router.
        NOW,
        as I talked to you, I want to produce and sale the ESPixelStick in Europe (you said there will be no problem for you).
        I have not change the firmware, I am very confident about your work.
        What I want to do is : preprogram the espixelstick with the latest firmware and sale it without any posibility to load firmware via serial port. Any new firmware you will post will be uploaded via wifi.
        As I saw, if the esp find the network it will join to it; if it does not find it, after about 30 sec it will become AP and it can be accessed via 192.168.4.1 address after you join the pc to it’s network and after that it can be set up the SSID and Password the client wants.
        This way we can sale to clients who does not wants to buy or use USB to serial modules and the classic procedure.
        So, pls advise if it is ok what I want to do.
        thanks,
        -Laurentiu

  • Giorgio

    Hi, I am looking to control a 595 chain from the output of the ESP8266 using SPI.

    Do you think it could be easy to modify your program to receive E1.31 DMX and convert it in a serial output to feed the 595 chain instead to output DMX or Renard?

    I am asking this because I already have a 96 channel RGB controller that uses a chain of 595 shift registers.

    Can you give me some hints how to modify your program to add a SPI output?

    Thank you!

  • Kamal sonani

    How configure multi- universe in unicast mode?
    Should i edit code or changing web option ?

    1st universe’s colour sequence is RGB
    2nd ……. GBR
    3rd …………BRG

    How to set all them to RGB?

  • Wendell Persad

    can’t seem to get this programmed using the flash tool.

    Keep getting the following:

    -= Building SPIFFS Image =-
    bin/win/mkspiffs.exe -c spiffs/ -p 256 -b 4096 -s 131072 firmware/spiffs.bin
    /config.json
    /www/admin.html.gz
    /www/config_net.html.gz
    /www/config_pixel.html.gz
    /www/config_serial.html.gz
    /www/pixel.html.gz
    /www/script.js.gz
    /www/serial.html.gz
    /www/status_e131.html.gz
    /www/status_net.html.gz
    /www/style.css.gz

    -= Programming ESP8266 =-
    bin/win/esptool.exe -cd none -cb 115200 -cp COM4 -ca 0x000000 -cf firmware/pixel-2.0-1m_128k.bin -ca 0xDB000 -cf firmware/spiffs.bin
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed

    *** PROGRAMMING FAILED ***

    How do I verify it is in programming mode?
    When I attempt to place it in programming mode before connecting the serial-USB adapter a small blue led lights up on the ESP module.
    When I connect the serial-USB adapter, the blue led goes out. I hit upload and there are about 10 flashes of the small blue LED then I get the error shown above.

    Any help would be appreciated.

  • TORY M BLUE

    Hey Shelby any closer to allowing it to store some basic sequences to use for indoor trees? Just the ability to read and play basic .fseq files?

    I’ll chip in if it helps to get you motivated 🙂

  • Ryan Jennings

    Is it possible to change the gpio data pin? I am trying to use a wemos D1 mini and the onboard led in on gpio2. When the led flashes with wifi traffic I get strange behavior on the string of lights.

    I changed DATA_PIN in ESPixelStick.h to 5 instead of 2 and recompiled, but it didn’t seem to change anything. I am not sure if I am missing a compile/upload step or if DATA_PIN isn’t really meant to be changed.

    Thanks for the help,
    Ryan

      • Ryan Jennings

        Thanks for the reply. I have made some progress. I added a wifi led disable to ESPixelStick.

        // Initial pin states
        pinMode(DATA_PIN, OUTPUT);
        digitalWrite(DATA_PIN, LOW);
        wifi_status_led_uninstall();