Author name: Amlendra

I am an embedded c software engineer and a corporate trainer, currently, I am working as senior software engineer in a largest Software consulting company . I have working experience of different microcontrollers (stm32, LPC, PIC AVR and 8051), drivers (USB and virtual com-port), POS device (VeriFone) and payment gateway (global and first data).

ADC Interview Questions and Answers: Basic to Advanced

Analog-to-Digital Converters (ADCs) are used in almost every embedded system where a microcontroller needs to work with real-world signals such as voltage, temperature, current, or sensor data. Because of this, ADC interview questions are very common in embedded systems and firmware interviews. In this article, we will cover ADC interview questions and answers from basic […]

ADC Interview Questions and Answers: Basic to Advanced Read More »

When UART Talks to Itself: The Optical Probe Loopback Bug Nobody Expects

During the development of optical communication firmware for smart meters, a strange field issue was reported: “Communication randomly drops. Works perfectly on the bench. Fails in the field.” To investigate the issue, I swapped cables, verified baud rates, and analyzed logic analyzer captures frame by frame. Everything appeared correct until I noticed that the optical

When UART Talks to Itself: The Optical Probe Loopback Bug Nobody Expects Read More »

C Macro Override Bug: When #define Breaks Build System Configuration

In embedded firmware development, configuration is often controlled through compiler macros passed from the build system. This keeps the codebase flexible and allows easy customization for different products or hardware variants. In this blog post, we will explore how a macro can introduce a subtle bug, often referred to as a C macro override bug

C Macro Override Bug: When #define Breaks Build System Configuration Read More »

How to Detect Bit Changes in C/C++ Using the XOR Operator and Bit Masking

When working with C or C++, particularly in embedded systems and firmware development, the ability to detect bit changes in C/C++ is essential. Because instead of writing: bool flag1; bool flag2; bool flag3; bool flag4; bool flag5; bool flag6; In embedded systems, we often store multiple related status flags inside a single variable. Generally, we

How to Detect Bit Changes in C/C++ Using the XOR Operator and Bit Masking Read More »

Arduino Button Piezo Buzzer

In the previous blog post, we learned how to control a relay using a push button and an Arduino. Now, let’s build another practical Arduino project using a push button and a piezo buzzer. In this tutorial, we will program the Arduino to buzz when a button is pressed. You will also learn how to

Arduino Button Piezo Buzzer Read More »