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
Oct 22, 2021
Voltus TM IC Power Integrity Solution is a power integrity and analysis signoff solution that is integrated with the full suite of design implementation and signoff tools of Cadence to deliver the... [[ Click on the title to access the full blog on the Cadence Community site...
Oct 21, 2021
We share AI chip design insights from AI Hardware Summit 2021, including wafer scale AI accelerator chips, high-bandwidth memory interfaces, and custom SoCs. The post 4 Futuristic Design Takeaways from the AI Hardware Summit 2021 appeared first on From Silicon To Software....
Oct 20, 2021
I've seen a lot of things in my time, but I don't think I was ready to see a robot that can walk, fly, ride a skateboard, and balance on a slackline....
Oct 4, 2021
The latest version of Intel® Quartus® Prime software version 21.3 has been released. It introduces many new intuitive features and improvements that make it easier to design with Intel® FPGAs, including the new Intel® Agilex'„¢ FPGAs. These new features and improvements...

featured video

Fast & Accurate 3D Object Detection for LiDAR with DesignWare ARC EV Processor IP

Sponsored by Synopsys

This demo, developed in partnership with Sensor Cortek, executes the FA3D algorithm on ARC EV7x processor with DNN engine. It shows 3D boxes rendered onto objects detected in the video frames, enabling the development of driver assistance systems.

Click here for more information

featured paper

3 ways to speed cycle time when designing with brushless-DC motors

Sponsored by Texas Instruments

Designing systems with BLDC motors can be challenging, because it usually requires complex hardware and optimized software designs to deliver reliable real-time control. This article discusses three methods for simplifying the process.

Click to read more

featured chalk talk

IEC 62368-1 Overvoltage Requirements

Sponsored by Mouser Electronics and Littelfuse

Over-voltage protection is an often neglected and misunderstood part of system design. But often, otherwise well-engineered devices are brought down by over-voltage events. In this episode of Chalk Talk, Amelia Dalton chats with Todd Phillips of Littelfuse about the new IEC 623689-1 standard, what tests are included in the standard, and how the standard allows for greater safety and design flexibility.

Click here for more information about Littelfuse IEC 62368-1 Products