MCU vs MPU: Choosing the Right Embedded Platform

When developing an embedded system, engineers often ask whether to use an MCU or an MPU. At first glance, this might seem like a hardware-driven decision, but in practice, it begins with software. The operating system and the features you plan to implement will largely determine which architecture best fits your design. At Witekio, we […]

How to Choose Between Custom Software Development Outsourcing and In-House for Embedded Projects

Software complexity is accelerating as embedded systems and IoT devices evolve. From AI-driven features to secure cloud connectivity, each leap forward raises the technical bar. For OEMs, this brings both opportunity and challenge: how to deliver innovative solutions while managing risk, resources, and time-to-market. Recent surveys show that 65% of organizations are implementing IoT strategies, […]

How Zephyr Can Help You Build Greener MCU-Based Systems

eco tech circuit board

Lessons from Witekio’s Internal Sustainability Initiative At Witekio, we’re committed to building embedded software that not only performs—but lasts. As part of our internal Green Development initiative, our teams have been exploring ways to reduce the energy footprint of embedded systems, especially those built around microcontrollers (MCUs). In a recent hands-on session, we focused on […]

Bare Metal vs RTOS vs Embedded Linux: How to Choose the Right OS for Your Embedded Device

Close-up of an embedded device circuit board connected to a developer setup, illustrating the spectrum from bare metal to embedded Linux development.

Choosing between bare metal, RTOS, or embedded Linux isn’t just a technical decision—it’s a strategic one in embedded software development. It impacts development time, system scalability, cost, and long-term maintainability. This post breaks down the core differences, trade-offs, and use cases of each to help embedded software developers and engineering teams make the right choice […]

Zephyr as a Secure Choice for Embedded MCU Development

The need for robust security in embedded devices has never been more critical. As IoT becomes everyday, vulnerabilities in connected devices become prime targets for cyber threats. Ensuring firmware integrity, secure communication, memory protection, and trusted environments is not just a nice-to-have—it’s essential. In this blog, we explore how Zephyr RTOS provides the foundation for […]

Rust for Embedded Software: Safe, Modern, and Gaining Momentum

Rust embedded Software

When it comes to embedded systems development, languages like C and C++ have long been the go-to choices. They’re familiar, and efficient, and give developers low-level control over hardware. But more recently, Rust has entered the conversation—especially in the context of safe, modern embedded software. Why Rust? Rust is a relatively new systems programming language. […]

Ubuntu 20.04 End of Life: What It Means for Embedded Devices

Ubuntu 20.04 LTS has been a popular choice for embedded Linux development since its release in April 2020. But as standard support for this version comes to an end in May 2025, businesses relying on Ubuntu 20.04 need to make a move. Without action, your products could be exposed to security vulnerabilities, compliance risks, and […]

Long-Term Maintenance Guide for i.MX Family Devices

Introducing Our New Guide: Maximizing Device Security and Longevity on the i.MX Family We are excited to announce the release of our comprehensive guide on maximizing device security and longevity for the i.MX family, created in collaboration with NXP. This essential resource provides detailed insights on maintaining and securing devices over their extended lifecycles, crucial […]

Why Is Embedded Software Development Still so Hard?

With all the advancements in tech and tooling, you would be forgiven for thinking that embedded software development was easy, or at least easier. Sadly, this is not the case. What is happening in the world of embedded development and how can we simplify things for OEMs? Fortunately for you, Witekio CEO Samir Bounab sat […]

Communication Between Dual Cortex – Cortex-A & Cortex-M Cores

Communication is key, in embedded development and all other walks of life. Getting the most from your hardware often comes down to speed and synchronicity of communication, and never is this truer than with dual coretex processors. By including both A and M-cortexes in a single MPU, such as the NXP i.MX93 and STM32MP1, you can […]

Embedded Yocto Security Hardening

In this connected age, it often feels like every line of code is a battleground, especially when it comes to Embedded Yocto Security. The number of threat surfaces and vulnerabilities a device is subject to seems to grow by the day. That’s why two of our top engineers got together with OTA wizards Mender to […]

EV Charging Software – Linux Based Applications

As manufacturers worldwide continue the transition from ICE cars to EVs, the race to gain an edge over competitors and understanding of EV charging software has never been greater. So how do you develop a future-proof EV charging software solution that is both secure and able to evolve? Witekio, ST Microelectronics and ARM joined forces […]

How to Migrate Qt from MPU to MCU

Developing attractive and intuitive applications for microcontroller units (MCUs) is no longer a pipe dream, but a crucial aspect of modern software development. The demand for MCU-based applications has increased significantly due to hardware cost and resources, and as the MCU hardware landscape evolves, we see more device makers than ever weighing up their choice […]

JTAG and Linux Embedded Development

A seemingly simple question on the best practices surrounding JTAG and Linux here at Witekio evolved/devolved into a heated discussion. That’s nothing new when talking about a subject that has pros and cons – after all, it’s our job to know what’s best for our customer’s projects. So we’ve turned this into blog, so you […]

Yocto Considerations for License Compliance

In the fourth edition of the Witekio and Mender: Yocto Master Class – we deep-dove into (apparently) everyone’s favourite subject: Considerations for License Compliance. When I say this was our busiest one ever – I really mean it In the end, we had nearly 20 full minutes of questions to answer from the community. As […]

Navigating the chip shortage using embedded software

During this year’s Engineering Design Show, a panel of Witekio experts took to the stage to discuss practical chip shortage workarounds with embedded software. You can see the highlights of the team at EDS, below: As the topic is something we’re helping our clients with more and more, we decided to condense the hour-long workshop […]

The Right OS for Your IoT Device

Choosing the right OS for your IoT device is one of the most important decisions that you’ll make. It might sound dramatic, but a device that doesn’t work well – won’t be used.     In today’s connected world, end-users demand a seamless experience and the OS you choose will have a significant impact on the reliability and […]

Firmware Vs Embedded Software

What’s the difference between Firmware vs Embedded software? Can you use the term interchangeably and does it really mean the same thing? There seems to be so much confusion in the industry around this topic (just Google it and you’ll see!) that the lack of clarity can make it harder for management and engineering teams […]

Yocto Kernel Development & Security Hardening

A profitable and successful device is a secure device – but in a world of threats, how do you secure your device and ensure it has a chance to find its market and deliver for end-users? Yocto Kernel Development & Security Hardening This is a key strategy to adopt and, in the article below, we’ll […]

Yocto Master Class with Mender.io

As part of an ongoing series of webinars on The Yocto Project, Witekio recently hosted a live Yocto Master Class. The event, which was held in partnership with Mender.io, lasted one hour and covered topics such as: The challenges of managing multiple hardware and software targets within the same codebase How to create a custom […]

Securing IoT Systems End to End – Webinar

Recently Witekio hosted a deep dive into IoT system security at its Securing IoT Systems End to End webinar. Three speakers took an engaged and curious audience through all elements of end-to-end security for connected systems in a 2.5-hour session that was both entertaining and informative. Nicholas Beck was the first to speak and introduced […]

Yocto alternatives: Which Is the Best Build System for You?

Open-source build systems like Yocto and Buildroot have simplified Linux embedding, making it possible for any developer to create a distribution for most hardware architectures and platforms. But which build system is the best? At Witekio, we have experience with a range of build systems, and we’re big fans of using Yocto for our Linux […]

Device security from Edge to cloud – SIDO Lyon

Witekio VP of Engineering Marc Balme joined other IoT experts at SIDO Lyon on a panel dedicated to all things security, from edge to cloud. Speakers – Device Security: From the Edge to the Cloud Marc took the stage alongside Cybersecurity Business School founder Guillaume Collard, Sierra Wireless Marketing Director for Mobile IoT Solutions Benoit […]

Eight Ways to Up Your Qt on Embedded Linux Game

There are plenty of resources out there to explain how to develop with Qt for embedded software, and for embedded Linux systems. For developers, it’s a popular choice and it’s easy to understand why. Qt comes with APIs out of the box making development faster, has a range of different development accelerators to keep things […]

Linux Debugging and Maintenance

Debugging is an integral part of every embedded and IoT software engineer’s role. Pushing working, secure, and robust firmware or embedded software to a device and then never returning to that software when new kernel versions or security patches are released is incredibly shortsighted. Instead, the best engineers understand that returning to the code to […]

Tips on energy optimization in IoT – Low Power IoT Devices

You said IoT Energy Efficiency ? The increasing ubiquity of IoT devices and the rise of edge computing on those devices makes energy-efficient IoT a core focus of many device makers. It is, after all, one thing to deploy devices widely but quote another to ensure that they can operate independently and with energy-efficiency, particularly for […]

Why You Need Yocto for NVIDIA Jetson Edge AI

At Witekio, we work with companies all over the world who need help connecting  everything from interactive screens to industrial equipment. Being a Nvidia preferred partner made sense for software lovers as we are. As IoT technologies become more mature and widely adopted, the amount of data that devices are typically shipping to the cloud […]

3 Technical Tips for your medical IoT Device Project

The market for the internet of things in the medical field is growing rapidly, with innovative applications ranging from remote medical data monitoring to medical adherence. Medical IoT devices represent the next generation of smart connected medical solutions. IoT (Internet of Things) is everywhere. Everything is IoT. Gartner predicts that, in 2020, IoT technology will […]

Secure Boot on NXP i.MX 7

What is Secure Boot in Embedded Systems? Or High Assurance Boot (HAB): why do you need it and what do you need to be aware of? In today’s connected world, IoT devices reach into every phase of modern life. From household appliances to automated cars, smartwatches to smartphones in your pocket, the heap of form […]

5 Steps to Compile Yocto Using Docker Containers

Embedded Linux development is never easy. As a software developer, I often run into compatibility issues between my Linux distribution and the dependencies required for a compilation when using the Yocto Project. One potential solution is the use of Docker. In this article, I’ll therefore show you how to create a Docker container for compiling […]

May Embedded Linux Platforms help you to optimize R&D Efforts ?

Why reuse code for your Linux embedded projects ? Embedded market pace has been notably affected by end-user expectations and high level market competition. In that context all tech makers want to launch better products on the market, at a faster pace and at a lower cost. The one who can offer that will please […]

A Fully Integrated Device Software Update Solution

Over The Air software update is a crucial topic for IoT devices, especially now that IoT is entering the realm of complex devices and industrial processes. Updating means enhanced security, enhanced functions, enhanced customer experience. It is key for innovations life cycle, be it the update of middleware or applications. Existing device software update solutions […]

Windows CE 6.0 end of life and Migration Alternatives

Windows embedded ce 6.0 is dead. Which OS Migration alternatives may you have as Win CE 6.0 is declining ? If you are an OEM which has been developing embedded devices over the past 15 years, you might have considered using Windows CE / Windows Embedded Compact a few years ago. Even though WEC is […]

Serious IoT project: Key steps to a successful Proof of Concept

What are the key steps to a successful Proof of Concept in a serious IoT project? In my first article, we addressed the four pillars for a successful serious IoT project and the first steps to implement. Let’s dig now into the Proof of Concept phase adapted to IoT/embedded projects. Write the first line of code […]

Turning on an ARM MMU and Living to tell the Tale: Some Theory

In my latest article ”Create your own MLO for a Beagleboard XM”  I wrote some bare metal code which ran on a BeagleBoard xM as an MLO – I’d like to extend this by running this code with the MMU switched on. I want to write the absolute minimum amount of code required to turn on an ARM MMU and to come […]

Containers on Embedded Systems – Webinar

Containers are a trendy topic and have been a game changer in the datacenter world in recent years. October 26th 2017, I presented through a webinar how containers technology is breaking into the embedded world, what its benefits are and what it can bring to Linux-based systems. After looking at an example illustrating how this technology […]

Patient Monitoring #1 – Critical choices: hardware, OS, software architecture

Patient monitoring is a crucial tool for medical professionals to acquire the most accurate information on the physical condition of a person such as blood pressure, body position, temperature, or glucose level. In a series of articles, we aim to present a full software patient monitoring solution which describes the challenges of system integration from […]

TPM: Basic applications to embedded devices

Trusted Platform Module: security of your embedded system, what are the basics, and how to use this with Linux? Nowadays, IoT security is an issue of high concern, whether in companies or personal networks, each connected device plays an important role in sensible data transfer and thus impacts the overall security. That’s where Trusted Platform […]

Serious IoT, Beyond the Hype ! #1 How to start my BtoB IoT project?

Airbus connected factory to shorten Time To Market, Remy’s Martin connected bottle to avoid counterfeit, Schlindler’s elevator smart sensors to improve security, Cisco-IBM connected port in Colombia to enable predictive maintenance, these are some successful examples of B2B IoT creating value and business, and there are many more to come. MACKINSEY ASSESS THAT 70% OF […]

Software Factory #2: What makes infrastructure crucial

Welcome to this second post about Software Factory. We will be speaking here about infrastructure, automation and a little about DevOps and NoOps culture. This article will be speaking a lot about tools, if you haven’t read the first article of this serie, you probably should and please do not forget that we are in […]

Software testing: TDD and BDD are in a boat …

Welcome in this third post about Software Factory. I started by introducing the notion in the first post, then I gave you my views about crucial infrastructure questions and also some “hype” keywords like DevOps and NoOps. In this new post, the idea is to cover software testing and testing methodologies. And again, as I […]

cat /proc/meminfo : MemTotal

embedded HMI data visualization, touchscreen UI development, interactive user interface, real-time data in embedded systems

Linux manages its physical memory in clever and often efficient ways – as a result, it’s not uncommon to only think about how the memory in your system is being used when we run into performance issues. And this is where the frustration can begin – without fully understanding how memory is managed, it can […]

GCC Weak Symbols

GNU’s GCC has a useful (and perhaps not very well known) feature known as ‘weak symbols’. I first discovered this a while back when building a Linux kernel – however unbeknown to me the Linux kernel makes great use of GCC weak symbols yet the compiler I used did not correctly support them. Rather than […]

An introduction to heterogeneous multicore processing architecture

Why would you need a heterogeneous multicore processing architecture? Nowadays people look to achieve high-performance processing and low power requirements for their IoT solutions devices. They also look for a high degree of functional integration and want to perform complex operations with them. All these products are targeted towards a growing market of connected and […]

Understanding I/O Wait (or why 0% Idle can be OK)

During the development of an embedded Linux based product it’s not uncommon to reach a point where the features of the product are seemingly demanding too much from the CPU. When this happens and features start to stutter the first point of call is often ‘top‘ – this often results in the dreaded realization that […]

What’s new with Android ? A summary of AndroidMakers

April 10 and 11 2017 was the first session of AndroidMakers in Paris. This event was created by Paug and BeMyApp. More than 40 conferences, technical sessions and workshops were scheduled and many big companies were there to present their views and innovations. All aspects of Android were covered. There were Technical conferences, on various […]

Using ‘delay_use’ to speed up USB Enumeration

Whilst investigating ways to improve the cold boot time of embedded Linux I came across a little-known control parameter of the USB stack known as ‘delay_use‘. It’s a parameter that describes the amount of time given to Mass Storage Devices to allow them to ‘settle down’ before being used. This article examines ‘delay_use’ and identifies […]

Embedded Linux Systems & the Yocto Project

Linux has come a long way since it saw the light of day more than 20 years ago, and is by far the most scalable operating system to exist today. From servers to desktops to embedded systems with low memory footprints, it is now hard to miss. Creating a new product today often requires the […]

I2C in the 2.6.32 Linux Kernel

The other day I forward-ported an old and abandoned touch-screen driver to the shiny new 2.6.32 Linux kernel. A small portion of the work was to bring the driver in-line with the latest I2C framework (notably due the removal of detach_client from struct i2c_driver since 2.6.31 in favour of the new device driver binding model). This […]

Software Factory #1: Why it matters ?

Software is everywhere. You probably have heard about it. Many organizations are disturbed in their original business by the arrival of software. Changes in culture, tools and processes are needed. This is the first article of a series that will give you some ideas on the state of the art of a modern organization, as […]

A Challenge called boot time

IoT devices require boot time optimization Building a Linux image on any processors with any graphical libraries as Qt, Cairo, Enlightenment… is getting easier and easier. Those builds are provided by the silicon vendors and are working out of the box. But they are also overloaded with functionalities that might or not be necessary for […]

Understanding vmalloc region overlap

I recently came across the following disconcerting message in my kernel’s boot output: vmalloc region overlap Which is the kernel’s way of saying “I understand there may be some RAM here – but I’m not going to use it all”. So what is the cause of this warning? And what do we need to do […]

Turning on an ARM MMU and Living to tell the tale: The code

Our goal here is to create a simple identity mapping across the entire address space between virtual and physical memory addresses – such that the following formula holds true: 1 virtual address = physical address In other words, the address space from the processor’s point of view (or anyone else’s POV for that matter) will […]