Funny, I just thought about doing a project like this the other day! Things I think could improve your project would be: -Make the outer walls half thickness of the inner walls so that when the panels are joined the seam isn't as visible. Alternatively, leave sides out depending on the panels placement. -Do alignment tabs/grooves/holes to make sure panels align well. -SLA print in stacks (If you have one big enough). It would be faster, reduce sanding and then the left over support (if any) would be on the back/front and thereby not messing with the alignment. -If your wall isn't completely flat, first mount a flat piece of wood. This helps panel alignment and reduces panel mounting workload (screwing) considerably if you have hard walls like concrete or bricks. Congratulations on 12fps! That's really impressive for a DIY screen of this size running on ESPs 😲
I actually also thought about doing a project like this and had the same ideas with the half thickness, alignement tabs and the wood on the wall i havent thought about sla printing tho :)
I can fix any combustion engine or anything mechanical. But I'm at a loss when it comes to this type of stuff. It is just amazing the knowledge you have to do this type of work. Keep it up
As professional led wall technician I must say GOOD JOB for a diy project 💪 Actuall panels don't have a plexiglass sheet. Cheap ones are glues in with transparent silicone and the pricier ones have plastic "lenses" optional with a dark tint so black in the signal appears black on screen. Of course the pixel density is much higher but who knows what you'll come up with in the future 😅
Greetings from Munich, Germany 🇩🇪 TUM CS Student here. Loved the Video with all the builds, explanations and "life advice" sections. You've earned yourself a new sub ;). Keep it up!
This is a fun video/project - I have a suggestion for mounting all of the panels on the acrylic - you could have either put registration features on the sides of the panels, or used the channels you’ve already created to align all of the sections of a panel together more easily. If you created a grid from some tubes, you could have placed that in the channels, and that could have held all of the panels together.
I can't believe you didn't play some old school video games, like Mario brothers. Square pixels? Come on man! Please? Great job btw. That wall is epic.
This is absolutely amazing!! Can we make a community project out of this with the goal to make some diy pixel screens used at events or in virtual film production? The potential is huge and those screens usually cost a furtune…
A couple relatively cheap tools you should buy that would make your job faster and look better. An oscillating tool you could trim everything flush in seconds, super glue activator make it dry instantly. If you want to get fancy a router to flush trim things. Cut as much sanding out of your life as possible that's my motto.
Namco uses these LED video walls for their giant Pacman arcade. It looks good for simple games like that. It would be great if someone made a 40" 320x240 4:3 aspect one for old arcade games and 240p consoles. There is a gap in the market for that. Nothing exists currently. Especially if it was capable of 60hz and updated line by line like a CRT monitor so old light guns would work and you could avoid motion blur. A 3d printer is the wrong tool for making stuff like this. A cnc machine would be able to make these parts in under and hour. A well dialed-in cnc machine would create parts flat enough to avoid all the sanding. 3d printed plastic will not remain stable with the heat of led lights. With a CNC machine you could use aluminum instead. If you used a front glass layer you'd be able to align the led panels perfectly so you wouldn't be able to see gaps between panels. An off the shelf single sheet of display diffuser film would hide the individual pixels without losing too much light transmission. A 15% diffuser would probably be sufficient. Rosco sells such material. That's my $0.02 anyway.
196 x 128 = 25,088 pixels @ 12fps = 301,056 updates every second! And here I was patting myself on the back for writing a basic 3d projection animation using an ESP8266 with a 160x120 RGB TFT display. Comparison really is the thief of joy. Congrats, you built a thing of beauty
That looks incredible, well done! With that you certainly earned my subscription. I assume the refresh rate is currently limited by the protocol and throughput through the ESP32 and not so much by the speed of the LEDs, right? Have you done some testing with the RGBs how quickly they can switch to see what the theoretical maximum is? If that is considerably faster, it could be worth considering a faster interlink / different protocol, so latency goes down and refresh rate goes up. This might never be a super viable gaming solution but I think it could be considerably faster and enable you to play retro games REALLY well on it. Also it would potentially allow for syncing up the modules better, as I see there is some lag between the panels. Those are just some random thoughts, so feel free to ignore them. It is an incredible project and quite the accomplishment!
I am sure these looks more awesome when viewed from very long distance, For room projections I think even a cheap HDMI compatible projector might have better results. And yeah hats off to your hardwork and patience in building this giant screen 👍👍
You could maybe design an interlocking dovetail type pattern for the panels, to help them fit snug together and to still keep a straight edge on where they meet. Maybe for the brim it could have a perforated pattern right where you need to stop sanding to make it easier to distinguish material that's meant to be there from the flashing. Otherwise really cool project, 5/piece is a steal.
Nice project and video! One question: Aren't you worried about voltage dropping, connecting so many matrices/LEDs in series per panel? I would try to feed every matrix with its own power so that the copper trails don't get too hot supplying the last matrix in the panel
I did a lot of testing to find the best balance. I’m only driving the leds at about 5% brightness so I can take some shortcuts. In the EPIC MONTAGE there’s a clip where I drive all the pixels white and you can see the last matrix in series is pretty yellow because of the voltage drop. Lowering the brightness a bit more fixed the problem!
I have experienced quite a few fatal failures on those flexible units, thermal image at full load clearly shows the solder pads running away - also you will immediately notice luminance (and therefore chroma shift) degrading both at hotspots and bad smd solder I'm actually quite impressed how he had not at least 3 of those panels DoA needing a reflow. They are absolute bang for the buck, no question. Sometimes even below 4usd. But 800khz isn't just not cutting it for a single wire signal... If 500usd budget has to deliver this size, you'd absolutely outperform this wall with pretty much any used beamer matching the price range in both size, brightness reliability and post rave evac sellout value
These remind me of the twinkly squares. Some more refinement on the squares and this could way more awesome than they are. Wish I had the skills to edit /design 3D items.
If it was just a little bit bigger you could get a pixel perfect Gameboy Advance screen. If it weren't for the low framerate, that might be the coolest thing ever.
I feel robbed that you didn't try Doom. At the very least you could have done Mario Bros. And I also hate you for making this and showing me because my OCD brain wants another incomplete project in my hobby room. lol
That was a pretty awesome build, well done! The overall look and posterization is great :D What baud rate were you using for the serial connections by the way, was it standard 9600? -- I assume higher baud might reduce lag between individual panel squares, but could introduce corrupt/missing frames.
@@Tech-Random Woooow that's impressive performance for serial! Did you talk about *choosing* serial in another video? Or is it the *only* inter-ESP comms method that can work [for your displays]? -- Not an expert myself!
I'm sorry if I missed it, but how do you process the signal. In other words, what is the output from the computer to the screen? I am assuming usb, in that case who/what processes the video into serial data?
It may be a limitation of the LEDs, but maybe you can increase the quality of the colors by using gamma correction (if you are not already using it, for instance all images use sRGB by default) Human eyes can distinguish shades of colors way better in the darker color range and not so much in bright colors, so by using gamma correction you can squeeze more distinguishable shades of colors in the same amount of bits of data The conversion formula is this: sRGB to Linear: pow(red_channel_brightness, 1.0 / 2.2) | Screen capture side Linear to sRGB: pow(red_channel_brightness, 2.2) | ESP32 side
It’s actually a limitation of the software I’m using. To drive all of these pixels at 12fps I had to reduce the colorspace to 8-bit RGB. One bit per pixel is way faster than 3, but the color accuracy is a huge compromise.
This is really cool! Have you thought of adding some dithering either to the signal from your pc or on the controllers to get less banding with your limited bit depth?
This is pretty cool, but I wonder: What is the main limitation for the 12fps frame rate? Too many LEDs in series, the ESPe not being fast enough or the data connection being not fast enough?
It’s the data coming in from my PC. USB Serial is limited to 1 Mbps so the math is 192 x 128 = 24,576 Bytes per frame. 24,576 x 8 = 196,608 bits per frame so about 5 frames per second. I’m running groups of 4 panels in parallel so I have a theoretical max of 20 frames per second with this setup.
Wow 😲 that's great and so far the most beautiful diy giant led wall. good day Sir I'm from 🇵🇭 and I wanna ask if that four groups vertically consist of 6 panel with 6 tile is connected wirelessly via web socket like your previous led wall?
@@Tech-Random thank you Sir for your reply If I'm going to make this modular type of your new design of led wall, it is possible to make it wirelessly connected via web socket like your previous led wall that has been divided on 4 vertical panels but still following this new design of modular type with 3.5mm audio jack cable for data transmission? my plan is not only to stick on a big screen display but I want this to divide it on 4 vertical panels such as your previous led wall when I'm going to use it on the stage for design on the left side and right side of the stage like events indoors.
It’s certainly worth trying. My main concern is the data rate of the websockets. The old wall was low resolution so it wasn’t an issue but this design needs a very fast connection. I talk about the software more in my dream office video if you’re interested in learning how I get a fast frame-rate.
@@Tech-Random thank you so much Sir for your knowledge on this it's a big help for us beginners who aim to know more about this Godbless to your future projects.
Good day Sir I have another question, can I increase the number of led tiles that I'm going to build? yours is 6 tiles per module and my plan is to make it 12 tiles per module (4 width x 3 length). yours is 4 modules per column and mine is also like yours 4 module consists of 12 tiles per module per 1 column of 4 columns. sorry for my deliberation I hope you understand I'm not good at the English language 😅
I assume that you're currently driving the LED panels data line by feeding from one panel into the next? Have you thought about running the panels in parallel allowing you to claw back some FPS?
Each vertical column is connected in series and the bottom panels are connected to my PC in parallel. That’s why the frames refresh out of sync vertically in some of the clips. I’m hoping to improve this in the future though!
@@Tech-Random ever think about implementing something like the I2SClocklessLedDriver for esp32s3? could split the overall matrix into 16 different areas which are all driven in parallel, I know FastLED.show() is blocking as it pushes data out to the LEDs so the longer each strip is the less fps you'll get, but splitting it up into 16 smaller 'strips' would mean you'd be able to populate each strip a tad bit faster. Could take it a bit further and swap to a teensy 4.1 which could do parallel output on any given pin which could allow for more zones, although that is a more expensive MCU
@@Tech-Random Check out the I2S capabilities of the ESP32, it can drive 24 channels in parallel and thus can achieve extremely high framerates! ;) Using a single ESP32 with the I2S output its very easy to push ~6k pixels over multiple channels at around 240fps. Next challange is getting the data from the PC to the ESP32 quick enough, serial is a bottle neck, but Wifi/Ethernet has much more bandwidth. :)
the few plates on the right are a little slower then the first and last one, is it possible to connect the 3d ones to the 1st one? or will that mess it up?
i build one out of strips. was not the best idea, alot of work.. but its 5m wide and is 60hz. (but only 2500 pixel) :P. I will need to use these grid panels in the future as well!
Seeing such a low pixel density and low colour range. It actualy shows how close the devs back in the day we're interested of realisim with the tech they had
When printing the 16x16 grids, could you avoid printing the frame on the right/top of each module so that when they are placed next to each other, a double thickness is not created, which would then be visible as a grid when the display is on.
@@Tech-Random Yeah but how do you connect LMCSHD to the ESP. You said once that it receives it through the uart port, but how does the first panel get the data and what settings do i need in LMCSHD.
@TheHolzixx I use a USB to Serial converter that I soldered to one end of an AUX cable. That plugs into UART IN of the first board. In LMCSHD I select the com port of my converter and set the baud rate to “2000000” and Colormode to 8pp RGB. I actually have four of these connections so each of the bottom panels gets its own USB connection and drives the three panels above it. Hopefully that helps. Feel free to ask more questions!
Is it really necessary to frost the acrylic, given how small the pixels are? For the alignment issue, here's what I'd try: use only one big piece of acrylic (or, better, glass) and make the grids mechanically interlock rather than trusting my eyes and superglue
Pick up a nicer 3D printer (doesn't even need to be resin, just a nice modern FDM printer like a bambu labs). You could have avoided removing the brims and any sanding. Definitely worth the investment!
You didn't cover the most important part, software Are you using WLED? Hiw do yoy get vit into the esp32? I have a cot of 16x32's lying around and want to find a way to get PC stats into WLED maybe it can be done through thr same method you are using to grt video in. I want to put the 32x16 matrix vertically inside my PC case for stats such as temps and also run sognal RGB effects on it. Even though I already have a 8.8 turzx screen in there, there is a perfect palce for the matrix
The wires that connect the tiles are really thin so if I drive the panels too bright they start to turn yellow like that as available power runs out. I lowered the brightness in software until that issue went away.
Printing the grid in white would help diffuse the light but result in a some color bleed between pixels. I used white PLA for my first LED wall and each tile would light up the tiles next to it a little bit so I’ve used black ever since.
@@Tech-Random fair enough! I'd be curious as to how grey would fare, potentially making the grid slightly less pronounced. None the less, an awesome and well executed project!
The old wall was hard to look at in person and always looked better on camera. This new one looks incredible in person and about the same on camera. If you’re really close it can be hard to make out individual shapes but it’s night and day compared to the old one.
I would have recommended getting SK9822 or APA102c based ARGB Matrices, as they have a separate clock line, letting you push more data by increasing the clock, thus increasing framerate. the SK9822 IC can go up to 15 MHz, which is 18.75 times faster than WS2812B (800 kHz)
A resin printer would have improved the printing time considerably, and there is no need to sand them afterward. In SLA Printing only the overall Print time matters (Influenced by hight of the print) but not the amount of objects you print at the same time. With a good dialed in settings, on a decently sized printer you could have printed 10 of these tiles at ones. And you could have printed the Diffuser right on it (SLA allows for much much thinner layers) Also Consider small plastic lenses to get an better even spread of the light. Great Video and Project btw :)
That’s what the headphone jacks are for. Data goes in to the first one, then it passes it on to the next and so on. I’m using open source “LMCSHD” to convert my computer screen into serial data.
now you have to buy an abandoned theater and make it 10 times bigger. I'd also suggest making the input on a separate board and divide it up with cables of fixed length.
Cool project. I might try it myself but smaller. My Bambu Lab P1S combo can happily put down a 0.2mm layer across the print bed 256x256 mm. This in white will make a good diffusor. The black cells 16x16 panel can be printed diredtly on top after chaging filament making a one pice with an integrated diffusor.
A black diffuser with white walls will give you better color accuracy. The white diffuser does a good job softening the light but you lose black and grey pixels so your images will look washed out.
Too expensive: www.aliexpress.us/item/2251832133665850.html?spm=a2g0n.productlist.0.0.3967246eguO7NI&browser_id=e20afc80bb6f4d0093a55219d6849599&aff_platform=msite&m_page_id=yovdhwwuwicacbbk19152281b7f1a71c7bb6e40414&gclid=&pdp_npi=4%40dis%21USD%2184.50%2165.91%21%21%2184.50%2165.91%21%402101e62517236602458696042eb4e5%2161427381998%21sea%21US%210%21ABX&algo_pvid=9ee08d0e-fccd-400e-b726-0e4b67e6c016&_universallink=1&m_page_id=yovdhwwuwicacbbk19152281b7f1a71c7bb6e40414
Have you ever designed your own flexible LED panel? I have a project in mind that would be so much easier to have its own flexible led panel.. but i dont know where to start.
10:53 "unlike a lightbulb which can be dimmed by reducing the amount of energy going into it, LEDs are limited to an ON or OFF state". first ... no? with the On/Off switching you DO limit the amount of energy..... that is the point of PWM. And secondly LEDs can be simply current-controlled and it is the superior way but a bit more complex so hardly ever used. It is better for efficiency and lifetime of the system.
You should redo the code in ESP-IDF, it will take A LOT but it will be worth the speed increase if you do only the necessary and make the ESP32 use both cores in a more organized manner, unfortunately Arduino is not the best for it
I had originally designed the code to use both cores and store extra frames in a buffer, but the transfer speeds from my PC are so slow that it made no difference. If I were to redo this project and implement a proper USB controller then I could really take advantage of the parallel processing. The downside of that is that I’d need to write a USB driver and that is a lot of work for a non-marketable project
I didn't like how long it took for the data signal to propagate when doing my LED array so I chopped them into shorter strips addressed in parallel. Addressing 24 separate strips of 60 LEDs gave me a 24x60 panel that could refresh up to 360 times per second, the motion clarity is just butter smooth 🧈
The limiting factor is actually the speed I get data from my PC over USB Serial. It’s limited to 1 Mbps so it maxes out at 12 fps while my circuit could easily drive the pixels at around 45 fps. I would love to upgrade to USB 3 but that’s expensive and development would take a long time.
@@Tech-Random I ran into that issue as well and switched to HDMI and used a hobby FPGA to buffer and output LED data signals out of 24 separate pins. It started as a lightning project but turned into a really good entry to learning HDL and synchronous design
@@Tech-Random ethernet is always an option as well if you need to provide a bit more bandwidth. Given each 'strip' is comprised of 8 16*16 panels giving you 2048 LEDs per strip, with 30 microseconds per LED update it would take 61440 microseconds per column to update, giving you a theoretical maximum of ~16.27FPS given your current configuration. Only real way to improve on this is to section up your LED strips more, there's no changing how fast the LEDs themselves can actually update
Trying to print this circuit on jlcpcb but get this error: The below parts won't be assembled due to data missing. SPI_IN,SPI_OUT,H1,H2 designators don't exist in the BOM file.
Maybe I should stick to Tetris 😅
I'm slightly surprised you didn't follow the memes and play either Doom, Crysis or Skyrim.
You should try something like Super Meat Boy or Celeste on it LOL
Play doom on it
I am surprised you didn't try some retro titles. Why not asteroids? Or maybe an old Gameboy game?
@@Bonker42069 CLASSIC doom 100%
Funny, I just thought about doing a project like this the other day! Things I think could improve your project would be:
-Make the outer walls half thickness of the inner walls so that when the panels are joined the seam isn't as visible. Alternatively, leave sides out depending on the panels placement.
-Do alignment tabs/grooves/holes to make sure panels align well.
-SLA print in stacks (If you have one big enough). It would be faster, reduce sanding and then the left over support (if any) would be on the back/front and thereby not messing with the alignment.
-If your wall isn't completely flat, first mount a flat piece of wood. This helps panel alignment and reduces panel mounting workload (screwing) considerably if you have hard walls like concrete or bricks.
Congratulations on 12fps! That's really impressive for a DIY screen of this size running on ESPs 😲
I actually also thought about doing a project like this and had the same ideas with the half thickness, alignement tabs and the wood on the wall i havent thought about sla printing tho :)
Your Dad and I would’ve been thrilled with that resolution playing Legend of Zelda on the original NES. Nice job! -CJ
this is a perfect representation on how oled screens work. awesome build
Having a monitor in front and using this for your peripheral vision would be pretty neat and immersing 😎
I can fix any combustion engine or anything mechanical. But I'm at a loss when it comes to this type of stuff. It is just amazing the knowledge you have to do this type of work. Keep it up
Awesome. I love pixel art. So if I had this, it would play animated pixel wallpapers all day.
Next project is to create a game or program to be specifically used on this screen! Such a cool project! I love it! Keep up the hard work!
i think old arcade cabenet games would be cool, like tetris, pac man, donkey kong, etc
As professional led wall technician I must say GOOD JOB for a diy project 💪
Actuall panels don't have a plexiglass sheet. Cheap ones are glues in with transparent silicone and the pricier ones have plastic "lenses" optional with a dark tint so black in the signal appears black on screen. Of course the pixel density is much higher but who knows what you'll come up with in the future 😅
Please make another video in the series on trying to increase the bit depth and refresh rate. That would drive me crazy
Greetings from Munich, Germany 🇩🇪 TUM CS Student here. Loved the Video with all the builds, explanations and "life advice" sections. You've earned yourself a new sub ;). Keep it up!
This is a fun video/project - I have a suggestion for mounting all of the panels on the acrylic - you could have either put registration features on the sides of the panels, or used the channels you’ve already created to align all of the sections of a panel together more easily. If you created a grid from some tubes, you could have placed that in the channels, and that could have held all of the panels together.
I can't believe you didn't play some old school video games, like Mario brothers. Square pixels? Come on man! Please? Great job btw. That wall is epic.
Oh man, it would be siiiiiiiiick to do this on my gaming room wall.
Great job! While playing, it didn't look too bad. Maybe sitting farther away from the screen would have helped. But, overall, nice project.
This is absolutely amazing!! Can we make a community project out of this with the goal to make some diy pixel screens used at events or in virtual film production? The potential is huge and those screens usually cost a furtune…
This is just what i needed! Im going to take some of the stuff i learned and make large diffused photo frames.
A couple relatively cheap tools you should buy that would make your job faster and look better. An oscillating tool you could trim everything flush in seconds, super glue activator make it dry instantly. If you want to get fancy a router to flush trim things. Cut as much sanding out of your life as possible that's my motto.
I love your diffusor tile. Works great for WLED matrices. I've been waiting for this update.
Namco uses these LED video walls for their giant Pacman arcade. It looks good for simple games like that.
It would be great if someone made a 40" 320x240 4:3 aspect one for old arcade games and 240p consoles. There is a gap in the market for that. Nothing exists currently.
Especially if it was capable of 60hz and updated line by line like a CRT monitor so old light guns would work and you could avoid motion blur.
A 3d printer is the wrong tool for making stuff like this. A cnc machine would be able to make these parts in under and hour.
A well dialed-in cnc machine would create parts flat enough to avoid all the sanding.
3d printed plastic will not remain stable with the heat of led lights. With a CNC machine you could use aluminum instead.
If you used a front glass layer you'd be able to align the led panels perfectly so you wouldn't be able to see gaps between panels.
An off the shelf single sheet of display diffuser film would hide the individual pixels without losing too much light transmission. A 15% diffuser would probably be sufficient. Rosco sells such material.
That's my $0.02 anyway.
I was expecting a pixel art game with this screen. Nice video
Nice video and great work. I couldn't believe you played so close to it, we had a nice view way behind it.
I've done similar thing but painted the grid white and it helps with the diffusion and gets little bit more brightness from the pixels.
196 x 128 = 25,088 pixels @ 12fps = 301,056 updates every second!
And here I was patting myself on the back for writing a basic 3d projection animation using an ESP8266 with a 160x120 RGB TFT display. Comparison really is the thief of joy.
Congrats, you built a thing of beauty
That looks incredible, well done! With that you certainly earned my subscription.
I assume the refresh rate is currently limited by the protocol and throughput through the ESP32 and not so much by the speed of the LEDs, right? Have you done some testing with the RGBs how quickly they can switch to see what the theoretical maximum is? If that is considerably faster, it could be worth considering a faster interlink / different protocol, so latency goes down and refresh rate goes up. This might never be a super viable gaming solution but I think it could be considerably faster and enable you to play retro games REALLY well on it. Also it would potentially allow for syncing up the modules better, as I see there is some lag between the panels.
Those are just some random thoughts, so feel free to ignore them. It is an incredible project and quite the accomplishment!
I am sure these looks more awesome when viewed from very long distance,
For room projections
I think even a cheap HDMI compatible projector might have better results.
And yeah hats off to your hardwork and patience in building this giant screen 👍👍
You could maybe design an interlocking dovetail type pattern for the panels, to help them fit snug together and to still keep a straight edge on where they meet. Maybe for the brim it could have a perforated pattern right where you need to stop sanding to make it easier to distinguish material that's meant to be there from the flashing.
Otherwise really cool project, 5/piece is a steal.
dude, a fellow hardware developer that likes good kid? Epic. subscription earned!
Nice project and video! One question: Aren't you worried about voltage dropping, connecting so many matrices/LEDs in series per panel?
I would try to feed every matrix with its own power so that the copper trails don't get too hot supplying the last matrix in the panel
I did a lot of testing to find the best balance. I’m only driving the leds at about 5% brightness so I can take some shortcuts. In the EPIC MONTAGE there’s a clip where I drive all the pixels white and you can see the last matrix in series is pretty yellow because of the voltage drop. Lowering the brightness a bit more fixed the problem!
I have experienced quite a few fatal failures on those flexible units, thermal image at full load clearly shows the solder pads running away - also you will immediately notice luminance (and therefore chroma shift) degrading both at hotspots and bad smd solder
I'm actually quite impressed how he had not at least 3 of those panels DoA needing a reflow. They are absolute bang for the buck, no question. Sometimes even below 4usd. But 800khz isn't just not cutting it for a single wire signal... If 500usd budget has to deliver this size, you'd absolutely outperform this wall with pretty much any used beamer matching the price range in both size, brightness reliability and post rave evac sellout value
Nice wall :) I suggest alignment pins in the model to perfectly align them.
AWESOME ! Old pixel games would be PERFECT
Getting it up to 24 frames per second would be perfect to watch movies
Really cool project. Did you consider printing stacks of the frames instead of one at a time?
You should check out the brush super glue they make, I think it’s pretty useful
These remind me of the twinkly squares. Some more refinement on the squares and this could way more awesome than they are. Wish I had the skills to edit /design 3D items.
If it was just a little bit bigger you could get a pixel perfect Gameboy Advance screen. If it weren't for the low framerate, that might be the coolest thing ever.
I feel robbed that you didn't try Doom. At the very least you could have done Mario Bros. And I also hate you for making this and showing me because my OCD brain wants another incomplete project in my hobby room. lol
Buy more.. they are $0.99 a tile right now (13:30 EST on the 15th)
i would have used pogo pins instead of the 3,5 inch plugs with some magnets it would connect bye holding a tile close to the rest
This was my original vision for the project but it was going to be too expensive
That was a pretty awesome build, well done! The overall look and posterization is great :D
What baud rate were you using for the serial connections by the way, was it standard 9600? -- I assume higher baud might reduce lag between individual panel squares, but could introduce corrupt/missing frames.
The baud rate maxes out at 921600 but technically I’m running these at 2000000 to squeeze every bit of speed I can get
@@Tech-Random Woooow that's impressive performance for serial! Did you talk about *choosing* serial in another video? Or is it the *only* inter-ESP comms method that can work [for your displays]? -- Not an expert myself!
I'm sorry if I missed it, but how do you process the signal. In other words, what is the output from the computer to the screen? I am assuming usb, in that case who/what processes the video into serial data?
Look up “LMCSHD” on TH-cam. It’s great but USB serial is kind of slow for this much data
@@Tech-Randomisn't that the guy who reviews tech?
It may be a limitation of the LEDs, but maybe you can increase the quality of the colors by using gamma correction (if you are not already using it, for instance all images use sRGB by default)
Human eyes can distinguish shades of colors way better in the darker color range and not so much in bright colors, so by using gamma correction you can squeeze more distinguishable shades of colors in the same amount of bits of data
The conversion formula is this:
sRGB to Linear: pow(red_channel_brightness, 1.0 / 2.2) | Screen capture side
Linear to sRGB: pow(red_channel_brightness, 2.2) | ESP32 side
It’s actually a limitation of the software I’m using. To drive all of these pixels at 12fps I had to reduce the colorspace to 8-bit RGB. One bit per pixel is way faster than 3, but the color accuracy is a huge compromise.
This is really cool! Have you thought of adding some dithering either to the signal from your pc or on the controllers to get less banding with your limited bit depth?
Colors and luminance will be all over the place anyway, as those panels cover 0 to 100% defect rate perfectly linear
This is pretty cool, but I wonder: What is the main limitation for the 12fps frame rate? Too many LEDs in series, the ESPe not being fast enough or the data connection being not fast enough?
It’s the data coming in from my PC. USB Serial is limited to 1 Mbps so the math is 192 x 128 = 24,576 Bytes per frame. 24,576 x 8 = 196,608 bits per frame so about 5 frames per second. I’m running groups of 4 panels in parallel so I have a theoretical max of 20 frames per second with this setup.
Wow 😲 that's great and so far the most beautiful diy giant led wall.
good day Sir I'm from 🇵🇭 and I wanna ask if that four groups vertically consist of 6 panel with 6 tile is connected wirelessly via web socket like your previous led wall?
The panels are connected using 3.5mm audio jack cables and all of the data is transmitted through a Serial connection
@@Tech-Random thank you Sir for your reply If I'm going to make this modular type of your new design of led wall, it is possible to make it wirelessly connected via web socket like your previous led wall that has been divided on 4 vertical panels but still following this new design of modular type with 3.5mm audio jack cable for data transmission?
my plan is not only to stick on a big screen display but I want this to divide it on 4 vertical panels such as your previous led wall when I'm going to use it on the stage for design on the left side and right side of the stage like events indoors.
It’s certainly worth trying. My main concern is the data rate of the websockets. The old wall was low resolution so it wasn’t an issue but this design needs a very fast connection. I talk about the software more in my dream office video if you’re interested in learning how I get a fast frame-rate.
@@Tech-Random thank you so much Sir for your knowledge on this it's a big help for us beginners who aim to know more about this Godbless to your future projects.
Good day Sir I have another question, can I increase the number of led tiles that I'm going to build?
yours is 6 tiles per module and my plan is to make it 12 tiles per module (4 width x 3 length).
yours is 4 modules per column and mine is also like yours 4 module consists of 12 tiles per module per 1 column of 4 columns.
sorry for my deliberation I hope you understand I'm not good at the English language 😅
I was waiting on this video! Great job! Keep it up!
I assume that you're currently driving the LED panels data line by feeding from one panel into the next?
Have you thought about running the panels in parallel allowing you to claw back some FPS?
Each vertical column is connected in series and the bottom panels are connected to my PC in parallel. That’s why the frames refresh out of sync vertically in some of the clips. I’m hoping to improve this in the future though!
@@Tech-Random ever think about implementing something like the I2SClocklessLedDriver for esp32s3?
could split the overall matrix into 16 different areas which are all driven in parallel, I know FastLED.show() is blocking as it pushes data out to the LEDs so the longer each strip is the less fps you'll get, but splitting it up into 16 smaller 'strips' would mean you'd be able to populate each strip a tad bit faster.
Could take it a bit further and swap to a teensy 4.1 which could do parallel output on any given pin which could allow for more zones, although that is a more expensive MCU
@@Tech-Random Check out the I2S capabilities of the ESP32, it can drive 24 channels in parallel and thus can achieve extremely high framerates! ;)
Using a single ESP32 with the I2S output its very easy to push ~6k pixels over multiple channels at around 240fps.
Next challange is getting the data from the PC to the ESP32 quick enough, serial is a bottle neck, but Wifi/Ethernet has much more bandwidth. :)
Very cool! Just curious with that set up would it work to make an enclosed cube?
EPIC BRO!!! Great Job!
This needs more likes
the few plates on the right are a little slower then the first and last one, is it possible to connect the 3d ones to the 1st one? or will that mess it up?
I see. You made a low rez monitor that makes you take moms advice and not sit to close.😄
Just think, for the low, low price of another $72K in displays you could have made your own 820 in 1080p monitor.👍
i build one out of strips. was not the best idea, alot of work.. but its 5m wide and is 60hz. (but only 2500 pixel) :P.
I will need to use these grid panels in the future as well!
Seeing such a low pixel density and low colour range. It actualy shows how close the devs back in the day we're interested of realisim with the tech they had
Excellent work! Where is the software used to convert the pc screen pixels into the custom protocol that the board receives?
Look up LMCSHD on TH-cam!
When printing the 16x16 grids, could you avoid printing the frame on the right/top of each module so that when they are placed next to each other, a double thickness is not created, which would then be visible as a grid when the display is on.
setting up the 3D printer to knock the print off deliberately is clever!
Impressive HW Build. Where can I learn about the software and networking to get the images/video displayed once the arrays are built?
Look up LMCSHD on TH-cam. I have my own fork but you can use the main build for this project!
@@Tech-Random Yeah but how do you connect LMCSHD to the ESP. You said once that it receives it through the uart port, but how does the first panel get the data and what settings do i need in LMCSHD.
@TheHolzixx I use a USB to Serial converter that I soldered to one end of an AUX cable. That plugs into UART IN of the first board. In LMCSHD I select the com port of my converter and set the baud rate to “2000000” and Colormode to 8pp RGB. I actually have four of these connections so each of the bottom panels gets its own USB connection and drives the three panels above it. Hopefully that helps. Feel free to ask more questions!
@@Tech-Random Ahh ok. On the Aux, what Pins so i need to solder tx rx and gnd to
@TheHolzixx It should be green to ground, red to RX and white to TX. Some aux cables may use black instead of green.
Very cool projects! Out of curiosity, why did you not go with P10 or P6 matrix panels?
Price
Where do you get those motion backgrounds/effects?
Is it really necessary to frost the acrylic, given how small the pixels are?
For the alignment issue, here's what I'd try: use only one big piece of acrylic (or, better, glass) and make the grids mechanically interlock rather than trusting my eyes and superglue
Pick up a nicer 3D printer (doesn't even need to be resin, just a nice modern FDM printer like a bambu labs). You could have avoided removing the brims and any sanding. Definitely worth the investment!
I would love to scale this to my roof so I could play Doom on my xmas lights 😂
You didn't cover the most important part, software
Are you using WLED?
Hiw do yoy get vit into the esp32?
I have a cot of 16x32's lying around and want to find a way to get PC stats into WLED maybe it can be done through thr same method you are using to grt video in.
I want to put the 32x16 matrix vertically inside my PC case for stats such as temps and also run sognal RGB effects on it.
Even though I already have a 8.8 turzx screen in there, there is a perfect palce for the matrix
could you explain what happened at 16:40, that white-yellow gradient - was that the panel running out of power? how did you fix it?
The wires that connect the tiles are really thin so if I drive the panels too bright they start to turn yellow like that as available power runs out. I lowered the brightness in software until that issue went away.
did something similar with a group of friends, but a large cieling and much different design constraints, over a decade ago.
Was there any reason you printed the grids in black and not white or grey which would be more reflective and increase brightness?
Printing the grid in white would help diffuse the light but result in a some color bleed between pixels. I used white PLA for my first LED wall and each tile would light up the tiles next to it a little bit so I’ve used black ever since.
@@Tech-Random fair enough! I'd be curious as to how grey would fare, potentially making the grid slightly less pronounced. None the less, an awesome and well executed project!
Doom would look great on the panel.
I love the build of this!
For the acrylic, why not use larger sheets of like 120x240CM?
does the diffusion look different in person? ik cameras can act weird around defused leds
The old wall was hard to look at in person and always looked better on camera. This new one looks incredible in person and about the same on camera. If you’re really close it can be hard to make out individual shapes but it’s night and day compared to the old one.
You absolute MadLad.
congrats for 10k subs!
But will it play doom?? Amazing job and great project 😮
why not leave 2 outer walls of the tiles while printing so they connect seemlessly and dont build a thincker line between them?
the outside line being thick is good for structure maybe not for finished form
What a colorful space heater (energy bill to the moon).🚀
I would have recommended getting SK9822 or APA102c based ARGB Matrices, as they have a separate clock line, letting you push more data by increasing the clock, thus increasing framerate. the SK9822 IC can go up to 15 MHz, which is 18.75 times faster than WS2812B (800 kHz)
A resin printer would have improved the printing time considerably, and there is no need to sand them afterward.
In SLA Printing only the overall Print time matters (Influenced by hight of the print) but not the amount of objects you print at the same time.
With a good dialed in settings, on a decently sized printer you could have printed 10 of these tiles at ones. And you could have printed the Diffuser right on it (SLA allows for much much thinner layers)
Also Consider small plastic lenses to get an better even spread of the light.
Great Video and Project btw :)
Could you please explain how you made all the screens appear as one monitor? Thanks.
That’s what the headphone jacks are for. Data goes in to the first one, then it passes it on to the next and so on. I’m using open source “LMCSHD” to convert my computer screen into serial data.
now you have to buy an abandoned theater and make it 10 times bigger. I'd also suggest making the input on a separate board and divide it up with cables of fixed length.
He would run out of address space
@@coolm98 it'd still only be 1920 by 1280
@neutrallybiassed1330 Full HD!
Cool project. I might try it myself but smaller. My Bambu Lab P1S combo can happily put down a 0.2mm layer across the print bed 256x256 mm. This in white will make a good diffusor. The black cells 16x16 panel can be printed diredtly on top after chaging filament making a one pice with an integrated diffusor.
A black diffuser with white walls will give you better color accuracy. The white diffuser does a good job softening the light but you lose black and grey pixels so your images will look washed out.
next try 1mm pixel :) lol. awesome project!
Any reason you didn't use the APA102 pixels?
Too expensive:
www.aliexpress.us/item/2251832133665850.html?spm=a2g0n.productlist.0.0.3967246eguO7NI&browser_id=e20afc80bb6f4d0093a55219d6849599&aff_platform=msite&m_page_id=yovdhwwuwicacbbk19152281b7f1a71c7bb6e40414&gclid=&pdp_npi=4%40dis%21USD%2184.50%2165.91%21%21%2184.50%2165.91%21%402101e62517236602458696042eb4e5%2161427381998%21sea%21US%210%21ABX&algo_pvid=9ee08d0e-fccd-400e-b726-0e4b67e6c016&_universallink=1&m_page_id=yovdhwwuwicacbbk19152281b7f1a71c7bb6e40414
Very cool man
Have you ever designed your own flexible LED panel? I have a project in mind that would be so much easier to have its own flexible led panel.. but i dont know where to start.
Amazing!
Could you please explain the Software you‘re using?
I use an open source program called LED Matrix Control Software HD. Look up “LMCSHD” on TH-cam and you’ll find some great videos on it!
10:53 "unlike a lightbulb which can be dimmed by reducing the amount of energy going into it, LEDs are limited to an ON or OFF state".
first ... no? with the On/Off switching you DO limit the amount of energy..... that is the point of PWM.
And secondly LEDs can be simply current-controlled and it is the superior way but a bit more complex so hardly ever used. It is better for efficiency and lifetime of the system.
Hey, what's that spiderman animation at 19:30 ???
“Hero” music video by Martin Garrick and Jvke
Why not just diode OR the two 5v supplies opposed to having a switch?
You should redo the code in ESP-IDF, it will take A LOT but it will be worth the speed increase if you do only the necessary and make the ESP32 use both cores in a more organized manner, unfortunately Arduino is not the best for it
I had originally designed the code to use both cores and store extra frames in a buffer, but the transfer speeds from my PC are so slow that it made no difference. If I were to redo this project and implement a proper USB controller then I could really take advantage of the parallel processing. The downside of that is that I’d need to write a USB driver and that is a lot of work for a non-marketable project
Perfect for Atari2600 or NES retro gaming
(has 3d printer)
(didn't make a 3d printed jig to help with assembly)
Ship it!
12:42 yo another Oregonian!!!! lol
It will be a better value used is a pretty funny way to put a processor in a positive light lol
Great video!
Me checking for 1M views: 😮
How in the world do you only have 500 you deserve 1M subs and views great video!!
I didn't like how long it took for the data signal to propagate when doing my LED array so I chopped them into shorter strips addressed in parallel. Addressing 24 separate strips of 60 LEDs gave me a 24x60 panel that could refresh up to 360 times per second, the motion clarity is just butter smooth 🧈
The limiting factor is actually the speed I get data from my PC over USB Serial. It’s limited to 1 Mbps so it maxes out at 12 fps while my circuit could easily drive the pixels at around 45 fps. I would love to upgrade to USB 3 but that’s expensive and development would take a long time.
@@Tech-Random I ran into that issue as well and switched to HDMI and used a hobby FPGA to buffer and output LED data signals out of 24 separate pins. It started as a lightning project but turned into a really good entry to learning HDL and synchronous design
@@Tech-Random ethernet is always an option as well if you need to provide a bit more bandwidth. Given each 'strip' is comprised of 8 16*16 panels giving you 2048 LEDs per strip, with 30 microseconds per LED update it would take 61440 microseconds per column to update, giving you a theoretical maximum of ~16.27FPS given your current configuration. Only real way to improve on this is to section up your LED strips more, there's no changing how fast the LEDs themselves can actually update
Good but too low pixel count there is a panel available in market for little bit more $7 if you but offline but the resolution is 1080*720
Please share the link so I can use these in a future project
Trying to print this circuit on jlcpcb but get this error:
The below parts won't be assembled due to data missing.
SPI_IN,SPI_OUT,H1,H2 designators don't exist in the BOM file.
This is expected. Those parts are meant to be unpopulated because they don’t provide any necessary functionality
if his code is open source we need a gray beard to implement v-sync