Smoother Data Visualization on Raspberry Pi Zero W

So I got a Raspberry Pi Zero W and a Waveshare 1024 x 600 pixels touchscreen lying around doing nothing, so I decided to put them to some good uses. I decided to make a “Data Visualization” from my IoT sensors. I gave Pi Zero W DietPi with Chromium pointed to another Raspberry Pi 3b+ that has Grafana installed. Grafana consumes data from InfluxDB on the same Pi 3b+.

I expected the Pi Zero to be very sluggish, but Chromium displaying Grafana page on Pi Zero turned out to be even more sluggish than I thought. The graphs could only refresh themselves every 10 seconds or so at 640 x 480 resolution.

So if I want to visualize data at 1024 x 600 resolution, do I have some other (native app?) alternatives here in this case? Or is this way too much for Pi Zero W?

PS. Since the Waveshare resolution is 1024 x 600 natively, I do not see display option for this resolution in the dietpi config. Is it possible to set it somehow?



I guess there is no alternative way than using a web browser. That*s how Grafana is accessed. In your Pi Zero, you could check CPU + Mem usage once running Chromium. Probably it’s overloading your system.

I see. Then, in that case, how about this? I could write in C, C++, Python, Node.js.

On microController such as M5Stack which has TFT LCD, I could consume sensors data from mqtt server which is also on Raspberry Pi 3b+, then render these data out on the tiny screen. The function calls for these microControllers are more primitive. You gotta manipulate all drawLine, drawText, drawShape, etc. on x, y coordinate. Set color, size, etc. accordingly.

I am very ok with doing these primitive functions. On DietPi, can you suggest a library which could accomplish above just like what I could with the microControllers?

A rendering library that could do the primitive rendering functions, preferably no need to go for any desktop environment. Just use terminal and access pixels on a frameBuffer (?) directly then after everything is rendered, render this frameBuffer on the monitor directly. Double Buffering, if my memory is correct, to prevent objects on the screen flashing like in the NES days.

Other things I see that are required:

  • mqtt library
  • font library for used with above rendering
  • g++ for compiling this app.

sorry but I don’t have the knowledge on such development or scripting stuff

Maybe MichaIng has an idea.

Since Firefox is preinstalled on our desktops, you could at least give it a try, but Chromium it has native RPi GPU support (you either installed a desktop or raised GPU memory split manually, didn’t you?) so if it is not able to present the Grafana graphs fluently, Firefox will most likely not do better.

I have not much knowledge about direct LCD rendering either. Mosquitto is available in dietpi-software, g++ included in build-essential, however you can install everything via APT repository just as you would on Raspberry Pi OS or any other Debian-like OS. Also likely there are already such tools to print InfluxDB data nicely to console, like Grafana but printing to screen instead of web application.