Use a USB-C cable for Multiple Interfaces Simultaneously: USB 3.2 Plus Your Custom Interface
In a wearable device we developed recently for a client, we needed three communication interfaces (USB3.2, UART and one GPIO connection). But we were limited to using only one cable to keep the product elegant. We chose USB-C, to achieve these multiple communication interfaces in parallel in a single cable. Unlike its predecessors, the USB […]
An Overview of USB-C and USB3.x
What is USB Type-C? USB Type-C is a connector specification developed by USB Implementers Forum (USB-IF). It is not a communication protocol such as USB 3.2 and USB 2.0. The “C” designation signifies its unique physical form factor, distinct from earlier USB connectors. One of its hallmark features is its reversible design, which eliminates the […]
FreeRTOS vs Embedded Linux – Which One Should I Use?
One major decision made by the embedded system architect is to choose the right operating system for the application. Two common operating systems for embedded systems are Embedded Linux and FreeRTOS. So, you may ask, which one of the two should I choose to develop my system? FreeRTOS or Linux? Which One is Better for […]
How NB-IoT is Transforming Connectivity – An Intro to NB-IoT
Introduction NB-IoT is a wireless IoT protocol that uses Low Power Wide Area Network technology and operates within licensed frequency bands. NB-IoT typically offers a communication range of up to 5 km under standard conditions. In areas with minimal interference and clear line of sight, such as rural settings, this range can extend up to […]
A Beginner’s Guide to Millimeter-Wave (mmWave) Radar Technology – Applications and Advantages
Millimeter-wave radar (or mmWave radar) is a class of radar technology that operates in the 30 GHz to 300 GHz frequency range. This offers unique advantages in applications ranging from automotive to meteorological systems. Introduction to Millimeter-Wave Radar Millimeter-wave (mmWave) radar operates on electromagnetic waves with wavelengths ranging from 1 millimeter to 10 millimeter (frequency […]
Ensuring Reliability of Safety Critical Software with MISRA
In safety-critical software systems—deployed in industries like medicine, automotive, and space—a single programming error can have dire consequences, from significant financial losses or potential loss of human life. This is where the MISRA standard comes into play. It is specifically designed for safety-critical systems, ensuring they meet stringent security and reliability requirements. The Need for […]
Solving RTOS (Real Time Operating System) Limitations with Active Objects in Embedded Systems
In embedded systems, Real-Time Operating Systems (RTOS) are designed to synchronize thread execution with specific events, often through blocking and waiting for designated occurrences. However, this approach has its drawbacks. Blocked threads become unresponsive to events they haven’t explicitly waited for, leading to the creation of more threads to handle additional events. But this growing […]
How to Avoid System Failure Caused by Collisions in RTOS – Introducing Mutual Exclusion
Real-Time Operating Systems (RTOS) are susceptible to system failure due to challenges like data/time collisions and race conditions. Unlike large desktop or server systems, such as Windows or Linux, where processes stay in their separate address spaces, RTOS threads all run together in the same address space. These threads often share resources like variables, functions, […]
Over-the-air (OTA) updates: A boon to connected devices
1. Introduction In today’s increasingly connected world, over-the-air (OTA) updates are becoming essential for keeping devices secure and up to date. OTA updates allow software developers to deliver new features, bug fixes, and security patches to devices without requiring users to physically connect them to a computer or other device. OTA updates work by sending […]
Introduction to Bootloaders: A Guide for Embedded Developers for Efficient Firmware Updates
Introduction: A bootloader is a small piece of software that is responsible for starting up a device and loading the operating system or application program. It is typically stored in non-volatile memory, such as ROM or flash memory, so that it is not erased when the system is turned off. What does a bootloader do? […]