Choosing Your Embedded Hardware
Choosing the right hardware for an embedded Linux device is so much more important than your software choices. Making the wrong decision can lead to significant costs and disruptions if you have to change hardware mid-development. Read this blog first before you solidify your choice.
Custom or commercial?
Choosing between a custom or commercially available board centers around the system-on-chip (SoC). The SoC, while obviously essential, is also a major cost and risk factor in your design. If this is your first project on a particular SoC, start with a commercial board from an experienced vendor. It may cost more initially but it allows your hardware and software teams to gain valuable experience with the chipset. Only after your team is proficient with that SoC should you consider moving to a custom board.
Choosing your silicon
Choosing the right silicon vendor for your project is crucial. Thankfully, most vendors like AMD, Intel, Nvidia, NXP, and Renesas offer evaluation boards that allow you to thoroughly assess their chips’ capabilities. These eval boards are often comprehensive, showcasing the full potential of the silicon. However, whether you should use a vendor’s board in your final product depends on factors such as cost, support, and the board’s longevity. Eval boards are typically not intended for mass production and that’s reflected in their higher costs and limited distribution. Vendor support, including engineering advice and board support packages (BSP), also plays a crucial role. This support should include driver and OS updates; vendors need to release BSP updates on a regular basis, and if they don’t that can keep you trapped on earlier versions of software. It’s important to consult with your silicon vendor’s sales representative to understand whether an eval board is suitable for production or if there are other more appropriate solutions
Choosing your board
A handful of trusted and reliable companies build up single-board computers from a chip set. What do you look for when choosing your board vendor? Here are a few factors we recommend.
- CPU: Choose the CPU wisely as it’s the most critical factor for performance in your design. It’s better to opt for a higher specification CPU than you need to accommodate potential increases in software demands.
- Hardware: Essential hardware features to consider include RAM, flash storage, HDMI, USB, and SD card support. Evaluate these based on your development and production needs.
- OSes: Determine if the vendor provides a suitable OS, like a custom Linux or a standard distribution as a pre-loaded option. This can significantly reduce development time.
- Software: Does the vendor offer software features like containerized development or OTA updates? This too can streamline development and maintenance.
- Custom engineering: Determine if the vendor provides custom engineering services for specialized hardware functions, such as driver tweaks or startup modifications. This can be crucial for fully using certain hardware features.
- Board longevity and support: Look into how long the vendor supports their boards and their software, especially for consumer goods that require long-term updates and support.
- Roadmap: Understand the vendor’s commitment to innovation and whether they provide a clear product roadmap. This can help anticipate future upgrades or changes.
- Cost: While cost is always important factor, it should be evaluated against the overall value provided by the vendor’s board and support services, including potential software development savings.
Where to go for more
There’s a lot to consider when picking your hardware. We address the topics in this blog in more detail in our best practice whitepaper series on Designing Your First Embedded Linux Device, Part 2: Choosing Your Hardware.
If you like this article and want to read similar material, consider subscribing via our RSS feed.
Subscribe to KDAB TV for similar informative short video content.
KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us.