Buttons, switches, LEDs, graphic segment displays are becoming a thing of the past, or at least the mechanical version of these. Color screens, touch interface, and smartphone graphics are rapidly finding their way into the human – machine interfaces. Unlike the mechanical controls, they are fully defined by software, hence upgrade-able, they can be more intuitive to use, more eye-candy through animations, can display more information at a glance, more cost effective to manufacture, and more reliable since there are no mechanical contacts that wear out. The enclosures become simpler since they only have to accommodate the LCD screen and easier to make water resistant. A full solution can be reduced to a single chip that can drive the screen and perform other functions relevant to the whole system at the same time.
Thornwave Labs Inc. is offering custom LCD screen solutions for a variety of applications. Shown above are some example that are running on a build-in-house system-on-module based on STM32H7 and a 7″ color TFT screen with touchscreen.
Let’s talk about the RV control panel demo. This solution can replace multiple components: the old control panel, the thermostat and even the DC part of the electric panel by adding electronic fuses controlled from the main LCD panel, battery monitoring and so on. Features that were reserved only for the high end RVs can now be added at a very affordable price: slide automation, leveling capabilities, battery monitoring, dimmer controlled lights, audible alarms, integrated audio players, IoT capabilities and so on. Your imagination is the limit. Obviously, the same ideas can be applied to trucks, boats and so on.
The software is based on Thornwave Labs’s proprietary graphic library: Iridescence. It was designed to run on low power, Cortex-M CPUs with a minimal memory footprint and low power consumption. The entire code that implements the RV control panel is only 70kb in size + PNGs and bitmap font resources (about another 80k) and needs roughly 7Mb of RAM (most of it being three framebuffers).