Efficient way to display a webpage?

I want to display a local webpage (html, javascript) into the panels, I tried to install chromium on kiosk mode on raspbian lite and I found that just running blank page takes like 40-60% cpu , causing noticeable flicker and freezes on the panels just running the demo 1, I haven’t even tried cloning the video frame buffer which I assume will even decrease the performance.

I’m using rasp 4 4Gb with Electrodragon hat and 4x P4 1/8 panles x 3 chains (12panels, 256px x 96px total) webpage to display it’s very simple, just few css3 and js effects with real time data and very low resolution needed but seems just runing chromium and X server destroy the rp4 performance for anything else

There is a workarround (thanks @raspberry.pi.maker ) which consists using a hdmi capture and display the framebuffer to the matrix trought OpenCV and Python (by the way much much better performance than running chromium)

the big thing is that you need an additional raspberry (or mini pc), an additional power supply, a network switch, the usb capture…

I wonder if any of you have successfully managed to do this with a single raspberry, any advice is welcome. thanks!

Electrodragon hat and Rpi need to process frames in real time, so it is not recommended to use them together with processes with high CPU occupancy. Chromium is a program that uses a fairly high CPU and memory resource share. So streaming the content of Chromium browser on one Rpi doesn’t seem like a good way. Even if it is well tuned and works well, depending on the chromium content, the CPU occupancy may increase momentarily, and in this case, the LED quality will decrease.
Chromium browsers don’t necessarily have to run at Rpi. If cost is an issue, you can also run the Chromium on cheap Chinese SBCs like the Orange Pi with HDMI ports. I think it’s good to separate the system to keep good quality.

Hi mate, thanks for the reply

Today I tested the whole thing and against all odds it’s work very well :heart_eyes:
The key I thing is the low resolution and framerate, I set the framebuffer / hdmi output to 256x96 and 30fps, the 1,2 & 3 core load average it’s arround 40% just for chromium and xorg, 4th core it’s dedicated to rgb matrix with isolcpus=3

There is a lot of flicker but it’s is solved with the fps limiter , I get arround 460hz (rpi4 @1.7Ghz) so I set the limiter to 400hz and no more flicker at any point, even with some tcp/socket.io packets for other features.

I made the html content (css transitions, gifs, js text effects) from scratch, being very careful with the efficiency, I recognise that as soon as you do something wrong or do too many effects at once, performance drops off, not my case so I’m going to continue in this direction.

I used FullPageOS 0.12 from Stock, I am still researching to remove unnecessary applications to increase performance, my main goal for the panels is to be visible to cameras in daylight, but I think for that I would need >3000hz, a bit far away

Hi Heet, would it be possible to share the code you used to do this? I’m trying to do something similar but struggling to find the right resources. Thanks!