I spent three days at the Embedded Systems Conference UK in Farnborough last week. At these shows I sometimes hunt for the answer to a specific question and other times I am keeping an eye out for trends.
One topic that got a mention at the “Current State of MicroElectronics” panel discussion was the increasing importance of low power. There was also a paper on tweaking motor control algorithms to reduce power consumption. Low power considerations now matter at all parts of the design. Reduced network traffic, means that a wireless link can spend more time turned off, reducing drain. A compiler optimization means that the processing is performed quicker, and now the device can spend more time in sleep mode, which consumes less current. It set me thinking about whether this has any influence on my own area of user interface design. We are all used to battery indicators, but in some applications there might be scope for providing more information. Some cars display the fuel consumption level, to encourage drivers to drive in ways that conserve energy (i.e. don’t accelerate so hard). Similar indicators on a GUI could influence the way the user configures a device, if battery life or power consumption is a concern. If I reduce the backlight brightness or turn down the music volume on an MP3 player, it would be nice to know what percentage change I have made to current consumption. I am told that turning on Bluetooth on my cell phone drains the battery, but there is no feedback on the device which allows me to confirm if this is the case. Current consumption could be graphically represented, with maybe some time averaging depending on the application.
A few months ago, in an ESD article (http://www.embedded.com/218101668) I bemoaned the fact that GUI library vendors do not differentiate between mouse events and touch events, and Qt (qt.nokia.com) was one of a number of products that I mentioned in that piece. At the Qt stand at the show I had a look at Qt 4.6 and was delighted to see that they not only added touch support, but handled multi-touch and have a mechanism for passing gestures to the application on OS’es that support gesture recognition.
QNX had no stand, but Garry Bleasdale, a field application engineer with QNX, gave a talk on GUI development. The talk focussed on Flash as a way of making user interfaces a lot sexier than you can with a typical GUI builder. QNX’s GUI builder, Photon, provides buttons, sliders and other graphical widgets, but could never offer the kind of slick animated GUI available with Flash. Of course you have to get Flash ported to your platform first – or hopefully someone has already ported it for you. Flash definitely gives you the opportunity to make your GUI unique, and it is often desirable to get away from the slightly Windows-ish GUI that you get with most GUI libraries’ buttons.
There was a “Current State of Embedded Systems” panel. Much of the discussion was a language war, where panel and audience kicked about ideas about why something better had not replaced C. For a while the discussion turned to operating systems. Jack Ganssle, at one point, blurted out “Linux Sucks” in the hope of invoking a riot – sometimes the Linux evangelists get rowdy at these events. Getting them all fired up probably does little for the technical content of the debate, but it makes it more fun. While I am unsure of the validity of the “Linux sucks” position, Jack made a more telling comment, that maybe Android as a more shrink-wrapped version of Linux, might take some of the pain out of integrating Linux into an embedded device. Will Android become the one-size-fits all Linux distro for consumer devices. Maybe a bit early to say, but definitely one to watch.
My other mission at the show was to investigate SPI interfaces to graphical LCD displays. I occasionally deal with a client who wants to add graphics to a design, but their preferred processor has no built in graphics controller, and no external address/data bus to allow an external graphics controller to be used. If the number of pixels is low (sub VGA resolution), then there are a number of modules available from distributors such as Arrow and Review Display Systems, who both had booths at the show. The SPI modules are basically a controller mounted on the display, sometimes with a touchscreen combined, and an SPI interface. The SPI is incredibly appealing to the hardware designers, since address/data bus issues disappear. I was warned however that these modules are usually designed for specific customers, usually for a cell phone. If the big volume customer looks for changes, then the small volume customer might be faced with the same mechanical or electronic changes. So anyone who is building a medium or low volume product, which has a long design life, should be very wary of this otherwise appealing design solution. This is the sort of stuff I learn at the shows, that you just can not find in datasheets and marketing brochures.