Hello

Here is the story of building a 4m x 1.60 m led panel 123 *48 leds

I started first with smaller boards 20*15 then 20*30 just to have an idea of what it possible. And use couple of controllers (Arduino uno, due, mini, pro, esp8266,esp32) 

it was also the occasion for me to see how complicated it could be ad to create basic functions on top of the FastLED library .

https://github.com/FastLED/FastLED

https://github.com/hpwit/ledtable

so I have reprogrammed the GameOf Life, Tetris added some basic functions like display a message or draw a line or display a bitmap using gamma color correction to have a good display

I term of pure building I have improved my skills in soldering or define the right wiring. like adding a resistor on the data line or a capacitor in parallel of the strips to avoid destruction.

https://learn.adafruit.com/adafruit-neopixel-uberguide/best-practices

I wanted to go bigger  but how big ?

1) Which Controller ?

For large projects everybody was proposing the teensy3.x thank to its parallel output it had proved to be a perfect tool for this task. 

But I wanted Wifi and Bluetooth. so I decided to go for the esp32 that I had experience with and which is a very powerful board 2 cores at 240Mhz

2) Which Leds ?

I am using ws2812 leds which are 'slow' the refresh rate of 1000 of them is 33FPS. which when you had a bit a processing before it becomes pretty slow. 

I have decided to go for the second choice. At the time I was building my panel the parallel output for ESP32 was not existing yet. So based on some previous work on the ESP8266 I had it working for 8 parallel outputs.

But because I wanted to ensure a good frame rate >70 FPS I have made a 16 parallel out put version.

In the current FastLED library (link above) you have for the esp32 the 8 parallel output implemented using DMA which is not sensible to interrupts but limit the number of outputs. My version can do more output but more sensible to interrupts ( you'll need a dead pixel at the start of each strip)

https://github.com/hpwit/fastled-esp32-16PINS

3) What size ? 

Well my wall is 4.5 meters. so 4meters should be good :) then because of the power required and the refresh rate,I have decided to go for 120*48 (16 groups of 3*120 leds) using 30led/meter for a max output of 345A or 1728W ... (60mA max per led).

I have decided not to light up more than 1/4 of the max brightness otherwise it's anyway way to bright.. and went for 240A=>1200W.

Because the board was going to be very long and data lines would have to go on each side of the panel I have decided to add 74HC245 that boost the signal without asking the ESP32 to output current.  I was able to send the data without distortion up to 7 meters.

the first controller board

4) The Panel

I had to create a 4x1.60 meter board that I have made of MDF (1.8cm thick). but of course those do not exist as the maximum size is 2.4x1.20m I bought 3 panels had them cut so I could create the right size. One more panel in the back to hold everything together.

the panel is paint in black, using metallic black spray which was cheaper than paint , easier to apply and nice shiny finish.

=> the construction weights about 80kg ...:) so I had alos to create a support for it.

I went for construction wood the entire frame on wheels :) easier to move. I actually hung myself (I am 83 kg)  to be sure it will hold the weight.

5)Putting everything together

After ordering 50x5 meters of leds It was time to glue solder and wire.

Each strip is individually powered. Indeed I don't have 240A going through the all  board :)

so 48 jumpers and all the wires to connect everything.

I was testing every 3 lines (I have three lines per pins).

Of course I got crazy because of noise until I discovered I should also replug the ground on the otherside of the panel (certainly to voltage drop). I plugged strips wrongly ....

Then on day it's done

6) Putting it up

You need friends to flip everything over and put it back up

Of course I had to unplug everything

and replug everyhting ..

and finally

As you can see noise occurs this is due to my long wires not shielded.

to shield a wire it just need to be surrounded by the ground wire like in the ethernet cables.

getting inspiration from 

https://www.pjrc.com/store/octo28_adaptor.html

I have created my own version for 16 outputs. I have created the pub myself so it's not nice 

And it works like a charm, no more noise and only 4 ethernet cables going out of the controller board.

6) tips and lessons learned

Even wiring strips is long and tedious on a large scale !!!

Buy spare parts because when it's that large mistakes are easy (plugging the +5 on the GND for instance) and some led can be faulty over time. I had to replace 20 individual leds at least. without competing the one I burned :).

Take your time double check but anyway it's a lot of fun just do it.

7) couple of realizations

Arnet implementation with glediator. I had to come up with my own version of the artnet implementation to cope with large amount of data

https://github.com/hpwit/artnet

video (stream from my laptop)

Once the art net was done I based my work on that to create the streaming

https://gist.github.com/hpwit/51c4b71535b9d504849416c218a29825

for the program to stream