// projects.log

Engineering Projects

A selection of embedded firmware and automotive EV projects spanning instrument clusters, embedded Linux platforms, motor control, BMS, and IoT systems.

Automotive EVDelivered

Automotive EV Instrument Cluster

Real-time vehicle data visualization system for an electric vehicle instrument cluster. Displays speed, RPM, gear position, battery voltage and current, State of Charge, energy consumption, temperature, air pressure, and vehicle status — all driven by live CAN/J1939 bus data.

  • Real-time CAN/J1939 data parsing and display
  • Custom Qt/QML gauge widgets (speedometer, RPM, SoC arc)
  • Multi-screen layout with day/night mode
  • Fault indicator and DTC display
  • Deployed on embedded Linux (Toradex iMX8)
CAN BusSAE J1939Qt 5/6QMLEmbedded LinuxC++Toradex iMX8
Embedded LinuxDelivered

Toradex Colibri iMX8 Embedded Linux Platform

Full embedded Linux platform development on Toradex Colibri iMX8 System-on-Module. Covers the complete Yocto/BitBake build system, BSP customization, device tree configuration, Qt application integration, cross-compilation pipeline, and deployment via Toradex Easy Installer.

  • Custom Yocto distro with meta-toradex-bsp-common layer
  • Device tree customization for custom carrier board
  • Qt5/Qt6 application integration in Yocto image
  • Cross-compilation toolchain setup and SDK generation
  • Toradex Easy Installer image creation and deployment
Toradex Colibri iMX8Yocto ProjectBitBakeDevice TreeQtARM GCCU-Boot
Motor ControlDelivered

BLDC Motor Controller Firmware

Bare-metal firmware for a BLDC motor controller on STM32. Implements Field-Oriented Control (FOC) with Space Vector PWM, Hall sensor commutation, encoder feedback, speed/torque control loops, and CAN-based command interface for EV traction applications.

  • FOC algorithm with SVPWM generation
  • Hall sensor and encoder feedback processing
  • PI speed and current control loops
  • CAN command interface (J1939 PGN mapping)
  • Fault detection: overcurrent, overvoltage, overtemperature
STM32CFreeRTOSCAN BusFOC/SVPWMADCPWM TimerGDB
Automotive EVDelivered

Battery Management System (BMS) Firmware

Firmware for a multi-cell lithium battery management system. Handles cell voltage and temperature monitoring, State of Charge estimation (Coulomb counting + Kalman filter), cell balancing, contactor control, fault protection, and CAN-based telemetry reporting.

  • Cell voltage monitoring via SPI AFE (BQ76940)
  • SoC estimation: Coulomb counting + Kalman filter
  • Passive cell balancing control
  • Contactor pre-charge and main relay sequencing
  • CAN telemetry: voltage, current, SoC, temperature, faults
STM32CSPICAN BusSAE J1939BQ76940 AFEFreeRTOS
Automotive EVDelivered

Vehicle Control Unit (VCU) Firmware

Central vehicle control unit firmware coordinating all EV subsystems — motor controller, BMS, charger, DCDC converter, and instrument cluster. Manages drive mode selection, torque requests, regenerative braking, fault arbitration, and CAN-based inter-ECU communication.

  • Multi-ECU CAN network coordination (J1939)
  • Drive mode state machine (Park, Drive, Reverse, Charge)
  • Torque request and regen braking arbitration
  • Fault arbitration and safe-state management
  • Instrument cluster data publishing via CAN
STM32CCAN BusSAE J1939FreeRTOSUDS Diagnostics
IoTDelivered

IoT Sensor Gateway (ESP32 + MQTT)

ESP32-based IoT sensor gateway collecting data from multiple sensors (temperature, humidity, current, voltage) over I2C/SPI and publishing to an MQTT broker over Wi-Fi. Includes local display on DWIN TFT, OTA firmware update support, and a lightweight web dashboard.

  • Multi-sensor data acquisition (I2C/SPI)
  • MQTT publish to cloud broker (TLS)
  • DWIN TFT local display with live readings
  • OTA firmware update via HTTPS
  • Web dashboard for configuration and monitoring
ESP32C/C++MQTTI2CSPIDWIN DisplayWi-FiOTA
HMI / UIDelivered

DWIN TFT HMI Display System

Custom HMI interface on a DWIN DGUS TFT display for an industrial control panel. Designed multi-page UI with live sensor readings, control buttons, alarm indicators, and parameter configuration screens. Communicates with host MCU via UART DGUS protocol.

  • Multi-page DGUS UI design (DWIN IDE)
  • Live sensor data display with custom gauges
  • Alarm and fault indicator pages
  • Parameter configuration with input validation
  • UART DGUS protocol implementation on host MCU
DWIN DGUSSTM32UARTCHMI Design
Automotive EVDelivered

CAN Bus Data Logger & Analyzer

Embedded CAN bus data logger for automotive development and testing. Captures all CAN frames with timestamps, decodes J1939 PGNs, logs to SD card in CSV/binary format, and streams decoded data over USB CDC to a PC analysis tool.

  • CAN frame capture at 1 Mbps with hardware timestamping
  • J1939 PGN/SPN decoding library
  • SD card logging (FAT32, circular buffer)
  • USB CDC streaming to PC
  • Python-based PC analysis and visualization tool
STM32CCAN BusSAE J1939SPI (SD card)USB CDCPython