Forum Rule: Always post complete source code & details to reproduce any issue!
Page 2 of 2 FirstFirst 1 2
Results 26 to 35 of 35

Thread: E1.31 sACN Ethernet DMX Performance help - 6 Universe Limit improvements?

  1. #26
    Senior Member crees's Avatar
    Join Date
    Dec 2016
    Location
    Utah
    Posts
    105
    I have updated the main controller code. Will work on uploading the one socket w5500 version.

  2. #27
    Senior Member crees's Avatar
    Join Date
    Dec 2016
    Location
    Utah
    Posts
    105
    Quote Originally Posted by KasparsL View Post
    Hi all, I am trying to replicate the success of people here to create Ethernet attached e1.31 controller.
    I have multiple ESPixelSticks, but wifi is not always reliable enough and I am building 1 or 2 wired controllers for Christmas decorations.

    I got the Crees code from svn (there seems to be a bracket in wrong position after latest commit) and tried also code seen in the thread.

    The problem I am facing is that it seems not all universes or the last universe is not received/detected and "Leds.show();" is not called frequent enough.
    Because of thes LEDs are updated every 0.5..1sec only.
    This is because the controller is expecting 32 universes but is seeing alot less. Mostly due to the incompatibility of the w5500 with the current one socket library (not seeing the full 16k buffer).

  3. #28
    Junior Member
    Join Date
    Dec 2018
    Posts
    4
    Thanks Crees for sharing your work! I see you have made some changes already.
    While I have ordered a couple of w5200 modules, Is there anything I could read regarding what has to be done to W5100 library and what single socket means..
    I am guessing that w5100 is using one socket only and we need to free up memory in the w5200 library as it is taken by supporting multiple sockets - is this correct?

  4. #29
    Senior Member crees's Avatar
    Join Date
    Dec 2016
    Location
    Utah
    Posts
    105
    Here is my latest hack to the one socket library that will work with the w5500. Please note that the TX buffer / settings are not working correctly so if you plan to use it for anything requiring tcp or udp send etc it may not work. However this project is focused on UDP full buffer receive.

    Your on track with 5100 . The one socket library uses SPIFIFO and a large buffer by telling the wiznet to bind to one protocol (UDP). wiznet allows multiple protocols at the expense of allocating at least one socket per protocol (2k per socket). There are two 16k buffers one for TX and the other for RX. With this setup UDP RX is all we need and we use all 8 sockets for it (8 * 2k = 16k ).

    from my debugging and observation....

    Using all sockets gives us the buffer we need and that will allow about 21-25ish universes. However as I am noticing SPIFIFO gives us the "turbo" speed we need to quickly pass data from the wiznet without typical SPI overhead. With SPIFIFO I see all 32 universes even at 40+ frames a second. The limit starts after 32 universes both due to buffers across the board (LED Buffers, Wiznet etc)

    the onesocket I have listed on github is hacked to detect the w5200 and allocate the buffer for it. I noticed that it does not detect or work well with the w5500. the following link will get you the hacked version for w5500


    Please note you will need to remove your existing ethernet library under the "hardware / teensy /avr / libraries " folder and place it somewhere else (don't delete it just move it out or up a directory). move the hacked version folder into its place and recompile.

    I wanted to fix the tx issue before I got it up to github but for now you can grab from my dropbox link. Don't forget to remove it and place the original Ethernet library back so you can use it for your other arduino projects!

    https://www.dropbox.com/sh/98vhmyne0..._wPg8hHma?dl=0
    Last edited by crees; 12-06-2018 at 04:02 PM.

  5. #30
    Junior Member
    Join Date
    Dec 2018
    Posts
    4
    Quote Originally Posted by crees View Post
    I wanted to fix the tx issue before I got it up to github but for now you can grab from my dropbox link. Don't forget to remove it and place the original Ethernet library back so you can use it for your other arduino projects!

    https://www.dropbox.com/sh/98vhmyne0..._wPg8hHma?dl=0
    Thanks Crees!
    I can confirm that with this library I was able to receive all 32 universes using W5500 ethernet module. Great job, thanks a lot!

  6. #31
    Hi smartguys in this thread. I'm also trying to get my 60x60 LEDframe to work with Jinx via E1.31.
    But it seems only 3 universes are being processed. (as I can see in the println).
    I've tried CREES and HSIBOYS and the MEGAPixelController code and tried the ethernet-One-socket-hack from crees. But the result is always the same.
    I've used da_E131.exe to test my setup. Sending 6 universes, but only 3 are recognised.

    My setup for testing:
    Teensy3.2 at 96MHz

    #define ETHERNET_BUFFER 636 //540 is artnet leave at 636 for e1.31
    #define NUM_LEDS_PER_STRIP 480 //170
    #define NUM_STRIPS 8


    ///GLOBALS
    int unsigned DMX_UNIVERSE = 1; //**Start** universe 1, 9, 17, 25, 33, 41
    int unsigned UNIVERSE_COUNT = 6; //How Many Universes 8, 8, 8, 4, 8, 8
    int unsigned UNIVERSE_LAST = 6; // List the last universe typically its sequencially from start but does not have to. 8, 16, 24, 28, 32, 40
    int unsigned CHANNEL_COUNT = 510; //max channels per dmx packet
    byte unsigned LEDS_PER_UNIVERSE = 170; // Max RGB pixels


    I' m using win850io (W5500 chip).

    With theMEGApixel-code I have lots of "Partial framing detected"
    Although my ethernet cable is directly connected between laptop and wizio. No router.

    Do any of you have any hints to share?

    I would be very thankfull.
    Geert


    a small println dump from what happens with HSIboys code.:
    ------------------------------------------------------------
    unicount1
    fps10.10
    dmx subnet1
    unicount2
    dmx subnet2
    unicount3
    dmx subnet3
    unicount4
    dmx subnet1
    unicount5
    dmx subnet2
    unicount6
    fps250.00
    dmx subnet3
    unicount7
    fps10.64
    dmx subnet1
    unicount8
    dmx subnet2
    unicount9
    dmx subnet3
    unicount10
    fps10.10
    dmx subnet1
    unicount1
    dmx subnet2
    unicount2
    dmx subnet3
    unicount3
    dmx subnet1
    unicount4
    dmx subnet2
    unicount5
    dmx subnet3
    unicount6
    fps10.10

    --------------------------------------------
    Last edited by GeertDierckx; 01-01-2019 at 10:30 AM.

  7. #32
    Senior Member crees's Avatar
    Join Date
    Dec 2016
    Location
    Utah
    Posts
    105
    Without seeing complete source code it’s hard to tell exactly.. make sure teensy is running at 120 cpu speed. If using w5500 you need to the library from the link in the post before yours.

  8. #33
    Thank you very much Crees!!! The 120MHz seems to do the trick!
    I still have Partial "framing detected", but I have 25fps.
    I'm happy and will continue to build now.
    (I've attached the code, it is the code from your website, adapted to my setup)
    Attached Files Attached Files

  9. #34
    Hi Guys,

    I'm nearly there.
    I have a running setup with 22 universes.
    But my setup (I have 4 panels of 60 x 15 LEDs) requires 23 universes.
    With 22 Universes, my last 40 LEDs are not lit by LINX. (see photograph)

    When I change the code to 23 universes, nothing happens anymore: no data to the controller, no display lit at all.
    (Last working code with 22 universes attached)

    Any ideas?
    Click image for larger version. 

Name:	20190115_210624.jpg 
Views:	1 
Size:	68.2 KB 
ID:	15611
    Attached Files Attached Files

  10. #35
    Senior Member crees's Avatar
    Join Date
    Dec 2016
    Location
    Utah
    Posts
    105
    increase pixels per strip 480 to a greater value perhaps use the full 680 but keep your universe max to 23. it does not have to be exact either just at least the same or more

    Code:
    //DEFINES for at Compile time.
    //Leave this alone.  At current a full e1.31 frame is 636 bytes..
     #define ETHERNET_BUFFER 636 //540 is artnet leave at 636 for e1.31
     #define NUM_LEDS_PER_STRIP 680 //170
     #define NUM_STRIPS 8
    
    
    ///GLOBALS
     int unsigned DMX_UNIVERSE = 1; //**Start** universe 1, 9, 17, 25, 33, 41
     int unsigned UNIVERSE_COUNT = 23; //How Many Universes 8, 8, 8, 4, 8, 8
     int unsigned UNIVERSE_LAST = 23; // List the last universe typically its sequencially from start but does not have to. 8, 16, 24, 28, 32, 40
     int unsigned CHANNEL_COUNT = 510; //max channels per dmx packet
     byte unsigned LEDS_PER_UNIVERSE = 170; // Max RGB pixels

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •