Screens everywhere make a GUI dilemma -

Screens everywhere make a GUI dilemma


I had one of those medical events this summer that netted a panicked wife, fun ambulance ride, and ultimately a completely benign diagnosis. But for a couple of weeks they had me monitoring blood glucose levels using a $10 monitor and a $150 supply of test strips.

Afterwards, of course, I disassembled the monitor and found it runs on a pair of coin cells. An MSP430 16-bit MCU controls everything, including an LCD display that shows quite a bit of information.

Remember the old days of a simple seven segment display? We'd torture them into displaying some alphabetic characters and hope users could distinguish a “B” from an “8” based on context. Now it seems that fancy screens are everywhere.Without stirring from my chair, I can see the following screens:

  • 2 monitors on the PC
  • The laptop (Macbook Pro)
  • My main oscilloscope (Agilent MSO-X-3054A)
  • A VOM (an Extech I'm falling out of love with)
  • At least a dozen various embedded eval boards
  • A bunch of electronic products like the glucose monitor I've disassembled
  • The little Canon point-and-shoot camera
  • Screens on the lab power supplies
  • iPhone
  • iPad mini
  • Several VoIP phones

That's without spinning around to see the printers, other computers, and who knows what else in the same room.

Digikey lists an astonishing 4,764 different Cortex M-series MCUs. Over 600 have an LCD controller on board. Today we certainly live in the time of screens everywhere. There will be a lot more in the future.What software will drive these? The glucose monitor has a typicallow-end screen which is custom made for the application. It's not bitmapped like a general-purpose TV display, so the code won't be verydifficult. The camera screen, the scope, and other fully bit-mappedproducts require gobs of software.

Some of these products run Windows or Linux and can leverage the richGUI support therein. But an MCU like those 4764 Cortex M parts willnever run those operating systems. Developers face two choices: custombuild a GUI or buy a component.

GUIs are surprisingly difficult to write. Where do windows overlap?Which parts of the screen are “dirty” and need updating? There's an evenworse problem: that miserable marketing bozo who wants color and layoutchanges the night before shipping.

Some products simplify the task. You can buy GUI code, but usually abetter alternative is to find a product that is composed of both thecode needed in the embedded system, and a program that runs on a PCwhere you'll do all of the screen design and layout. It will thengenerate C structures that instruct the GUI code that lives in yourembedded system. You'll still have to write all of the event handlersand the like, but the heavy lifting is taken care of by the purchasedcomponents. With these tools it's usually easy to make last minutechanges to satisfy the bozos.

Express Logic introduced such a system (named GUIX) at ARM TechCon. Ihaven't seen the demo but the data sheet looks promising. It's a verycomplete system that is scalable, so it will run on screens large andsmall. Unlike some of the embedded GUIs it will allow the full range ofwindowing features the iPad generation expects, and it will handle touchand gesture interfaces. Best of all, it's optimized for small 32 bitMCUs… like those 4764 Cortex M devices. GUIX Studio is the name of theWindows-hosted design code, and it will actually execute the design onthe PC, so those marketing folks can see what the application will looklike long before you've put months into the implementation.

At this time GUIX requires the use of the ThreadX RTOS.

Are you using a GUI in your embedded product? If so, is it a commercial version or home-brew?

Jack G. Ganssle is a lecturer and consultant on embedded developmentissues. He conducts seminars on embedded systems and helps companieswith their embedded challenges, and works as an expert witness onembedded issues. Contact him at . His website is.

14 thoughts on “Screens everywhere make a GUI dilemma

  1. I use the Caramel GUI in my projects. It's a GUI I wrote from scratch back when GUIs were expensive and my company didn't want to pay for one. Very simple but extremely fast. Why did I call it Caramel? Because Caramel is GUI…

    Log in to Reply
  2. Now that GUIs are so common, are there any good guidelines for the design of the graphics? It seems to me that it's really easy to create a confusing or frustrating interface (I have been subjected to some myself). There's lot to consider. I recall seeing

    Log in to Reply
  3. Jack, it is going to make a lot more sense to use HTML5 to generate displays on browsers for relatively low-end devices. The processing load on the device is significantly lower, and it will be much more common for these devices to be network – connected.

    Log in to Reply
  4. De Re Atari had a set of guidelines for developers. It's available online. The top ten rules that I remember are:

    1. User interface should be consistent. The same button or icon should have the same purpose in every screen.
    2. Buttons should be ordered a

    Log in to Reply
  5. De Re Atari had a set of guidelines for developers. It's available online. The top ten rules that I remember are:

    1. User interface should be consistent. The same button or icon should have the same purpose in every screen.
    2. Buttons should be ordered a

    Log in to Reply
  6. I ran across this . – a branch of – has an Arduino UNO with a color touch screen attached. $90. (Disclosure: i know the guy – Randy – from embedded shows; Other than that, no connection).

    The API is full-blown – buttons, boxes,

    Log in to Reply
  7. Nice article, it's a decision we have to take more often than not. We have used both home-grown libraries and Qt, depending on the platform. For us, handling multiple languages (even multibyte ones like Chinese) in a flexible manner (not hard coded strings

    Log in to Reply
  8. okay
    if I use MCU's from STM I can use segger's GUI for “free”, so think what is mine choise?
    Amother example if I get NXP or TI's Tiva (at last we can get CM4 with fully integrated Ethernet), here another choise and factors. Offten we don't need alot and

    Log in to Reply
  9. “My impression is that most designers make a mental jump right from “GUI” to “a graphics library running on an RTOS.” That immediately moves you into a power-hungry, more expensive realm of both hardware and development tools (at least for the tools pr

    Log in to Reply
  10. “all fine until you end facing a product that should support say 60 different locales. Doing it yourself is a viable option for hobby projects, but for real global products fcing localization and rendering issues due to glyphs slightly more complex to the

    Log in to Reply
  11. “FTDI has a newer device, the FT800 – 810. It makes it easy to run color lcd's with nice GUI's from any micro-controller.nn “

    Log in to Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.