Glen Akins has a gift when it comes to glorious HMI projects.
We've featured many a work of his here, ranging from the myriad parts of the Zombie Containment Unit, to reverse engineering the protocols for the parts liberated from the previous generation of pro AV gear.
While normally working his magic on "older" peripherals, it's fair to say that he has got a certain set of skills for massaging new life into old silicon — and this set of skills makes for some very noteworthy results when thrown something a bit.. "newer" to chew on.
Let's dive on in to this high DPI circular display craftsmanship.
Yet more castoffs from the commercial and consumer market, already AliExpress has these circular displays available for literally single digit dollar pricing in single quantity unit sales.
Whether you want a display that talks DSI, or perhaps speaks a more "embedded-friendly" SPI; one with a specific control IC; or even in sizes up to some several inches in diameter, the choices are almost endless already.
Yeah, things could get a little out of hand without some self control when it comes to the checkout...
The last generation of smartwatch and smart assistant display assemblies are falling through the supply chain to our waiting, eager hands.
With a focus on the cheaper options (thankfully), Akins has opted to jump onto this specific model of circular, SPI-interfaced display.
With a GC9A01 control IC, we've touched on getting to blinky with this specific part previously.
Perfect for poking about with on a low level, this display can be easily driven from any SPI enabled MCU, or even in Akins' case, a Raspberry Pi.
With a little library help from leptonica, and a good eye for graphics, Akins has pulled together a few bits of what looks to be python glue in order to get these great looking gauges spinning up smoothly
Leptonica is a graphic library that offers a huge range of the types of operations you might find yourself graphically doing in GIMP, or otherwise manipulating manually.
With a gauge scale and pointer separated out into two different images, leptonica can animate the pointer, programmatically pointing it where needed.
Also, the idea to create programmatically generated "cards" to indicate the value on display in the desired typeface is very nice. That, and to re-range the scale to something reasonable, is a very neat trick.
As we can see in the image below, CO2 concentration is often shown in ppm — parts-per-million — rather than a percentage.
With HMI applications, the catch is often in the detail to attention, and it's clear to see that this is something paramount to Akins in his own production values.
While some of us may not immediately notice thew difference in appearance between these two scales displayed below, once you pick up on the subtle differences, they are hard to miss the next time around.
With a basic gauge on the left, and a suitable shadow set on the right, the difference made by adding a little depth is darn worth the extra effort!
So far, this article has been more of a pointer on how to leverage these fantastic display modules — and with what result!
But more than that, in a general sense, this has been a pointer on how great results can come from commonly available code, and a little glue around the edges to tie it all together.
That scales up dramatically, as we can see from one use case listed below: keeping an eye on eCo2 levels within his home.
With data logged from a sensor to ThingSpeak via a Particle board and a Raspberry Pi pulling down the latest readings, in order to drive a not so subtle industrial indicator lamp — along with the circular gauge screen.
With the ppm concentration of CO2 of the air we breathe having a direct effect on our clarity and focus, when the indicator shows anything other than green, maybe it's time to open a window, and let some fresh air in!
It's a look, for sure, but it's hard to resist the allure of industrial controls, and hey, extra points for recycling something that would have otherwise ended up as e-waste!