Creating Dashboards

Hi all,

Apologies if this isn’t the right forum for this, but I’m not really sure where else this might be relevant.

I’m writing a little application in Python to allow for creating dynamic / flexible dashboards with as little bespoke code as possible, designed specifically for display on RGB matrix panels. Intended to be fairly platform + panel / panel library-agnostic, but I’m running the demo with a 64x32 panel on the Pi Zero W using this excellent rpi-rgb-led-matrix library.

I have my own ideas of what dashboards might look like on an RGB matrix, but I’m wondering if anyone else has done some thinking on this topic or thinks that it’s a worthwhile idea.

On a high level, I think they should be easy to define (e.g. a markup language, maybe between SVG and HTML which would lend itself to WYSIWYG editing or quick writing), support updating data shown on the dashboard (from whatever data stream; should also be pretty straightforward to link up the data from a datasource directly into a display element), and support some basic animation capability (e.g. scrolling long lines of text or streams of data, color-coding text or glyphs dynamically based on data, etc).

Curious if anyone else has considered something like this and if there are any ideas or thoughts on the topic :slight_smile:

you may be the first, please go ahead and write updates on your progress.

I actually have a working prototype, complete with a custom little markup language supporting text/images/graphs/custom buffers, and a few types of layout elements, e.g. a CSS grid analog and block/inline-style containers.

Performance is the big issue so far I think; FPS is typically around 20-30 which is OK for a dashboard but still not great. I’m writing the POC in Python (for better or worse :wink: ) with some Cython code for buffer copies and blitting.

I have other things to work on though, so progress is not super quick; I’m putting in a bit of time per week. Once I can put together a functional-enough implementation I’ll post it here.

1 Like