Solved - 1024 Pixel Out of Memory w/8266v2.23+SB1+Exp2.0

Does anyone else have this overflow problem where just some of the patterns freeze & FPS flips out when going from pixel lengths > 1024 ?

Using ESP-8266 board v2.23 & Expander V2 & Sensor Board v1

Cool Video

Hi @Kevin,
Thats an awesome tree! How tall is that thing?!? Did you pixel map it?

From your screen shots, I think what is happening is that you have a non-contiguous arrangement of pixels. This can happen if you setup output expander channels so that they don’t cover all of the pixel indexes. You can get an index greater than pixelCount.

It also looks like maybe you are editing the Pixels field directly, this is calculated from the output expander channel counts. The expander board config will drive the actual rendering, and pixelCount is used to inform the pixel map and pattern about how many pixels to expect.

So with non-contiguous pixels, some patterns don’t expect that and will cause errors, especially ones that assume they can allocate an array with pixelCount and access the elements by index like blinkfade.

If you edit the pattern in question, the runtime error should show up in the editor.

If an error happens in the main body code, the pattern is marked invalid and will not render anymore.

This seems similar to this other thread:

Thanks man!
It’s the 11 ft Walmart floor model especial

Starting to pixel map want to do a cone with a cylinder tree trunk spiral, but wanted to just get the memory issue sorted out first

I decided to skip every other output on the expander board so I could shove 4 terminals on there to make it less permanent

I’m running out of memory on the ESP-8266’s is what I think is happening.
If only there was some kind of new ESP board that existed in this world that had more memory :thinking:

I think I’m going to post a bunch of pictures of different Expander settings but they all do the same thing.

![Map|690x399]

1 Like

Yep, that is out of memory, and that pattern would definitely break at the 1025 threshold. You could throw more PBs at it, synced with Firestorm. Or a V3 :slight_smile:

You could also rewrite the pattern to pack both bits of data into a single element with a few tricks.