Skip to content

satyanar-lab/Hobby-Projects

Repository files navigation

Hobby Projects

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.


Projects

1. DC Motor Speed Control using PWM

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/

2. Soil Moisture Detection Using IoT

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/

3. Body Control Zonal Lighting

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/

Tech Areas Covered

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

Repository Structure

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.


Future Additions

More projects will be added to this repository as part of ongoing work in:

  • Embedded systems
  • IoT applications
  • Linux-based development

Author

Pavankumar Satyanarayan

About

STM32 Hobby Projects

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors