Skip to main content
emobility.academy
100 EV Embedded Projects on the DIYguru STM32 Kit: DIYguru EV Embedded Development Kit board with STM32 controllers, BMS section, CAN and LCD

Built on the DIYguru EV embedded kit

100 EV Embedded Projects on the DIYguru STM32 Kit

Battery management, SOC estimation, CAN bus, motor control, vehicle safety, charging, IoT telematics, RTOS, edge AI and automotive cybersecurity, built and tested on real hardware. 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, course 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: a method validated on real models or hardware, with research questions, baselines and metrics.

Project ideas

Pick a project, then follow the guide

Filter by your level, the area you want to work in and the parts you have. A DC motor and the Bluetooth module are add-ons to the kit. Open any project for its full step-by-step guide.

Level
Area
Parts
100 projects
  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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 + Bluetooth + more
  22. 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
  23. 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
  24. 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 + motor
  25. 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 + motor + more
  26. 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 + motor
  27. 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 + motor
  28. 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 + motor
  29. 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 + motor + more
  30. 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 + motor
  31. 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 + motor + more
  32. 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 + motor + more
  33. 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 + motor
  34. 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
  35. 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 + motor
  36. 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
  37. 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 + motor
  38. 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
  39. 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
  40. 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 + motor
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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 + Bluetooth
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. 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
  64. 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
  65. 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 + Bluetooth
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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 + Bluetooth
  71. 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
  72. 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
  73. 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
  74. 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
  75. 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
  76. 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
  77. 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
  78. 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 + motor + more
  79. 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
  80. 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 + motor + more
  81. 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
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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 + motor + more
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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)
EV Embedded Development Kit board with STM32 controllers, BMS, CAN and sensors

Questions

Frequently asked questions

What do I need for the embedded kit projects?

The DIYguru EV Embedded Development Kit and a laptop that runs STM32CubeIDE. Projects marked "Kit only" need nothing else; others list their add-ons, such as a small DC motor or a Bluetooth module.

Which embedded EV project is best for a final-year B.Tech student?

Pick one 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 for one semester.