The Raspberry Beer’o’meter
blog.senx.io
blog.senx.io
So they did the hacker thing and wired up the keg to an EPS8266, and gave everyone an RFID chip with which to gain their weekly beer rations.
I found this immensely amusing. Truly a wonderful hackrrspace .. if anyone ever gets a chance to visit Pristina, check them out .. and bring them some hardware to play with, while you're at it ..
It’s /dev/dri/card0 on my device.
DRM has a thing called “dumb framebuffer” which exposes a memory mapped file with the CPU-accessible frame buffer data. See DRM_IOCTL_MODE_CREATE_DUMB and DRM_IOCTL_MODE_MAP_DUMB IOCTLs. The only inconvenience, some boilerplate is required to find the correct GPU connector, and setup a supported video mode.
The fun here was to use only Warp 10 database on the system, the only time series database that has built-in image creation function in the language. Normal use is to build heavy dataviz on the server, then return a base64 encoded png.
https://doc.qt.io/qt-5/embedded-linux.html#linuxfb
Qt is fairly popular in the embedded space. I'd bet the support and robustness is quite good.
Raspbian comes with a fairly outdated version of Qt inherited from Debian, and there are no precompiled EGLFS binaries that I can find. Even the Qt folks don't distribute an installer. I could understand a complex beginners guide[1] if this were lower level stuff. It's not.
How recent? Debian's latest stable, Buster, got released a couple of months ago. Raspbian's rebase on Debian Buster is recent, like a good month ago. Raspbian should sport Buster's Qt version.
Of course Debian only bundles X11 versions of Qt so if you're looking for an EGLFS build, you're still stuck rolling your own. If the Qt folks distributed pre-built EGLFS binaries for the Pi this would be a huge usability win IMO.
I won’t redo the whole embedded GUI from custom NanoVG-based library to Avalonia, started much earlier than 2 months ago. For next embedded Linux project, or major version upgrade of the current one, I’ll definitely evaluate Avalonia.
Does it use GLES to render fonts and 2D graphics? Or they’re rendered on CPU?
Does it support ClearType-like font rendering, like this forked NanoVG? https://github.com/Const-me/nanovg/
Is there something comparable to WPF’s D3DImage to insert custom 3D content? In my custom library, I’ve implemented GlesInterop control which does nothing on the NanoVG render pass, but after the whole GUI is rendered, overlays a custom GLES content on top of the result.
How hard it is to implement custom touchscreen input? I’m currently generating touch events by reading from /dev/input/event0 with a FileStream class.
Is there on-screen keyboard in Avalonia? That’s probably the most complex piece of UI I’ve implemented in that project: input focus, modifier keys switching layouts, and that’s just for US English keyboard.
But the kiss approach was great here. WarpScript includes all you need to render text, vectors, images... The limit is that I cannot use the touchscreen.
Thanks for your replies everyone !