Built on the DIYguru EV embedded kit
100 EV Projects for Final Year Engineering, M.Tech & PhD Students
Battery management, SOC estimation, CAN bus, motor control, vehicle safety, charging, IoT telematics, RTOS, edge AI and automotive cybersecurity. Every project opens into a full guide: what you need, the concepts, step-by-step build instructions with checkpoints, testing, results and viva questions.
49
B.Tech / BE projects
31
M.Tech projects
20
PhD projects
Need help choosing or building your project?
Tell us your branch, level and the topic you like. Our team replies with mentoring, kit and workshop options.
Final-year B.Tech / BE: buildable in one semester by a team of 3–4, with a working demo and clear results.
M.Tech: modelling, a baseline to compare against and quantified results for your thesis.
PhD: the kit as a testbed to validate a method on real embedded hardware, with research questions and metrics.
Project ideas
Pick a project, then follow the guide
Filter by your level and the area you want to work in. Open any project for its full step-by-step guide.
- B.Tech / BEBattery & BMSBeginner
1.Single-Cell Voltage and Temperature Monitor with LCD Display
Build a single-cell monitor that reads the kit's 1S Li-ion cell voltage and T-sense temperature, filters and calibrates the readings, and shows them on the 16×2 LCD with RGB LED status. It is the measurement foundation every battery management system is built on.
4 weeksADC · GPIOKit only - B.Tech / BEBattery & BMSIntermediate
2.Coulomb-Counting State-of-Charge (SOC) Estimator
Build a state-of-charge estimator that integrates cell current over time, measured with an INA219 add-on, and corrects its starting point from the rested cell voltage. SOC, charge used and estimated error are shown on the LCD and logged to a PC over UART.
6 weeksADC · UART · GPIOKit + add-ons - B.Tech / BEBattery & BMSIntermediate
3.Over-Voltage, Under-Voltage and Over-Temperature Protection with Relay Cut-off
Build BMS protection firmware that opens the kit's charge/discharge control relay on over-voltage, under-voltage and over-temperature, with debounce, hysteresis and latched faults. Faults are shown on the LCD, RGB LEDs and buzzer and must be cleared deliberately.
5 weeksADC · GPIOKit only - B.Tech / BEBattery & BMSIntermediate
4.Programmable Load-Profile Discharge Tester using Switchable Loads
Build a discharge tester that switches the kit's three resistive loads through a programmed sequence to imitate a driving profile, logs voltage and estimated current over UART, and stops safely at cut-off. Profiles are entered from the keypad or sent from a PC.
5 weeksADC · GPIO · UARTKit only - B.Tech / BEBattery & BMSIntermediate
5.Automated Battery Capacity (Ah) Tester with Data Export
Build an automated tester that charges the kit cell under supervision, rests it, discharges it through the resistive loads to a cut-off and reports measured capacity in mAh and Wh. Each test is timestamped with the RTC and exported over UART as CSV.
5 weeksADC · UART · RTCKit only - B.Tech / BEBattery & BMSIntermediate
6.OCV–SOC Curve Characterisation and Lookup-Table SOC
Build a test routine that discharges the kit cell in small steps with long rests, records the open-circuit voltage at each state of charge and stores the resulting OCV–SOC table in SPI flash. The firmware then estimates SOC from rested voltage by table lookup and interpolation.
6 weeksADC · UART · SPIKit only - M.TechBattery & BMSAdvanced
7.Extended Kalman Filter SOC Estimation on STM32
Implement an extended Kalman filter that estimates the kit cell's state of charge from measured current (via an INA219 add-on), terminal voltage and a first-order equivalent-circuit model, running in real time on the STM32F103. It is compared with plain coulomb counting under wrong initial SOC and sensor offset.
10 weeksADC · UARTKit + add-ons - M.TechBattery & BMSAdvanced
8.Equivalent-Circuit (Thevenin) Model Parameter Identification from Pulse Tests
Identify first- and second-order Thevenin equivalent-circuit parameters (R0, R1, C1, R2, C2) for the kit cell from load-pulse tests, using the switchable loads, fast ADC sampling of voltage and an INA219 add-on for current. Fitted models are validated on held-out profiles and compared.
9 weeksADC · GPIO · UARTKit + add-ons - M.TechBattery & BMSAdvanced
9.State-of-Health Estimation from Internal Resistance Growth
Build an on-board state-of-health estimator that measures the kit cell's internal resistance from load steps using the switchable loads, corrects it for SOC and temperature, logs it to SPI flash and tracks its change over cycles. Results are compared with capacity-based SOH.
9 weeksADC · GPIO · SPIKit only - M.TechBattery & BMSAdvanced
10.Lumped Thermal Model and Temperature Prediction for a Li-ion Cell
Build and identify a lumped thermal model of the kit cell, predicting its temperature from heat generated by current and from ambient temperature read by the BMP280, and run the model on the STM32 to forecast temperature ahead of time. Prediction error is compared against measurement.
8 weeksADC · UARTKit only - PhDBattery & BMSResearch
11.Joint SOC–SOH Estimation with Dual Adaptive Kalman Filtering on a Resource-Constrained MCU
Develop a dual adaptive Kalman filter that tracks state of charge on a fast time scale and capacity and resistance on a slow one, running within the STM32F103's memory and cycle budget. Current comes from an INA219 add-on; public ageing datasets provide validation.
16 weeksADC · UART · SPIKit + add-ons - PhDBattery & BMSResearch
12.Model-Based Sensor and Cell Fault Diagnosis for a BMS
Develop a model-based fault detection and isolation scheme for a single-cell BMS, using residuals between measured and predicted voltage, current and temperature to catch sensor offsets, stuck sensors and abnormal cells. Faults are reported over CAN and validated by injection.
16 weeksADC · CAN · UARTKit + add-ons - B.Tech / BECAN & vehicle networksIntermediate
13.BMS-to-Dashboard CAN Communication Node
Build a two-node CAN link in which a BMS node sends cell voltage, temperature, SOC and fault status in defined frames and a dashboard node on a second kit decodes and shows them on its 16×2 LCD. Timeouts, signal ranges and bus errors are handled explicitly.
5 weeksCAN · ADC · GPIOKit + add-ons - B.Tech / BECAN & vehicle networksIntermediate
14.CAN Bus Sniffer and Logger with PC Viewer
Build a CAN bus sniffer that listens to a bus without transmitting data, timestamps every frame and streams it over UART to a Python viewer that shows live traffic, message rates and decoded signals. A second kit or a USB-CAN adapter provides the traffic.
4 weeksCAN · UARTKit + add-ons - B.Tech / BECAN & vehicle networksIntermediate
15.DBC-Style Signal Packing and Decoding Library
Write a reusable C library that packs and unpacks CAN signals defined DBC-style, with start bit, length, Intel or Motorola byte order, sign, factor and offset, and verify it against a PC reference in loopback mode on the kit. Generated tables keep firmware and documentation in step.
5 weeksCAN · UARTKit only - B.Tech / BECAN & vehicle networksBeginner
16.CAN Heartbeat and Node-Loss Detection System
Build a heartbeat scheme in which every CAN node sends a periodic alive message with its state and a counter, and a monitor node detects lost, frozen or restarted nodes within a defined time and signals them on LEDs, buzzer and relay. It uses two kits on one bus.
4 weeksCAN · GPIOKit + add-ons - B.Tech / BECAN & vehicle networksAdvanced
17.J1939-Style Parameter Group Messaging for an EV Battery
Build a battery node that sends its data as J1939-style parameter groups on 29-bit extended CAN IDs, answers request messages and sends multi-packet data with the broadcast announce transport method. A USB-CAN adapter and a Python tool act as the other node and decoder.
6 weeksCAN · ADCKit + add-ons - M.TechCAN & vehicle networksAdvanced
18.Lightweight CANopen Node (NMT, PDO, SDO) on STM32
Implement a lightweight CANopen slave on the STM32 with network management, heartbeat, an object dictionary, expedited SDO access and mapped PDOs for battery and throttle data, and test it from a Python CANopen master on a USB-CAN adapter. Its footprint and timing are compared with an open-source stack.
10 weeksCAN · UARTKit + add-ons - M.TechCAN & vehicle networksAdvanced
19.CAN Bus Load, Priority and Latency Analysis
Measure how bus load and identifier priority affect CAN message latency on a real two-node bench, using the bxCAN timestamp feature and a configurable traffic generator, and compare the measurements with worst-case response-time analysis. The result is a validated latency model for an EV message set.
8 weeksCAN · UARTKit + add-ons - M.TechCAN & vehicle networksAdvanced
20.Time-Triggered Message Scheduling over Classic CAN (TTCAN-style)
Build a TTCAN-style time-triggered schedule on classic CAN, with a time-master reference message, exclusive time windows for periodic messages and arbitrating windows for events, using FreeRTOS tasks aligned to the schedule on two kits. Jitter and latency are compared with event-triggered CAN.
10 weeksCAN · RTOSKit + add-ons - M.TechCAN & vehicle networksAdvanced
21.CAN-to-Bluetooth Gateway for Service Diagnostics
Build a service gateway that listens to the vehicle CAN bus on the STM32 and answers diagnostic requests from a phone or laptop over Bluetooth. You design a small request/response protocol, measure its latency and throughput, and compare it with a plain text streaming baseline.
8 weeksCAN · Bluetooth · UARTKit + add-ons - PhDCAN & vehicle networksResearch
22.Worst-Case Response-Time Analysis vs Measured Latency on Classic CAN
Build a CAN timing testbed that compares the worst-case response times predicted by schedulability analysis with latencies measured on real hardware. You load the bus with a defined message set, timestamp frames precisely and study where the analysis is pessimistic or optimistic.
14 weeksCAN · UARTKit + add-ons - PhDCAN & vehicle networksResearch
23.Fault Injection and Error-Confinement Study on CAN (Error Frames and Bus-Off Recovery)
Build a fault-injection testbed that provokes CAN errors on purpose and records how nodes move between error-active, error-passive and bus-off states and how they recover. You compare observed error-counter behaviour with the CAN standard's rules and evaluate recovery strategies.
14 weeksCAN · GPIOKit + add-ons - B.Tech / BEMotor controlBeginner
24.PWM Speed and Direction Control of a DC Motor with Throttle Input
Build an EV-style throttle controller that reads the potentiometer as a throttle pedal and drives a small DC motor with PWM, with forward and reverse selection. The LCD shows throttle and duty cycle, and safety rules stop direction changes while the motor is driven.
4 weeksPWM · ADC · GPIOKit + add-ons - B.Tech / BEMotor controlIntermediate
25.Soft-Start and Acceleration Ramp Controller for an EV Motor
Build a soft-start controller that limits how fast the PWM duty can rise and fall, so a DC motor accelerates smoothly instead of jerking. You compare a step, a linear ramp and an S-curve, and measure the inrush current with a current monitor.
4 weeksPWM · ADCKit + add-ons - B.Tech / BEMotor controlIntermediate
26.Closed-Loop PID Speed Control with Encoder Feedback
Build a closed-loop speed controller that reads a motor encoder with an STM32 timer in encoder mode and holds a set speed with a PID loop. You tune the gains, log step responses to a PC and show that the loop rejects load changes that an open-loop controller cannot.
6 weeksPWM · GPIO · UARTKit + add-ons - B.Tech / BEMotor controlIntermediate
27.Regenerative Braking Logic Emulator with Battery Charge-Acceptance Limits
Build a regenerative braking emulator that splits a braking request between regeneration and friction braking, limited by how much charge the battery can accept. Cell voltage and temperature from the Smart BMS set the regen limit, and the charge path is enabled only when regen is allowed.
6 weeksPWM · ADC · GPIOKit + add-ons - B.Tech / BEMotor controlBeginner
28.Eco / Normal / Sport Drive-Mode Controller with Keypad Selection
Build a drive-mode controller where the rider picks Eco, Normal or Sport on the keypad, and each mode changes the throttle map, top power and acceleration ramp of a DC motor. The LCD and RGB LED show the active mode.
4 weeksPWM · GPIO · ADCKit + add-ons - M.TechMotor controlAdvanced
29.Six-Step (Trapezoidal) BLDC Commutation with Hall Sensors
Build a six-step trapezoidal BLDC motor controller on the STM32 that reads three Hall sensors and switches a low-voltage three-phase bridge with complementary PWM and dead time. You add a speed loop, measure torque ripple and efficiency, and compare PWM switching schemes.
10 weeksPWM · GPIOKit + add-ons - M.TechMotor controlAdvanced
30.Relay-Feedback PID Auto-Tuning for an EV Motor Speed Loop
Build an auto-tuner that finds PID gains for a DC motor speed loop by running a relay-feedback experiment on the STM32. You compare the auto-tuned gains with manual and step-response tuning on overshoot, settling time and integrated error.
8 weeksPWM · GPIO · UARTKit + add-ons - M.TechMotor controlAdvanced
31.Torque Derating Based on Battery and Motor Temperature
Build a torque-derating controller that reduces motor power as battery and motor temperatures approach their limits. Battery temperature comes from the BMS T-sense input and motor temperature from a lumped thermal model driven by measured current, and you compare simple linear derating with a model-predictive approach.
8 weeksPWM · ADC · I2CKit + add-ons - PhDMotor controlResearch
32.Fixed-Point Field-Oriented Control on a Cortex-M3 without FPU: Accuracy vs Cycle Budget
Build a field-oriented control (FOC) drive for a small PMSM on the STM32F103 and study how fixed-point number formats trade accuracy against the cycle budget on a Cortex-M3 without an FPU. You compare Q15, Q31 and software floating point on current-loop quality and execution time.
18 weeksPWM · ADCKit + add-ons - PhDMotor controlResearch
33.Explicit Model Predictive Speed Control on a Microcontroller
Build an explicit model predictive controller for DC motor speed that runs on the STM32 as a lookup of precomputed piecewise-affine control laws. You compare it with PID and with an on-line iterative MPC solver on tracking, constraint handling, memory and worst-case execution time.
16 weeksPWM · GPIO · UARTKit + add-ons - B.Tech / BEVehicle dynamics & safetyIntermediate
34.Two-Wheeler Fall and Crash Detection with Automatic Power Cut-off
Build a fall and crash detector for an electric two-wheeler that reads the MPU6050 and cuts motor power through a relay when the vehicle tips over or suffers an impact. The system raises a buzzer and LED alert and needs a deliberate reset before power returns.
5 weeksI2C · GPIOKit only - B.Tech / BEVehicle dynamics & safetyIntermediate
35.Road Incline Detection and Hill-Hold Assist Logic
Build a hill-hold assist that measures road incline with the MPU6050 and briefly holds the vehicle on a slope by commanding motor torque when the brake is released. The hold torque scales with slope, times out safely and hands over to the throttle smoothly.
5 weeksI2C · PWMKit + add-ons - B.Tech / BEVehicle dynamics & safetyBeginner
36.Overspeed and Harsh-Acceleration Alert System
Build an alert system that warns the rider of overspeed and of harsh acceleration and braking. Speed is emulated with the potentiometer, longitudinal acceleration comes from the MPU6050, and the buzzer, RGB LEDs and LCD give graded warnings with event counts.
4 weeksI2C · GPIO · ADCKit only - B.Tech / BEVehicle dynamics & safetyBeginner
37.Side-Stand and Seat-Switch Safety Interlock for Electric Scooters
Build a safety interlock for an electric scooter that blocks motor power unless the side-stand is up, the rider is seated and the throttle is closed at start. Switches are emulated on the keypad, and the state machine drives the motor through PWM only in a safe ready state.
3 weeksGPIO · PWMKit + add-ons - B.Tech / BEVehicle dynamics & safetyIntermediate
38.Driver Behaviour Scoring from Accelerometer and Gyroscope Data
Build a driver-behaviour scorer that detects harsh acceleration, braking and cornering from the MPU6050, logs events to the kit's SPI flash and computes a trip score. A Python tool reads the log over UART and plots each trip.
6 weeksI2C · UART · SPIKit only - M.TechVehicle dynamics & safetyAdvanced
39.IMU Attitude Estimation: Complementary vs Kalman Filter
Build and compare two attitude estimators on the STM32 for the MPU6050: a complementary filter and a Kalman filter with gyro-bias estimation. You quantify accuracy, drift, response and execution cost on a reference jig and recommend which suits a vehicle controller.
8 weeksI2C · UARTKit + add-ons - M.TechVehicle dynamics & safetyAdvanced
40.Traction-Control Logic with Wheel-Slip Emulation
Build a traction-control controller that limits driven-wheel slip using an encoder motor as the wheel and an on-board vehicle and tyre model as the road. You compare rule-based torque cut, PI slip control and a sliding-mode controller on dry, wet and icy surfaces selected from the keypad.
9 weeksPWM · GPIO · I2CKit + add-ons - M.TechVehicle dynamics & safetyAdvanced
41.Barometric Road-Grade Estimation and Energy-per-km Correction
Build a road-grade estimator that fuses BMP280 altitude with MPU6050 pitch and uses the grade to correct the energy-per-km figure an EV reports. The project quantifies how much of the apparent consumption change on a slope is gravity rather than driving style.
8 weeksI2C · SPI · ADCKit + add-ons - PhDVehicle dynamics & safetyResearch
42.Rider Intent and Road-Condition Estimation by Sensor Fusion
Build a research testbed that fuses MPU6050 motion data, throttle and brake inputs and emulated speed to estimate rider intent and classify road condition in real time on an STM32. The work compares hand-crafted filters against small learned models running in fixed point.
16 weeksI2C · ADC · UARTKit + add-ons - PhDVehicle dynamics & safetyResearch
43.ISO 26262-Style Safety Case for a Battery Disconnect Function
Develop an ISO 26262-style safety case for a battery disconnect function and implement it on the kit, with the charge/discharge relay as the disconnect, cross-checked measurements on both STM32s and protected CAN messages. Fault-injection tests produce measured evidence for the safety argument.
16 weeksGPIO · ADC · CANKit + add-ons - B.Tech / BECharging & energyIntermediate
44.CC–CV Charging Supervisor with Termination and Timeout
Build a charging supervisor that monitors the kit's single cell through constant-current and constant-voltage phases, ends the charge on current taper and stops it on a timeout or fault. The supervisor logs every charge with RTC timestamps and shows its state on the LCD.
5 weeksADC · GPIO · RTCKit + add-ons - B.Tech / BECharging & energyBeginner
45.Off-Peak Smart Charging Scheduler using the RTC
Build a charging scheduler that uses the kit's battery-backed RTC to start charging in an off-peak window chosen on the keypad, and to finish by a set departure time. The schedule survives power cuts and every session is shown on the LCD.
4 weeksRTC · GPIO · I2CKit only - B.Tech / BECharging & energyIntermediate
46.Remaining Range Estimator from SOC and Recent Consumption
Build a remaining-range estimator that combines the cell's state of charge with recent energy consumption to predict how far the vehicle can still go. Speed is emulated with the potentiometer and the estimate is shown live on the 16×2 LCD.
5 weeksADC · GPIOKit only - B.Tech / BECharging & energyAdvanced
47.Charger–Vehicle Handshake Emulator (Simplified CAN Charging Protocol)
Build a simplified charger–vehicle handshake over CAN, with the kit acting as the vehicle and a PC with a USB-CAN adapter acting as the charger. The two sides exchange parameters, agree limits, run a charge and stop safely on faults or timeouts.
6 weeksCAN · GPIOKit + add-ons - B.Tech / BECharging & energyBeginner
48.Trip Energy Meter: Wh, Wh/km and Cost per Trip
Build a trip energy meter that measures energy used per trip in watt-hours, works out Wh/km from emulated distance and shows the cost of the trip from a tariff entered on the keypad. Trips can be reset and compared on the 16×2 LCD.
4 weeksADC · GPIOKit only - M.TechCharging & energyAdvanced
49.Temperature-Aware Charging Profile Optimisation
Build and evaluate a charging controller that adapts start conditions, pauses and termination voltage to cell temperature, compared against a fixed CC–CV baseline. Temperature limits are tested by injecting emulated temperatures in firmware, never by heating or cooling the cell.
9 weeksADC · GPIO · UARTKit + add-ons - M.TechCharging & energyAdvanced
50.Vehicle-to-Grid / Vehicle-to-Load Control Logic and Scheduling
Build the control logic for vehicle-to-load and vehicle-to-grid operation, with the kit's resistive loads standing in for exported power and a PC on CAN acting as the grid operator. The controller schedules discharge with the RTC while protecting a minimum SOC reserve for the next trip.
9 weeksCAN · RTC · GPIOKit + add-ons - PhDCharging & energyResearch
51.Ageing-Aware Charging Control Using Online Degradation Models
Build a research testbed for charging control that adapts to an online estimate of battery degradation, trained offline on public ageing datasets and validated on the kit's cell. The controller trades charge time against modelled ageing through termination voltage, rest periods and charge windows.
18 weeksADC · SPI · UARTKit + add-ons - PhDCharging & energyResearch
52.Fleet Charging Scheduling under Grid Constraints with Embedded Edge Nodes
Build a testbed for scheduling the charging of a vehicle fleet under a site power limit, with STM32 edge nodes on CAN and the remaining fleet simulated on a PC. Centralised and distributed schedulers are compared on peak power, unmet energy, fairness and communication load.
16 weeksCAN · UART · RTCKit + add-ons - B.Tech / BEDashboard & HMIBeginner
53.Digital Instrument Cluster on a 16×2 LCD (Speed, SOC, Mode, Faults)
Build a digital instrument cluster on the kit's 16×2 LCD that shows speed, state of charge, drive mode and fault warnings. Speed comes from the potentiometer, drive mode from the keypad and SOC from the BMS cell reading.
4 weeksGPIO · ADCKit only - B.Tech / BEDashboard & HMIBeginner
54.OLED BMS Dashboard with Button Navigation
Build a BMS dashboard on the Smart BMS unit's OLED, with pages for cell voltage, temperature, load state and alarms that the user moves through with the six navigation buttons. The project teaches graphics on a small display and a clean menu structure.
4 weeksI2C · GPIO · ADCKit only - B.Tech / BEDashboard & HMIBeginner
55.Keypad PIN Immobiliser and Anti-Theft Alarm
Build a keypad PIN immobiliser that keeps the vehicle disabled until the correct PIN is entered, stores a salted hash of the PIN in SPI flash and sounds an anti-theft alarm after repeated wrong attempts. The motor driver enable and the output relay act as the immobiliser outputs.
3 weeksGPIO · SPIKit only - B.Tech / BEDashboard & HMIIntermediate
56.Fault-Code Viewer and Service Menu
Build a fault-code system that records diagnostic trouble codes with freeze-frame data in SPI flash, and a PIN-protected service menu on the LCD and keypad to view, explain and clear them. The design follows the logic of status flags used in vehicle diagnostics.
5 weeksGPIO · SPIKit only - B.Tech / BEDashboard & HMIIntermediate
57.Bluetooth Phone Dashboard for Live Vehicle Data
Build a live vehicle dashboard on a phone or laptop that receives speed, cell voltage, temperature and alerts from the kit over Bluetooth. The kit streams compact framed packets through an HC-05 module fitted to its Bluetooth header.
5 weeksBluetooth · UART · ADCKit + add-ons - B.Tech / BEDashboard & HMIIntermediate
58.Bilingual (English / Hindi) HMI Menu Framework with Custom LCD Characters
Build a menu framework for the 16×2 LCD that switches between English and Hindi, using custom characters for Devanagari glyphs within the display's eight-character limit. Strings live in language tables so new screens and languages can be added without touching the menu logic.
5 weeksGPIOKit only - B.Tech / BEDashboard & HMIIntermediate
59.Warning Tell-Tale Prioritisation and Alert Arbitration
Build a warning manager that prioritises several simultaneous vehicle alerts and presents them through RGB tell-tales, buzzer patterns and LCD messages. It shows how a cluster decides which warning the rider sees first.
5 weeksGPIO · PWMKit only - M.TechDashboard & HMIAdvanced
60.Model-Based HMI Design: Statecharts to Embedded C
Model a vehicle HMI as a hierarchical statechart, generate or systematically translate it into embedded C for the kit's LCD and keypad, and compare it with a hand-coded baseline. The study measures code size, response time, defects found and effort.
8 weeksGPIO · I2CKit only - M.TechDashboard & HMIAdvanced
61.Glanceable HMI Layout Study for Two-Wheeler Clusters
Students build an experiment rig that flashes two-wheeler cluster layouts on the 16×2 LCD and the BMS OLED for a controlled glance time, records what riders read correctly and how fast, and compares layouts with proper statistics.
8 weeksGPIO · I2C · UARTKit only - PhDDashboard & HMIResearch
62.Workload-Adaptive HMI that Changes Alerts by Rider Workload
Researchers build an HMI testbed that estimates rider workload from IMU motion, throttle activity and an emulated speed profile, then holds back, groups or escalates cluster alerts to match it, and evaluate the policy against fixed alerting with human participants.
14 weeksI2C · GPIO · UARTKit + add-ons - B.Tech / BETelematics & data loggingIntermediate
63.Trip Data Logger in SPI Flash with Timestamps
Students build a trip logger that samples cell voltage, temperature, throttle and an emulated speed, stamps each record with the RTC and stores it in the onboard SPI flash, then dumps trips over UART to a Python script that exports CSV.
5 weeksSPI · RTC · UARTKit only - B.Tech / BETelematics & data loggingIntermediate
64.Event Data Recorder (EV Black Box) for Faults and Crashes
Students build an EV black box that keeps a rolling pre-trigger buffer of IMU, pressure and battery data in RAM, and on a crash-like acceleration or a fault freezes the window, adds post-trigger data and an RTC timestamp, and stores the event permanently in SPI flash.
6 weeksSPI · I2C · RTCKit only - B.Tech / BETelematics & data loggingBeginner
65.Bluetooth Telemetry Streaming to a Laptop Plotter
Students stream live potentiometer, battery voltage and temperature readings from the kit through a Bluetooth module on the header to a laptop, where a Python script plots them in real time and saves them to CSV.
4 weeksBluetooth · UART · ADCKit + add-ons - B.Tech / BETelematics & data loggingBeginner
66.Battery Usage Logger with CSV Export and Python Analysis
Students build a logger that records timestamped cell voltage, temperature and load state while the cell discharges through the kit's switchable loads, exports CSV over UART and analyses discharge curves, estimated current and energy in Python.
4 weeksADC · UART · RTCKit + add-ons - B.Tech / BETelematics & data loggingBeginner
67.Service and Maintenance Reminder System using the RTC
Students build a service reminder that tracks calendar time with the RTC and distance from an emulated odometer, stores service intervals and history in SPI flash, and alerts the rider on the LCD with the buzzer until a technician resets it with a keypad PIN.
3 weeksRTC · SPI · GPIOKit only - M.TechTelematics & data loggingAdvanced
68.IoT Telematics: CAN Data to the Cloud via an ESP32 Gateway (MQTT)
Students build a telematics gateway: the kit's main controller receives battery and vehicle CAN frames, decodes and buffers them, and forwards selected signals over UART to an ESP32 that publishes them by MQTT to a broker, with store-and-forward when the link drops.
9 weeksCAN · UARTKit + add-ons - M.TechTelematics & data loggingAdvanced
69.Lossless Compression of Vehicle Signals for Low-Memory Logging
Students design and benchmark lossless compression for vehicle signals logged on the STM32, comparing delta, zigzag-varint, Rice coding and a small LZ-style library on real kit data, measuring compression ratio, CPU cycles and RAM before writing to SPI flash.
8 weeksSPI · UARTKit only - M.TechTelematics & data loggingAdvanced
70.Firmware Update over Bluetooth with Staged Image and Fallback
Students build an over-the-air update chain: a PC tool sends a new firmware image over Bluetooth, the running application stages it in SPI flash, and a small bootloader verifies it and copies it into internal flash, keeping the previous image so it can fall back if the new one fails.
10 weeksBluetooth · SPI · UARTKit + add-ons - PhDTelematics & data loggingResearch
71.Battery Digital Twin Fed by Embedded Telemetry
Researchers build a battery digital twin: the Smart BMS unit streams synchronised cell voltage, current (from an INA219 add-on) and temperature over UART and CAN, and a PC-side equivalent-circuit and thermal model tracks the real cell, adapts its parameters online and forecasts voltage and temperature.
18 weeksADC · UART · CANKit + add-ons - PhDTelematics & data loggingResearch
72.Edge-vs-Cloud Partitioning of Battery Analytics for Connected EVs
Researchers build a testbed that splits battery analytics between the STM32 and a PC cloud emulator, runs the same pipeline at different split points, and measures bandwidth, latency, MCU load and accuracy to find which tasks belong on the edge and which in the cloud.
16 weeksUART · SPI · CANKit + add-ons - B.Tech / BEEmbedded software architectureIntermediate
73.Porting a Super-Loop BMS to FreeRTOS Tasks
Students take a working super-loop BMS program on the Smart BMS unit, port it to FreeRTOS tasks with queues and a mutex, and measure how protection response time and sampling jitter change when the display and UART code are slow.
5 weeksRTOS · ADC · UARTKit only - B.Tech / BEEmbedded software architectureIntermediate
74.Watchdog, Brown-Out and Safe-State Recovery Design
Students design firmware that always ends in a defined safe state: an independent watchdog fed only when every task reports healthy, a power-voltage detector that warns of a supply dip, reset-cause logging, and outputs (relay, motor driver, loads) forced safe at boot and on any fault.
4 weeksGPIO · UARTKit + add-ons - B.Tech / BEEmbedded software architectureIntermediate
75.Low-Power Sleep and Wake-on-Event for Parked EVs
Students build a parked-EV power manager that puts the STM32 into Sleep, Stop or Standby, wakes it on a keypad press, a periodic RTC alarm for a battery check or a motion event, and measures how much each mode saves.
5 weeksGPIO · RTCKit + add-ons - B.Tech / BEEmbedded software architectureAdvanced
76.Custom UART Bootloader for STM32
Students write their own bootloader for the STM32F103: it sits at the start of flash, accepts a new application image from a Python tool over UART, erases and programs internal flash, checks a CRC-32 and jumps to the verified application.
6 weeksUARTKit only - B.Tech / BEEmbedded software architectureIntermediate
77.Dual-MCU Architecture: Main Controller and BMS Unit Working Together
Students make the kit's two STM32s work like separate vehicle ECUs: the Smart BMS unit measures and protects the cell, the main controller acts as a vehicle control unit, and they exchange status and commands over a framed UART link, with the main controller publishing vehicle data on CAN.
6 weeksUART · CAN · GPIOKit + add-ons - M.TechEmbedded software architectureAdvanced
78.AUTOSAR-Style Layered Software (MCAL, ECU Abstraction, Application) on STM32
Students restructure EV firmware into AUTOSAR-inspired layers: an MCAL wrapping the STM32 HAL (Dio, Adc, Pwm, Can), an ECU abstraction for sensors and actuators, a small runtime interface and application components, then measure the cost in flash, RAM and latency and the benefit when porting.
10 weeksGPIO · ADC · CANKit + add-ons - M.TechEmbedded software architectureAdvanced
79.MISRA C Compliance and Static Analysis of EV Firmware
Students take an existing EV firmware project from the kit, run static analysis with MISRA C checks, classify and fix violations, write justified deviations, and measure the effect on defects found, code size and timing.
8 weeksUARTKit only - M.TechEmbedded software architectureAdvanced
80.Hardware-in-the-Loop Test Bench with the Kit and a PC Plant Model
Students build a hardware-in-the-loop bench: a Python plant model of an EV's motor, vehicle and battery runs on the PC, exchanges signals with the kit's controller over UART and CAN in fixed time steps, and closed-loop tests with fault injection run automatically against the real firmware.
10 weeksUART · CAN · PWMKit + add-ons - PhDEmbedded software architectureResearch
81.Measured vs Analytical WCET and Schedulability of RTOS Tasks on Cortex-M3
You build a testbed on the kit's main STM32F103 that records the execution time of EV control tasks under FreeRTOS and compares measured worst cases with static WCET bounds and response-time analysis, quantifying how pessimistic or unsafe each method is on a Cortex-M3.
16 weeksRTOS · GPIOKit + add-ons - PhDEmbedded software architectureResearch
82.Mixed-Criticality Task Scheduling for EV Control Units
You build an EV control unit where BMS protection tasks and lower-criticality HMI and logging tasks share one STM32 under FreeRTOS, with a scheduler that sheds or degrades low tasks when a critical task overruns. You measure deadline misses and service loss against fixed-priority scheduling.
16 weeksRTOS · CANKit + add-ons - B.Tech / BEEdge AI & estimationIntermediate
83.Statistical Anomaly Detection on Battery Signals (Z-Score and EWMA)
You build a battery monitor on the kit that learns the normal behaviour of the cell's voltage and temperature and flags anomalies using Z-score and EWMA control charts. Alerts appear on the LCD, buzzer and RGB LEDs and are logged to a PC over UART.
5 weeksADC · UARTKit only - B.Tech / BEEdge AI & estimationIntermediate
84.Gesture Recognition with the IMU for Hands-Free Controls
You build a hands-free control system that recognises simple hand gestures from the kit's MPU6050 accelerometer and gyroscope, such as tilt, shake and flick, and maps them to EV dashboard commands shown on the LCD. Recognition runs on the STM32, using a feature-based classifier trained on data you record.
6 weeksI2C · UARTKit only - B.Tech / BEEdge AI & estimationAdvanced
85.Road Surface Classifier (Smooth / Rough / Pothole) from Vibration
You build a road surface classifier that uses the kit's MPU6050 to record vibration and classifies the surface as smooth, rough or pothole, with readings logged to the SPI flash. You collect data by moving the kit on a trolley or bicycle over real surfaces, then run a classifier on the STM32.
7 weeksI2C · UART · SPIKit + add-ons - M.TechEdge AI & estimationAdvanced
86.TinyML Neural-Network SOC Estimator in Fixed-Point
You build a small neural network that estimates the state of charge (SOC) of the kit's Li-ion cell from voltage, current and temperature, train it on the PC and run it in fixed-point integer arithmetic on the STM32F103. You compare its accuracy, memory and execution time with a coulomb-counting baseline.
10 weeksADC · UARTKit + add-ons - M.TechEdge AI & estimationAdvanced
87.Machine-Learning SOH Prediction: Offline Training, On-Device Inference
You build a state-of-health (SOH) predictor that is trained offline on public battery ageing data and runs on the kit's STM32, using features such as internal resistance and partial-discharge capacity measured from the kit's cell. Results and feature history are stored in the SPI flash.
10 weeksADC · SPI · UARTKit + add-ons - M.TechEdge AI & estimationAdvanced
88.Predictive Maintenance from Motor Vibration Signatures
You build a predictive maintenance demonstrator that runs a small DC motor from the kit's motor driver, records its vibration with the MPU6050 and detects faults such as imbalance and looseness from spectral features. A healthy-model baseline and a classifier run on the STM32 and report condition over UART.
9 weeksI2C · PWM · UARTKit + add-ons - M.TechEdge AI & estimationResearch
89.Benchmarking Kalman Filter vs Neural-Network SOC on the Same MCU
You implement an extended Kalman filter and a small neural network SOC estimator on the same STM32F103 and benchmark them on identical load profiles from the kit's cell. You report accuracy, robustness to wrong initial SOC and sensor bias, and execution time, flash and RAM for each.
10 weeksADC · UARTKit + add-ons - PhDEdge AI & estimationResearch
90.Physics-Informed Neural Networks for Battery State Estimation on Embedded Hardware
You develop a physics-informed neural network that estimates battery SOC and polarisation state with an equivalent-circuit model built into its training loss, and deploy a compact version on the kit's STM32. The kit's cell provides real validation data alongside public datasets.
18 weeksADC · UARTKit + add-ons - PhDEdge AI & estimationResearch
91.Quantisation and Pruning Trade-offs for Battery Models on Sub-64 KB MCUs
You run a systematic study of how quantisation and pruning trade accuracy against flash, RAM and inference time for battery state models on the kit's STM32F103, which has 64 KB flash, 20 KB RAM and no FPU. Models are trained on public battery data and validated live on the kit's cell.
16 weeksADC · UARTKit + add-ons - PhDEdge AI & estimationResearch
92.On-Device Incremental Learning for Battery Ageing Adaptation
You build a BMS estimator on the kit's STM32 that keeps learning on the device as the battery ages, updating a small model from its own measurements stored in SPI flash, without sending data to a server. You evaluate it with accelerated ageing data replayed in hardware-in-the-loop and with the kit's real cell.
18 weeksADC · SPI · UARTKit + add-ons - B.Tech / BEDiagnostics & cybersecurityIntermediate
93.OBD-Style Diagnostic Trouble Code (DTC) Manager with Freeze Frames
You build a diagnostic trouble code (DTC) manager for an EV control unit on the kit that detects faults, debounces them, stores codes with freeze-frame data in SPI flash and reports them over CAN. A PC tool reads and clears codes through a USB-CAN adapter.
5 weeksSPI · CAN · GPIOKit + add-ons - B.Tech / BEDiagnostics & cybersecurityAdvanced
94.UDS (ISO 14229) Diagnostic Services over CAN
You implement a subset of UDS (ISO 14229) diagnostic services on the kit's STM32 over CAN with ISO-TP transport, including diagnostic sessions, reading data by identifier, reading DTCs and routine control. A Python tester on the PC talks to the kit through a USB-CAN adapter.
7 weeksCAN · UARTKit + add-ons - B.Tech / BEDiagnostics & cybersecurityAdvanced
95.CAN Message Authentication with a Truncated MAC and Freshness Counter
You add message authentication to CAN frames sent by the kit, using AES-128-CMAC truncated to fit in the 8-byte payload together with a freshness counter, so a receiver can reject forged and replayed frames. A PC receiver through a USB-CAN adapter verifies the frames and plays the attacker.
7 weeksCANKit + add-ons - M.TechDiagnostics & cybersecurityAdvanced
96.CAN Intrusion Detection by Message Timing Analysis
You build a CAN intrusion detector on the kit's STM32 that learns the normal timing of periodic messages and flags injection, flooding and suspension attacks from changes in inter-arrival times. Attacks are replayed from a PC through a USB-CAN adapter.
9 weeksCAN · UARTKit + add-ons - M.TechDiagnostics & cybersecurityAdvanced
97.Secure Boot and Signed Firmware for an EV Control Unit
You build a secure bootloader for the kit's STM32F103 that verifies a digital signature on the application firmware before running it, and accepts signed updates over UART staged in SPI flash. You measure boot time, analyse the attack surface and document what the F103's protections can and cannot guarantee.
10 weeksUART · SPIKit only - M.TechDiagnostics & cybersecurityAdvanced
98.Seed–Key Security Access and Brute-Force Protection
You implement UDS SecurityAccess (service 0x27) on the kit's STM32 over CAN, with random seeds, a keyed key-derivation function and brute-force protection using failed-attempt counters and delays stored in SPI flash. A PC tester through a USB-CAN adapter unlocks protected services and runs attack tests.
7 weeksCAN · SPIKit + add-ons - PhDDiagnostics & cybersecurityResearch
99.Lightweight Cryptography for In-Vehicle Networks: Latency and Bus-Load Cost
You benchmark lightweight cryptography, such as Ascon, SipHash, Chaskey and AES-128-CMAC, for authenticating classic CAN traffic on the kit's STM32F103, measuring computation, memory, latency and bus-load cost to show which schemes fit real EV message schedules.
16 weeksCAN · UARTKit + add-ons - PhDDiagnostics & cybersecurityResearch
100.Embedded Machine-Learning Intrusion Detection for CAN under Real-Time Constraints
You deploy a machine-learning CAN intrusion detector on the kit's STM32F103 that classifies traffic in real time within the budget of a 500 kbit/s classic CAN bus. Models are trained on public attack datasets and evaluated live with attacks replayed through a USB-CAN adapter.
18 weeksCAN · UARTKit + add-ons
One kit, all 100 projects
EV Embedded Development Kit
Two STM32F103 microcontrollers (a main controller and a Smart BMS unit), a battery cell with charging, protection relay and switchable loads, CAN, UART, I2C, SPI, sensors, displays and a motor driver, already built and labelled. You spend your project time on firmware and results, not on loose wires.
- Controllers: STM32F103C8T6 microcontroller unit (Arm Cortex-M3), Second STM32F103C8T6 as the Smart BMS unit, Reset, boot-mode and programming headers
- Battery and BMS: 1S battery with connector and T-sense input, Load section: three switchable resistive loads with LEDs, Battery charging unit with its own switch
- Communication: CAN bus interface with screw terminal, Serial UART interface, Bluetooth module header
- Sensors and memory: 3-axis accelerometer and gyroscope (MPU6050, I2C), BMP280 pressure and temperature sensor, Analog potentiometer input
- Displays and outputs: 16×2 LCD with contrast control, 4×3 matrix keypad, General output relay (NO / COM / NC)

Questions
EV projects: frequently asked questions
Which EV project is best for a final-year B.Tech or BE student?
Choose one that you can demonstrate working and explain end to end. Battery monitoring with protection, a CAN BMS-to-dashboard link, crash detection with the IMU, or a trip data logger are good choices: each uses real EV interfaces and fits one semester for a team of 3–4. Filter the list by "B.Tech / BE" to see all of them.
Are these projects suitable for EEE, ECE, EIE, mechanical and computer science students?
Yes. Electrical and electronics students usually pick battery, charging and motor-control projects; electronics and computer science students often pick CAN, RTOS, IoT, diagnostics and edge-AI projects; mechanical and automobile students suit vehicle-dynamics and safety projects. All of them involve embedded C programming on the STM32.
What do I need to build these projects?
The DIYguru EV Embedded Development Kit (₹10,000 + GST) and a laptop that runs STM32CubeIDE. Each project page lists the kit blocks it uses, and any extra parts such as a small DC motor, a Bluetooth module or a USB-CAN adapter. Projects marked "Kit only" need nothing else.
Can M.Tech and PhD students use these as thesis topics?
Yes. M.Tech and PhD projects include a research angle: the questions to answer, the baseline to compare against, the metrics to report and how the kit validates the method on real embedded hardware. You still need your guide's approval and your own literature review.
Do the project pages include step-by-step instructions?
Yes. Every project has objectives, the hardware and software you need, key concepts, 8–12 ordered steps with a checkpoint for each, how to test and validate it, expected results, ideas to extend it and likely viva questions.
Can DIYguru guide me or my college through a project?
Yes. Send the enquiry form with your project and college details and our team will reply with mentoring and workshop options. Colleges can also book hands-on EV workshops and faculty development programmes.