A curated collection of hands-on projects in embedded systems, IoT, automotive software, and Linux-based development.
This repository serves as a technical portfolio showcasing practical implementations of microcontroller-based systems, sensor interfacing, automation, and firmware development.
Each project is organized in its own folder and includes source code, configuration files, and documentation.
An STM32-based embedded system that controls the speed of a DC motor using PWM (Pulse Width Modulation) generated by timer peripherals.
The project demonstrates how varying the PWM duty cycle changes the average voltage supplied to the motor, allowing precise speed control.
Key Features
- PWM signal generation using STM32 timers
- Embedded C firmware development
- HAL driver integration
- DC motor speed control logic
- STM32CubeIDE project structure
Technologies Used
- STM32 Microcontroller
- Embedded C
- STM32 HAL Drivers
- STM32CubeIDE
Project Folder:
DC_Motor_SpeedControl_PWM/
An Arduino-based smart irrigation prototype that monitors soil moisture, temperature, and humidity and automatically controls a water pump using a relay module.
The system reads data from a soil moisture sensor and a DHT11 temperature and humidity sensor. The readings are displayed on a 16×2 LCD display, and the pump is automatically activated when soil moisture drops below a predefined threshold.
Key Features
- Soil moisture monitoring
- Temperature and humidity sensing using DHT11
- 16×2 LCD display output
- Automatic pump control using relay
- Threshold-based irrigation logic
- Serial monitor output for debugging
Technologies Used
- Arduino Uno
- Embedded C / Arduino IDE
- Sensor interfacing
- Relay-based actuator control
Project Folder:
soil_moisture_detection/
An automotive C++ portfolio project demonstrating a zonal-architecture body-control system — indicators, hazard, park, and headlamps — built around real automotive protocols and software-defined vehicle practices.
The same C++17 codebase compiles for three targets: Linux (vsomeip, fast iteration), Zephyr RTOS on STM32 NUCLEO-H753ZI (MCUboot OTA, BSD sockets), and STM32 bare-metal (LwIP, HAL GPIO). End-to-end OTA update is hardware-verified on the NUCLEO.
Key Features
- SOME/IP, SOME/IP-SD, DoIP (ISO 13400-2), and UDS (ISO 14229-1) protocol implementations
- Zonal service-oriented architecture with proxy/skeleton pattern
- MCUboot dual-bank OTA with ECDSA-P256 signing, hardware-verified
- ISO 26262 HARA, FMEA, and safety mechanism traceability
- 5 CI jobs: Linux build, cppcheck, clang-tidy, ASan/UBSan, VSS toolchain
Technologies Used
- C++17, CMake, Zephyr RTOS, MCUboot, west / sysbuild
- SOME/IP / SOME/IP-SD, DoIP, UDS
- STM32 NUCLEO-H753ZI, LwIP, vsomeip
- GitHub Actions, Vehicle Signal Specification (VSS)
Project Folder:
body_control_zonal_lighting/
Projects in this repository demonstrate concepts related to:
- Embedded C programming
- STM32 microcontroller development
- Arduino-based prototyping
- PWM motor control
- Sensor interfacing
- IoT-based monitoring systems
- Hardware-software integration
- Embedded system debugging
Hobby-Projects
│
├── README.md
├── .gitignore
│
├── DC_Motor_SpeedControl_PWM
│ └── README.md
│
├── soil_moisture_detection
│ └── README.md
│
└── body_control_zonal_lighting
└── README.md
Each project folder contains the complete source code and documentation for that specific implementation.
More projects will be added to this repository as part of ongoing work in:
- Embedded systems
- IoT applications
- Linux-based development
Pavankumar Satyanarayan