feature article
Subscribe Now

Create Awesome GUIs with Microchip’s Ensemble Graphics Toolkit

I’m sure you are familiar with Monty Python’s classic Four Yorkshiremen sketch, but it’s always worth revisiting one of its incarnations on YouTube. This is a parody of the way in which older folks delight in engaging in nostalgic conversations about their humble beginnings and difficult childhoods.

In this sketch, we meet Obadiah, Ezekiel, Josiah, and Hezekiah, all of whom hail from the county of Yorkshire in England. I’m not sure why, but I always had the impression they were retired miners. Be that as it may, while quaffing a glass of wine together, our heroes start to reminisce about their upbringing. As the conversation progresses, they try to outdo one another, and their accounts of their deprived childhoods become increasingly absurd.

In the video version above, which was filmed at The Secret Policeman’s Ball, John Cleese delivers the final account. When he leans forward and says, “Right,” you know that his delivery is going to be epic. The sketch ends with Michael Palin saying, “And you try telling the young people of today that, and they won’t believe you.”

The funny thing about this sketch (apart from the fact that it’s funny) is that it’s rather close to home, because — making my arrival in this plane of existence in the city of Sheffield in Yorkshire — your humble narrator is “Yorkshire born and bred,” as they say. Recently, I was involved in a video chat with my chum Adam Taylor, who also comes from Yorkshire. As I noted in my Feast Your Orbs on NVIDIA’s Jetson Nano 2GB Dev Kit column, Adam and I both attended Sheffield Hallam University, although Adam graduated 20 years after yours truly.

Sad to say, our video chat almost became a parody of a parody, because we quickly sank into reflective tales regarding our time in academia. Adam boasted that his year had access to the finest in steam-powered digital computing engines. I responded that we could only dream of digital computers when I attended university; instead, we were obliged to work with antiquated analog artifacts.

One of the topics of our conversation was the series of blogs we are writing on How to Get an Engineering Job and Keep It. Funnily enough, one of the folks who logged into our chat — obviously someone with too much time on his hands — suggested that we host another video with a panel composed of engineers from each generation. For example, we could get someone who has just graduated in 2020, someone who graduated circa 2010, Adam, who graduated in 2000, an engineer who graduated circa 1990, yours truly who graduated in 1980, and someone who graduated circa 1970. We might even be able to find an ancient who graduated circa 1960.

The idea would be for us to discuss how the process of getting and keeping engineering jobs — including things like daunting dress codes and writing resumes — has changed over the years. What makes this vaguely relevant to how we commenced this column is that the mad impetuous fool who conceived the idea of this panel went on to suggest that it would be a good idea if all the participants were from Yorkshire. Good grief, that would be a sprocket (the collective noun for a group of engineers) of six or seven Yorkshiremen, which would be like Monty Python on steroids. Let’s do it!

But we digress…

My first position after graduating university in 1980 was at International Computers Limited (ICL) in the West Gorton (as lovely a location as it sounds) district of the city of Manchester. Like all of the other engineers, I had a small black-and-white monitor and a keyboard on my desk. I don’t think I had a mouse at that time. I know I didn’t have my own workstation because we all time-shared a monstrous mainframe computer.

Another thing we didn’t have was a graphical user interface (GUI). Everything was done in textual form at the command line. When I received notification that one of the ASICs I’d designed had passed through layout, for example, the results were presented in the form of a humongous ASCII text file in which ‘1’ characters represented metal layer 1, ‘2’ characters represented metal layer 2, ‘X’ characters represented vias between metal layers 1 and 2, and so forth.

In order for me to perform layout versus schematic (LVS) verification, for example, I had to print this monster on 18-inch wide fanfold (continuous) paper. I think I ended up with around 20 strips of paper each 20-feet long. After sticking these all together to form a giant rectangle in an unoccupied bay, I spent the next couple of days walking around the layout comparing each feature to its corresponding element in the schematic. Oh, the fun we had!

After a year or so, I was invited to join a small startup company called Cirrus Designs. At that time, my mother was distraught, proclaiming to all and sundry that I was making a horrendous mistake. Now, with the benefit of hindsight (the one exact science), when she recounts the epic tale of my life to her friends, instructing me to make this move was the best advice she ever gave me. (To be fair, even though she recently celebrated her 90th birthday, my dear old mom still has a mind like a trap. In fact. her memory is so good that she sometimes remembers things that haven’t even happened yet!)

I was number six to join the company, and I arrived the day after the desks and chairs, so the other guys said I was a lucky… person. Our computer was a 16-bit DEC PDP-11/23, which was the size of a large stand-up freezer. Next to it sat a fridge-sized 1MB hard drive, whose multi-platter disk was reminiscent of a wedding cake, while the rest of the cabinet contained the control circuitry, interfaces, and power supply.

In addition to us all sharing a single root directory/folder on the hard disk, this computer could support only a single instantiation of a screen editor at a time, where a screen editor was one in which you could guide your cursor around the display and make edits (add and delete characters) directly at the cursor’s location. The rest of us had to slog along with line editors (similar to the VI editor, but much simpler), which wasn’t as much fun as one might hope.

Outside of computer games, this was my first real-world exposure to rudimentary graphics in the form of the simple line art you could achieve using the character set offered by a VT100 video terminal.

This trip down memory lane was sparked by the fact that I was just talking to the folks from Microchip Technology about their Ensemble Graphics Toolkit. This no-cost, license-free and royalty-free bodacious beauty is designed to speed Linux GUI development.

Intuitive GUI created using the Ensemble Graphics Toolkit (Image source: Microchip)

Today’s users prefer, nay demand, sophisticated and intuitive GUIs for many deeply embedded Linux applications, such as appliances, control panels, and medical devices. Unfortunately, existing solutions can present challenges, including the fact that 3D graphics acceleration and high memory bandwidth are frequently required, thereby pushing up microprocessor unit (MPU) performance needs, memory requirements, and power consumption. Also, solution costs may be increased due to licensing and royalty costs.

The Ensemble Graphics Toolkit addresses all of these challenges for Linux-based MPUs. In addition to being free to use, Ensemble — which is optimized for Microchip’s MPUs — minimizes the memory footprint and power consumption to lower the MPU bill of materials (BOM) costs.

Boasting a familiar application programming interface (API), Ensemble integrates open source projects like Cairo and gstreamer as part of a mature framework familiar to Linux graphics developers. In addition to importing regular media files and graphical assets from industry-standard design tools, Ensemble offers more than 100 control widgets and utilities, 2D vector anti-aliased graphics support, 30 frames-per-second video and audio playback up to XGA resolution (1024 x 768), and native human-machine interface (HMI) support for touchscreens, keyboard, and mouse. There are also integrated widget animation and effects with support for real 2D physics libraries.

Ensemble is fully supported by Microchip as part of the company’s mainline Linux distributions, and full demos are available — including fast boot — to simplify the out-of-the-box experience. Speaking of fast boot, which is particularly important for applications such as automotive clusters, the aforementioned demo shows a boot time of less than 2.5 seconds from a cold reset to user interaction, which means the system will be ready and waiting before you’ve finished buckling your seatbelt.

Now, as I’ve mentioned before, I’m a hardware design engineer by trade, so the software side of things requires a little more effort on my part. I have friends like Adam Taylor, president of Adiuvo Engineering and Training, and Jacob Beningo, founder of the Beningo Embedded Group, who could do this stuff in their sleep, but I’m a big fan of being trained in this sort of thing rather than being left to my own devices. Thus, I was delighted to hear the “hot off the press” news that Microchip is planning a customer training class on user interface (UI) design, which is scheduled for release in early 2021. The folks at Microchip say that this will be a high-level introduction to UI design along with other topics. Plus, they will also be offering multiple Linux classes, with at least one being an introduction to their new Ensemble Graphics Toolkit. All I can say is, “sign me up for a front row seat.”

Sometimes I spend some time sitting in my command chair contemplating my navel and shaking my head in wonder at how fast and far things have progressed since I started my career. I can’t even imagine what I would have thought when I was programming the engineering department’s room-sized analog computer at university if a future (older, more mature) me had popped back to bid (young and foolish) me a cheery “Hi there” and shown me a 2020-era embedded system with a full-color GUI. The fact that I didn’t do so suggests that my experiments with time travel are doomed to failure. Alternatively, it may be that I am poised for success, but that visiting (and changing) the past triggers the formation of a parallel universe. Let’s assume the latter option is the right one, in which case I need to dispatch the butler to fetch my time-travelling trousers and a case of party hats. In the meantime, as always, I’d be interested to hear your take on all of this.

3 thoughts on “Create Awesome GUIs with Microchip’s Ensemble Graphics Toolkit”

Leave a Reply

featured blogs
Feb 28, 2021
Using Cadence ® Specman ® Elite macros lets you extend the e language '”€ i.e. invent your own syntax. Today, every verification environment contains multiple macros. Some are simple '€œsyntax... [[ Click on the title to access the full blog on the Cadence Comm...
Feb 27, 2021
New Edge Rate High Speed Connector Set Is Micro, Rugged Years ago, while hiking the Colorado River Trail in Rocky Mountain National Park with my two sons, the older one found a really nice Swiss Army Knife. By “really nice” I mean it was one of those big knives wi...
Feb 26, 2021
OMG! Three 32-bit processor cores each running at 300 MHz, each with its own floating-point unit (FPU), and each with more memory than you than throw a stick at!...

featured video

Silicon-Proven Automotive-Grade DesignWare IP

Sponsored by Synopsys

Get the latest on Synopsys' automotive IP portfolio supporting ISO 26262 functional safety, reliability, and quality management standards, with an available architecture for SoC development and safety management.

Click here for more information

featured paper

How to Fast-Charge Your Supercapacitor

Sponsored by Maxim Integrated

Supercapacitors (or ultracapacitors) are suited for short charge and discharge cycles. They require high currents for fast charge as well as a high voltage with a high number in series as shown in two usage cases: an automatic pallet shuttle and a fail-safe backup system. In these and many other cases, the fast charge is provided by a flexible, high-efficiency, high-voltage, and high-current charger based on a synchronous, step-down, supercapacitor charger controller.

Click here to download the whitepaper

featured chalk talk

AC Protection & Motor Control in HVAC Systems

Sponsored by Mouser Electronics and Littelfuse

The design of HVAC systems poses unique challenges for things like motor control and circuit protection. System performance and reliability are critical, and those come in part from choosing the right components for the job. In this episode of Chalk Talk, Amelia Dalton chats with Ryan Sheahen of Littelfuse about choosing the right components for your next HVAC design.

Click here for more information about Littelfuse AC Protection & Motor Control in HVAC Solutions