PROJECTS
PROJECTS
Embedded Driver Development from Scratch (STM32 ARM Cortex M4)
About:
Developing low level drivers for UART, SPI, I2C, and other peripherals of the STM32 in C.
Github link: https://github.com/bhagyeshagresar/Embedded_Driver_Development
myOS -from-scratch(August 2025 - Present)
About:
Developing a RISC-V based OS from scratch on a linux machine using QEMU.
Github link: https://github.com/bhagyeshagresar/myOS-from-scratch
DC Motor Control with STM32 (May 2025 - Present)
About:
Implementing a DC Motor Controller using STM32 Microcontroller. The UI is made using C# Winforms and the firmware handles different operating modes such as PWM mode, ITEST mode(PI Controller), Hold (PID loop). The project consists of a brushed DC motor, INA219 current sensor and a H-bridge.
Skills and Softwares used : C programming, C#, STM32, Control Theory
Github link: https://github.com/bhagyeshagresar/dc_motor_control_using_stm32
DMA Controlled LightFlow - (Fall 2024)
This project uses the DMA on the STM32F401RE microcontroller to send the varying duty cycle data from the memory of the STM32 to the Timer peripheral for controlling the WS2812B LED strip.
Github Link: https://github.com/bhagyeshagresar/DMALightFlow
Advanced Mechatronics - Advanced Mechatronics (ME443 Spring 2022)
About:
In the ME433 Advanced Mechatronics course, I implemented Digital Communication Protocols such as I2C, UART and SPI. Performed Signal Processing, worked on Neopixels, Pi Camera, IMU and LCDs. Implemented 3D Printing and PCB Designing.
Skills and Softwares used: C, PIC32, I2C, UART, SPI, Raspberry Pi PICO, PICO Camera
Github link : https://github.com/bhagyeshagresar/me433_advanced_mechatronics
Marker Assembling Robot - Embedded Systems in Robotics (ME495 Fall 2021)
About:
This project was part of ME495 Embedded Systems in Robotics course at Northwestern University. The project involved using Franka Emika Panda Robot to assemble dry markers with their caps and place them in an assembly area. In this project we used Realsense Camera to do object detection for different colored markers. For trajectory planning and actuating the robotic arm, Moveit Python API was used. State Machine developed using the SMACH ROS Package was used to control sequence of actions needed to be performed by the robot.
Skills and Softwares Used: ROS, Moveit, Python, OpenCV
Github link : https://github.com/bhagyeshagresar/franka_markers_project
EKF SLAM from Scratch - Sensing, Navigation and ML for Robotics (ME495 Winter 2022)
About:
Implemented Extended Kalman Filter SLAM algorithm from scratch using C++ and ROS on Turtlebot3.
Developed C++ libraries for implementing transformations and calculate forward and inverse kinematics. Built ROS packages to compute Odometry, calculate and visualize sensor measurements. Built my own simulation to visualize the robot , obstacles, the Laser Scan and the walls. In order to demonstrate the differences in calculation of kinematics, odometry and estimate of the state using SLAM, The simulation consists of 3 different robots. The red robot moves based on just the simulated kinematics. The blue robot updates its state based on the encoder readings (odometry). The green robot uses EKF SLAM to get the latest configuration of the robot.
Skills and Softwares used: ROS, C++, Git, Docker
Github link: https://github.com/bhagyeshagresar/EKF_SLAM_on_turtlebot3
Kuka youBot - Pick and Place Robot - Robotic Manipulation (ME443 Fall 2021)
About :
In this project Kuka youBot Robot Manipulator was used in CoppeliaSim simulator to pick and place a cube from one place to another. The three main components of the project were Trajectory Generation, Feedforward plus PI Feedfack Control and State Estimation of the Robot after certain time step.
Skills and Softwares used: Python, CoppeliaSim
Github link: https://github.com/bhagyeshagresar/Kuka-youBot-Mobile-Manipulation
MoveIt Motion Planning Project using HDT Adroit - Independent Project (Spring 2022)
About:
The aim of this project was to use Adroit Robot Arm and build a pyramid of cylinders. This is a motion planning task which is achieved by using ROS and Moveit on HDT Adroit.
Skills and Softwares used : C++, MoveIt, ROS
Github link: https://github.com/bhagyeshagresar/me499_project
Automating the process for Implant Manufacturing - Industry 4.0 Manufacturing (ME395 Winter 2022)
About:
Automated the sealing operation of tubes required for HIV Drug Implant using 6 DoF Robot Arm.
Used Arduino to activate the action groups and automate the sealing operation.