A simulation of an automotive CAN (Controller Area Network) architecture running entirely in software. This project implements a Digital Twin of a vehicle's telemetry system, featuring a simulated Engine Control Unit (ECU) and a real-time Dashboard with Signal Processing.Recognizing that real-world sensor data is never clean, we intentionally injected random noise into the simulation to mimic physical interference. The dashboard then processes this raw, jittery stream through a Moving Average Filter to recover and visualize a smooth, accurate signal.

In automotive engineering, testing software on real vehicles is dangerous and expensive. This project solves that by emulating the hardware layer in Linux RAM.
- The Engine: A Python script acting as an ECU, generating telemetry data (RPM, Speed) with realistic physics (gear shifts, acceleration) and simulated sensor noise.
- The Network: Uses the Linux Kernel's
vcan(Virtual CAN) module to create a virtual twisted-pair copper wire. - The Dashboard: A real-time plotting tool that listens to the bus, decodes binary packets, and applies a Moving Average Filter to smooth out the simulated sensor noise.
The system follows a decoupled Producer-Consumer architecture:
graph LR
A[Engine Simulator] -- CAN Frame (ID 0x100) --> B((vcan0 Bus))
B -- Raw Binary --> C[Dashboard DAQ]
C -- Filtered Data --> D[Real-time Graph]