Welcome! I'm Mohsen Anvari, an embedded software engineer passionate about creating innovative solutions for embedded systems and real-time applications. With expertise in STM32 microcontrollers, C/C++ programming, FreeRTOS, and sensor integration, I specialize in bridging hardware and software to deliver reliable and efficient systems. Explore my portfolio, divided into two main sections: Embedded Software Engineering Projects and Signal Processing with LabVIEW Software, showcasing my engineering journey.
View GitHub Repository | README
This project demonstrates a real-time heart rate and SpO₂ monitoring system using the STM32F446RE Nucleo board. It integrates the MAX301102 Pulse Oximeter and Heart Rate Sensor for PPG signal acquisition and the ILI9341 LCD for real-time signal visualization and user interaction. The system features custom drivers for efficient data acquisition, filtering, peak detection, and parameter estimation.
Technologies: STM32F446RE | I2C | SPI | Signal Processing
View GitHub Repository | README
This project uses the STM32F446RE microcontroller to interface with the DS1307 Tiny RTC module over I2C and display real-time data on a 16x2 LCD. It showcases my expertise in developing custom drivers for I2C, SPI, GPIO, and USART on the STM32F446RE. The project highlights how to handle real-time clock functionality using the DS1307 RTC and manage periodic updates via the SysTick timer.
Technologies: STM32F446RE Driver Development | I2C | SPI | GPIO | USART
View GitHub Repository | README
This project is a robust application designed for the STM32F446RE microcontroller, leveraging FreeRTOS to manage user commands received over UART. It integrates efficient handling of LED controls and real-time clock (RTC) functionalities using FreeRTOS queues for command processing and software timers for precise task scheduling. Ideal for embedded systems, it showcases advanced multitasking capabilities and real-time data management through intuitive user interfaces.
Technologies: STM32F446RE | FreeRTOS | Queue | UART | RTC
View GitHub Repository | README
This project implements a clock alarm application using a hierarchical state machine (HSM) modeled with QM and programmed in C++ for an Arduino board.
Technologies: HSM | UML | C++ | State-Driven Design | QM Modeling Tool | RTC
View GitHub Repository | README
This project demonstrates how to control the brightness of an LED connected to the NUCLEO STM32F446RE development board using LabVIEW and USART communication.
Technologies: STM32 | LabVIEW | UART | PWM
This advanced LabVIEW-based application enables real-time acquisition and visualization of six-channel ECG signals via a serial port interface. The software automatically detects the active communication port, reads and formats incoming data, and displays synchronized ECG waveforms. Users can enhance signal clarity using a configurable moving average filter, adjusting the filter length dynamically to observe real-time effects. Additionally, it features a data logging capability, allowing seamless storage of ECG data for offline analysis. This solution is ideal for biomedical research and medical device prototyping, offering robust, real-time signal processing and customization options.
This LabVIEW-based software provides real-time acquisition and visualization of electrooculogram (EOG) signals, capturing both horizontal and vertical eye movements. The application automatically detects the active serial port, reads and formats the incoming data, and displays real-time waveforms for two-channel EOG monitoring. Users can apply a moving average filter to enhance signal quality, adjusting the filter length dynamically to observe immediate effects. A unique feature includes realistic eye movement simulation for improved signal interpretation. Additionally, the software supports data logging, enabling easy storage for further analysis. Ideal for research in vision, neuroscience, and biomedical signal processing, it offers powerful tools for real-time monitoring and analysis of eye movement signals.
This LabVIEW-based software captures and displays single-channel EEG signals in real-time through a serial port interface, automatically detecting and configuring the communication port for seamless data acquisition. Users can apply a dynamic moving average filter, adjusting its length to enhance signal clarity while monitoring brain activity. A key feature of the software is its ability to perform alpha wave detection through guided mental tasks. It records EEG data for one minute during both cognitive activity (eyes open, thinking) and relaxation (eyes closed), computes the Fast Fourier Transform (FFT) of both signals and visualizes frequency-domain results for alpha wave identification. The software also includes data logging for later analysis, making it a robust tool for neuroscience research and biofeedback training.
This versatile suite of LabVIEW-based software applications is designed for a wide range of biomedical signal acquisition and analysis tasks, providing advanced tools for researchers and clinicians. The suite includes:
Visual Evoked Potentials (VEP) Recording: Captures brain responses to visual stimuli with integrated eye stimulation for precise detection of P300 waves, aiding in cognitive and neurological assessments.
Muscle Activity Monitoring: Utilizes a bar electrode for high-accuracy electromyographic (EMG) signal capture, enabling real-time visualization of muscle activation patterns.
Signal Capture with Key Point Recognition: Demonstrates signal processing techniques with automatic detection of key points for educational and research purposes.
Phonocardiogram Recording: Record heart sounds with data storage capability and automatically identify key cardiac events for enhanced cardiovascular analysis.
This powerful suite supports data logging, real-time filtering, and interactive visualizations, making it an ideal platform for biomedical research, prototyping medical devices, and educational demonstrations in bioelectric signal processing.
Hypertension or high blood pressure (BP) is one of the most common worldwide diseases leading to heart attack or stroke. Continuous assessment of blood pressure levels is key to diagnosing hypertension. In this study, we designed and tested a dedicated cuff-less monitoring system that estimates BP levels without calibration. We obtained continuous measurements from 40 healthy subjects (30 males and 10 females) ranging from 20–30 years old. Our measurement protocol consisted of 15 minutes of simultaneous ECG and PPG within three sessions, i.e. rest, bicycle exercise, and recovery. From ECG and PPG signals, we obtained 34 candidate features from which up to 9 were selected to estimate systolic and diastolic BP levels. We validate our results with three regression models: linear regression, support vector machines (SVM) regression, and multilayer perceptron (MLP) to obtain the best results. The study provides a promising approach for modern cuff-less BP monitoring devices
English Language Proficiency: Certified by IELTS Academic