Key architectural choices - monolithic vs. microservices - impact scalability and complexity. Planning for multi-user support early prevents costly modifications, while containers enhance consistency and security in deployment. Strong security practices, such as minimizing root access and securing OS vulnerabilities, are essential for resilience. Thoughtful planning ensures a scalable, secure, and maintainable embedded system.
Choosing the ideal software stack for your embedded device is a decision that influences both its performance and long-term value. With so many tools available, the burden of figuring out where to start can feel overwhelming. This blog aims to help you streamline your software selection, focusing primarily on the lowest level of the software […]
Shipping your product to customers is where some real challenges in software development begin. Once it lands in customers’ hands, delivering the expected and necessary software updates can be a complicated task. Here’s a breakdown of some key considerations to keep your product, and your customers, running smoothly, even after your product has shipped. Getting […]
Not all devices require screens. Some rely on web-based user interfaces or smartphone apps for control and interaction. But if your product needs a built-in screen and you need to decide which to get and what to do with it, the rest of this blog is for you. Elaborate or plain? It’s important to choose […]
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 […]
Developing embedded software is notoriously difficult – how can we simplify the process? Fortunately, there are lots of techniques you can use daily to help streamline your development. Embracing Automation The specialized nature of embedded systems extends the ramp-up time for developers and necessitates a higher level of expertise. Automating hardware-specific tasks, such as deploying […]
In today’s pervasively digital landscape, building software for a single platform is a 1990s approach. Modern applications, even those designed for specific embedded targets, must be adaptable enough to run seamlessly across various platforms without sacrificing efficiency or reliability. This is often easier said than done. Here are some key points to consider when developing […]
The robustness of Linux is widely acknowledged, but it can't quite match the microsecond management of a real-time operating system (RTOS) for time critical situations such as CNC machine instructions, vehicular control, or health sensor collection. If your software must record, manage, or control events within a narrow and precise time window and you’re invested […]
Choosing the right system-on-chip (SoC) is probably your first consideration when designing an embedded product, followed closely by deciding whether to use an off-the-shelf board or design your own. The case for commercial boards in initial designs For the first product in a new line, consider using a commercially available board that features your chosen […]
When designing an embedded product, there’s a lot riding on those crucial first decisions of choosing a hardware vendor and board. Clearly, the hardware you select must be powerful enough to support your product, a challenging determination given that software is usually still in the planning stages at this point in the process. Plus, planning […]
With Apple moving to Apple Silicon for all of their new products, software developers are having to figure out how to support both Intel and Apple Silicon devices. Like some of our customers, you may not be ready to move to Apple Silicon. Unfortunately, that doesn't necessarily exempt you from dealing with universal binaries, especially […]
Declarative Widgets is a QML plugin that adds Qt Widgets support to QML. This means we can now easily mix the power of QML with the comfort of a Widgets UI on desktop. Background Declarative Widgets was born out of a breakfast discussion about how awesome it would be to use QML to describe QWidget-based […]
Unlike a lot of modern development, embedded development is close to the hardware. It runs on specialized boards, uses custom testing harnesses, requires expensive debugging equipment, and has its own characteristic workflows. That hardware dependency makes embedded development.
Before creating your first embedded Linux device, you need to determine how you want to build your software. After all, the tools and development processes for embedded Linux may be quite different from what you’re used to with smaller microcontroller-based or bare-metal systems. If you want a well-designed, easy-to-maintain, and cost-effective solution, take the time to research your options and keep in mind the following key considerations.
Deciding on the various software components in your stack is a crucial step when creating your first embedded Linux device. You want to build a stack that meets your objectives now and brings continued value in the future. However, there are so many tools you can combine to build and maintain a successful product it can be challenging to know where to start.
This whitepaper examines your choices for the entire software stack, from the OS to the application, and gives you things to consider at every step.
The most challenging decision you’ll make when creating your first embedded Linux device is about the hardware. While you can do a software upgrade mid-development without massive disruption, making changes in hardware development comes at a much higher cost. So, you must make some critical decisions upfront about which CPU, board, and peripherals you want to use in your embedded Linux device. This whitepaper examines the numerous planning considerations that go into choosing hardware to help you expedite your development process.
The first module in a whitepaper series on designing your first embedded device; it covers the beginning and ending of the product development process. At the onset of a new project are a handful of critical choices that shape and constrain every other decision down the line. Similar “up front” decisions around your expected customer experience influence your ability to update or change your product after it’s already in the customer’s hands. These decisions frame the entire development process.