Home
Priyesh Mahajan | Embedded Software Engineer
Results-driven Embedded Systems Engineer with 2.9 years of experience bridging hardware and software for automotive and industrial applications.
Core Competencies & Technical Skills
Proficient in the full product development lifecycle from schematic capture to production release.
Firmware
Microcontrollers
Hardware Design
Motor Control
Validation
Professional Experience
Track record of cross-functional collaboration to deliver robust, production-ready embedded solutions.
Embedded Software Engineer
- Designed/validated PCB schematics
- Led board bring-up and HW/SW integration
- Developed real-time firmware for BLDC motor control on TI C2000
- Maintained strict EMI/EMC compliance documentation
Motor Control Implementation Overview
The setup is a closed-loop test environment of simulated inputs and collected outputs of a DUT in order to evaluate developed Motor tool firmware.
Origin of Problem
The current state of automated testing Previous setup is encumbered by years of scope creep. This leads to poor test velocity which impacts product software deliverables.
Proposed Solution
Collect the "cream of the crop" from Previous setup and simplify the automated testing use cases around expected products including batteries and motor controllers. Pivot the existing PSS architecture away from labjack and a redis backend to instead utilize a logic analyzer such as Saleae Pro 16 to collect data.
Why does setup use PyTest?
setup utilized python and pytest for test script writing. It makes the development of new tests more simple then the previous process in the PSS framework. Almost the entire setup codebase is written in python so utilizing it for test scripts as well allows for maximum compatibility.
About PyTest
pytest is a powerful and widely-used testing framework for Python that simplifies the process of writing, organizing, and running automated tests. Designed to be easy to use and highly extensible, pytest allows developers to create simple unit tests as well as complex functional testing suites with minimal code. By supporting features such as test discovery, detailed assertions, and a rich ecosystem of plugins, pytest enables teams to efficiently manage testing.
CSVController Data Analysis
CSVController is designed for the collection, combination, and analysis of data from Nexus-relevant CSV files, including digital, analog, analyzer, and JLink sources. It provides a unified DataFrame indexed by elapsed time and supports a variety of querying and verification operations for time-series channel data.
PWM Verification in setup
As part of step stopping usage of debug variables in the test scripts, we have implemented the methods to replace same piece of code. Below are the methods and logic behind each of it respectively for PWM logic alignment.
Motor Start Logic
Whenever wiper (based on active high = wiper is inactive at ~0 or negative volts or active low = wiper is inactive for ~3 volts) is applied, read the PWM-UL, VL & WL column to see the commuting that means values will either 1 or 0 for at least 20 samples (rows). From the time stamp we see this commutation, that is motor start time.
Wiper Applied Verification
Check if wiper pin/channel is set to desired voltage (as per active high and active low configurations) to ensure proper signal application before proceeding with motor commutation checks.