Pack smart if you want GUIs on cheap hardware
I was talking to a medical device engineering manager the other day and, though I wasn’t sure why, we just weren’t seeing eye to eye. I was telling him that he really needs to invest more to get the GUI he was describing onto the low-end processor he wanted to use for an infusion product. By invest more, I mean more than he would if he were using a near-PC level piece of hardware. “But I want to spend less. That’s why I’m going with this cheaper part!”
This was an “a-ha” moment for me. There’s hardware cost, and then there’s project cost.
Then my aching back reminded me of my trans-Atlantic flight earlier this week and this analogy hit me: I have a friend who also made the trip (let’s call him Dave). Dave brought only a carry-on bag with all of his assorted clothing for this weeklong trip. In sharp contrast, I brought a gigantic suitcase and checked it in (paying the airline $75 for the privilege). Now, I was able to bring pretty much any clothing I wanted in that monstrous rolling luggage. Dave, on the other hand, had to do quite a bit more work to cull his sartorial choices for seven days to fit into a shoulder bag. Dave’s effort was worth it as he was repaid over and over for having lighter, smaller luggage. From avoiding fees, to not having to wait at baggage claim, to easily boarding the train from Frankfurt, to breezing over cobblestones in the plaza.
How does this apply to my processor conversation with the medical device guy? It’s quite simple. Big hardware is like that big suitcase. You pay more for all the space, but you don’t have to be an expert packer.
When you have small hardware (like a low-end processor), every bit and byte matter, as does every CPU cycle. You need to take advantage of everything that the hardware offers to save you space and time. For example, display layers must be leveraged for performance and memory reduction. And using dual graphics pipelines and hardware accelerated graphics functions is essential to offload work from the CPU. Don’t forget about boot times! Prioritizing asset loading to get the fastest start-up will also go a long way to making the hardware feel like it’s up to the task. If your hardware is limited, you need to use everything it’s got.
All of this means that it’s more expensive to develop for cheap hardware.
So, why would I ever choose cheap hardware if I have to spend more money developing for it? One word: volume. That one-time cost to get the code right gets divided across every unit that’s shipped, but the returns are multiplied for every unit. It’s a shrewd investment. In a mass-market world with billions of IoT devices that need a display, every penny counts. Moreover, silicon vendors are innovating in ways that let those in the know deliver an incredible amount of usability for a really low price. They’re adding more graphics acceleration, more on-chip RAM and flash, direct from flash screen draws, and more.
In the long run, cheaper can be cheaper, but you have to make the most of what you have.