For the ones with big panels please check my GitHub to stream video to

fastled-showtell
gplus
(Yves BAZIN) #1

For the ones with big panels please check my GitHub to stream video to panel
the program to stream could be used with any MCU I have written the esp32 sketch for it.

(Mark Estes) #2

i will check it out as this is right up my ally ,
thanks

(Yves BAZIN) #3

@Mark_Estes i need to create a version for those who are using small panels (16x16 or 32x16) like your builds. for the moment it’s pushing the data like inline pixels. unless you can translate inline into Squares :slight_smile:

(chad steinglass) #4

@Yves_BAZIN mapping functions should be pretty trivial so should be easy to translate to Mark and Marc’s matrices, as well as my irregularly shaped vests and hats :slight_smile:

I just packed up and shipped out all of my stuff for BM yesterday, so finally have a little time to breath and maybe work on some programs. I want to check this out to see if there’s a way I could stream from a phone (almost all of my stuff is wearables designed to be worn in an environment without WiFi/cell/power etc). I’d love to be able to send a slide show or video to my vest from my phone :slight_smile:

(Yves BAZIN) #5

@chad_steinglass I think so too just need to have a look at it and some stuff to test it :wink:
As for you request that should be possible if the right library is available that should be feasible. I am more specialist of iOS are you using android ?
Just be sure it will ‘eat’ the battery :wink:

(chad steinglass) #6

I’m iOS friendly :slight_smile: and not too worried about phone battery as I’ll be packing tons of battery power with me all the time to run The LEDs!

(Yves BAZIN) #7

@chad_steinglass I will have a look at it. I will try to put it out before BM

(chad steinglass) #8

@Yves_BAZIN thanks but don’t feel obligated at all! I’m happy where I am now mostly running noise programs, so anything I can get running with either video file playing or frequency reactivity via FFT will just be icing on the cake.

(chad steinglass) #9

hey @Yves_BAZIN - playing around with the LEDMatrix library for the first time tonight…

re: mapping from matrix to generic lookup table map (which I use for all my stuff that has irregular shapes) - this is hacky and not memory efficient, but it seems to work. I have my own XY function that just takes x and y as arguments and goes to a lookup table to find the index in the LED array that the coordinates correspond to in the array of LEDs, and returns a value outside of the bounds of NUM_LEDS if that address is a void (like an arm hole of a vest)

so I just did this:

void xymap(){
for (int x = 0 ; x < NUMX; x++){
for (int y = 0; y <NUMY; y++){
int k = XY(x,y);
(if k < NUM_LEDS) leds[k] = ledmatrix(x,y);
}
}
}

where “ledmatrix” is the matrix as used with the library, and “leds” is a CRGB array that I’m actually using for the show() command.

inefficient because I’m holding two arrays in memory, one of size xy, one of size NUM_LEDS (NUM_LEDS is always equal or smaller than NUMXNUMY) but I’m not memory constrained at the moment (using esp32) so I’m not too worried about it.

(Yves BAZIN) #10

@chad_steinglass thank you. This is interesting!!

(chad steinglass) #11

@Yves_BAZIN don’t take it to the bank just yet - it worked fine on the example sketch but I got inconsistent results on some more complicated things… but I was kinda just playing around, and I think it SHOULD work. Looks like The matrix structure has a defined operator that should return an individual CRGB value when you feed it an xy coordinate, so should be doable.

Haven’t tried going the other way (feeding individual CRGB values to a specific pixel in the matrix) but I imagine it’s similar

(Yves BAZIN) #12

@chad_steinglass if I look at your code you know how to transform any ‘classical’ led strip arrangement to your matrix. Hence you would be able to use my program as each frame is nothing more than a image that is displayed afterwards.
What is the virtual size of you vest ?

(chad steinglass) #13

@Yves_BAZIN my biggest vest is I think 60pxl wide and 30 something tall, I’d have to check. Must be a little bigger because it’s about 2300 pxls and that’s with missing arm holes etc…

My more reasonable (and more comfortable) vest is about 45x25 I think

But I use the same code for a bunch of stuff - I’ve made a lot of masks (thanks @Leon_Yuhanov for inspiration on those) and some other wearables as well (lots of hats of various shapes and sizes!), so I find it really useful to create an excel file with my layout, save it as a CSV, and then paste It into the Arduino program and use it as a lookup table, so that my patterns can be adapted to any size and shape

(Yves BAZIN) #14

@chad_steinglass that is your specific XY() function right ?

(chad steinglass) #15

My specific XY function is something like:

Int XY(int x, int y){
int i = LEDMAP[x + (NUMY-y)*NUMX];
Return i;
}

Or

void XYassign(int x, int y, CRGB pixel){

int i = LEDMAP[x + (NUMY-y)*NUMX];
If(i < NUMLEDS) leds[i] = pixel;
}

Very simple. Where LEDMAP is a const int array of size NUMX*NUMY, just copied from an excel layout where each pixel is numbered the way my matrix is wired, and any spots that are “voids” in the shape where there are no LEDs are numbered something larger than NUMLEDS

(chad steinglass) #16

This also allows me to not worry about mapping at all when I’m wiring something, and just layout the strips in whatever I think is the most efficient or structurally sound design, wire them up, and then deal with the mapping afterwards

(Marc MERLIN) #17

Thank you, will need to look at this too.