Designing an ECG Acquisition System with STM32
System Overview
An ECG acquisision system captures human electrocardiogram (ECG) signals through electrode arrays. The signals undergo signal conditioning (amplification and filtering) before being processed by an STM32 microcontroller for analog-to-digital conversion (ADC), digital filtering, and feature extraction (e.g., heart rate, QRS compl ...
Posted on Fri, 04 Sep 2026 16:23:27 +0000 by beselabios
Implementing a Temporary Key-Value Cache in LVGL-C
LVGL is developed in C, which is a powerful language but often requires custom implementations of complex data structures for real-world projects. LVGL follows an object-oriented programming design approach. Based on this concept, we can design a Map-like data structuer similar to Java to cache temporary data, facilitating UI data binding in co ...
Posted on Wed, 02 Sep 2026 16:06:28 +0000 by chapm4
Implementing Analog Data Acquisition with PCF8591 and 8051 Microcontroller
Hardware Interface and FunctionalityThe PCF8591 is an 8-bit CMOS data acquisition device that integrates four analog inputs, one analog output, and an I2C serial interface. It is widely used in embedded systems for processing analog signals such as light intensity and temperature. In this configuration, an STC90C51 microcontroller serves as the ...
Posted on Tue, 25 Aug 2026 16:18:19 +0000 by Talon
Implementing Singly Linked List CRUD Operations in C
Node Structure Definition
A singly linked list is constructed as a sequence of nodes, where each node contains a data field and a pointer to the subsequent node. The following structure defines a node with an integer identifier and a text label.
typedef struct ListNode {
int id;
char description[32];
struct ListNode* next;
} ListNod ...
Posted on Sun, 23 Aug 2026 16:41:43 +0000 by kampbell411
Analog-to-Digital Conversion with STM32 Microcontrollers
Understanding ADC in Embedded Systems
Analog-to-Digital Converters (ADCs) serve as a critical interface between analog signals and digital systems. In STM32 microcontrollers like the STM32F103C8T6, the ADC module provides precise conversion of analog voltages into digital values, enabling digital processing of real-world signals.
12-bit succes ...
Posted on Sun, 23 Aug 2026 16:09:41 +0000 by mwichmann4
Implementing Custom Boot Menus in U-Boot for Allwinner T527
Experimental Environment
Hardware: Forlinx OK-T527 Development Board
Software: Allwinner Longan SDK (U-Boot version 2018)
U-Boot Initialization Flow
To understand how to inject a custom menu, we must first examine the entry point for U-Boot's main logic. The core execution loop is defined in /common/main.c, specifically within the main_loop() ...
Posted on Sat, 22 Aug 2026 16:21:37 +0000 by ottoman_
Configuring GPIO Interrupt Input in Linux for Zynq-7000 and FMQL45T900 Platforms
The example presented here demonstrates how to configure an interrupt-based GPIO enput within the Linux kernel driver for FMQL45T900, which shares similarities with Zynq-7000 platforms.
To begin, determine the correct GPIO number corresponding to the physical pin. For instance, EMIO5 maps to GPIO number 431 on the FMQL45T900 platform. In Vivado ...
Posted on Thu, 13 Aug 2026 16:38:18 +0000 by mkohan
Building Custom OpenWrt Firmware from Source
OpenWrt is a highly extensible, Linux-based operating system tailored for embedded networking devices. Unlike vendor-supplied firmware, it offers a fully writable filesystem and a package management system, allowing users to customize their devices extensively. This guide outlines the process of setting up a build environment and compiling a cu ...
Posted on Thu, 30 Jul 2026 16:37:50 +0000 by cortez
Implementing ATGM336H GPS Module Driver on STM32 Microcontrollers
Hardware Interface and Communication ProtocolThe ATGM336H module, produced by Zhongke Microelectronics, is a high-performance GNSS receiver supporting multiple satellite systems including BDS, GPS, GLONASS, and Galileo. It communicates via UART interface with a default baud rate of 9600. The module operates within a voltage range of 3.3V to 5V, ...
Posted on Tue, 28 Jul 2026 16:50:18 +0000 by maest
Configuring Timer Interrupts on STM32 Microcontrollers
The timer's period is determined by the values in the Auto-Reload Register (ARR) and the Prescaler (PSC). The formula for calculating the interrupt period is as follows:
Timer Period = (ARR + 1) * (PSC + 1) / Timer Clock Frequency
The ARR value sets the maximum count before the counter resets, generating an overflow event and potentially an int ...
Posted on Fri, 17 Jul 2026 17:27:09 +0000 by MrJW