Blog

4 min read

The low down on Hybrid Rendering and why you should include it in your next wearable or IoT product development project

By Brian Edmond on Aug 7, 2019 12:07:14 PM

If you haven’t heard the term hybrid rendering before, that’s because it’s pretty new. Broadly speaking, hybrid rendering generates graphics by using multiple distinct paths through silicon. One example is creating CGI movie frames using both a GPU and a CPU however we at Crank use the term for something that is much more useful for embedded developers and designers: rendering a user interface with multiple graphics accelerators.

If this feat seems intriguing or even confusing – read on.

In the embedded domain, hybrid rendering means creating a user interface with both a 3D GPU and a secondary graphics processor within the same application. The secondary graphics processor must be able to accelerate 2D graphics (this is typically a composition core but other options are possible). The application dynamically switches between accelerators at run-time, depending on what graphics need to be displayed.

An example of silicon with the right magic is the NXP 7ULP which has both an Open GL ES GPU as well as a 2D GPU accelerator/compositor. The 2D GPU is very powerful and can accelerate alpha blending, scaling, rotation/mirroring, overlays, bit blits, lines, rectangles, color space conversion, and more, with much less power consumption than its 3D equivalents.

Continue Reading
3 min read

Elevating the role of the embedded UI designer

By Jason Clarke on Jul 31, 2019 12:37:03 PM

You’ve heard us talking about design in the embedded realm before, and if you know anything about the team at Crank Software, you know that this is something we feel passionate about. Here’s a simple example of the power of design.

Continue Reading
3 min read

How to build your next smartwatch UIs - without killing your battery.

By Alecia O'Brien on Jul 25, 2019 11:08:37 AM

NXP's i.MX 7ULP and Crank Storyboard UIs – a winning combination for 3D graphics processing on small battery-operated devices.

When I went looking for a forgotten smart watch charger while camping this past weekend, I cursed at the manufacturers who hadn't met my power needs. Yes, my girls were all over my watch playing with the graphics, but the fact my battery died hours before the sun went down was beyond frustrating.

For this reason, giving consumers a brilliant, touch screen experience that doesn't have a battery-sucking trade off is the goal of engineers globally.

Consider this: the present battery technology road map has a 2x capacity improvement every decade, while the power demand will probably increase at the rate of 2x every 18 months or so. This stat reinforces the need to continually innovate power solutions for small battery-operated devices. 

Our partner NXP went to work on this several years ago and appear to have solved this challenge with the launch of the i.MX 7ULP - the lowest power consuming GPU enabled microprocessor on the market. It runs a rich OS, but operates at MCU level low-power all while having both a 2D and 3D GPU on board, which means future smart devices like the smart watch I want for Christmas is going to have an incredibly long battery life, while having ALL the features and fancy 3D and 2D graphics I didn't even know were possible.

Continue Reading
3 min read

Develop lean and high-performance embedded UIs for MCU platforms with Storyboard Lite

By Jennie on Jul 4, 2019 7:14:41 AM

Don't carry more than you need. It's a rule that applies to many things.

I once bought my daughter one of those gigantic packages of crayons that contain over 200 colors and 33 shades of blue. She only used 12 of the colors but still had to carry that big package in her little backpack to school every day. She complained that it took up too much space in her bag and that it was so heavy it slowed her down. It was more than she needed.

Having more than you need is also a hindrance in embedded software development. Mass market products are built with cost in mind, which means teams are building applications for hardware platforms that are lean on memory and resources. These applications have to be able to fit AND perform well, making optimization and fine-tuning critical to success. You can't deploy more than you need. You have to choose which of the 33 shades of blue you need.

In our recent Storyboard 6.0 release, we launched Storyboard Lite, an exciting new configuration of our widely-adopted embedded UI development tool. Storyboard Lite helps teams build applications that are tailor-made for their hardware platforms, especially for small resource-constrained targets where every kilobyte matters. It's lean enough to deliver fast and efficient applications, but with the same collaborative workflow and ease-of-use that developers are familiar within Storyboard.

Listen to what Thomas Fletcher, Crank's VP of R&D, had to say about Storyboard Lite and other supporting functionality at Embedded World 2019.

 

Continue Reading
3 min read

See how your dynamic screen content will behave at runtime while you design

By Mike Marchand on Jun 18, 2019 11:33:53 AM

When you run an embedded application, screens are dynamic and change in response to data and animations. However, you can't see those dynamics during design time, so you're left with blank screens until you simulate or test the application on a device. If you've ever had to work with content that you could not see by default during the design process, you probably had to make that content visible while working with it, and then return it to its invisible state when finished. This workaround is cumbersome and prone to user error.

In this post, we’ll tackle the challenge of designing content that reacts to changes at runtime, the problem with the traditional workflow, and a better way to visualize content throughout its modalities.

Challenges with working with dynamic content at design time

Traditionally, this has been the workflow:

  1. Toggle the visibility of the layer (and all those that are obscuring it)
  2. Work with the content on the layer to make desired changes
  3. Restore the visibility of all the changed layers

This workaround is error-prone because all it takes is forgetting to restore the visibility of a single element to leave things in a bad state. Also, it's tedious and time-consuming because these additional steps aren't providing any additional feedback to the developer when they restore the layers.

Check out the following video to learn about a better solution to working with dynamic content and making it faster and easier to build up your GUI screens.

 

Continue Reading

Featured