This project uses Python and a USB-to-CAN module to simulate engine sensor data and transmit it to an STM32-based Engine Control Module (ECM) written in C. The ECM responds with control outputs to maintain engine stability given a variable throttle input. This mirrors Zonal Automotive Architectures, where a Zone Controller digitises analog sensor signals before forwarding them to the ECM over CAN bus.
IN EARLY DEVELOPMENT - there are no guarantees anything works yet.
graph LR
A[Engine Sensors] -->|Analog/Digital Signals| B[Zone Controller]
B -->|Digital Signals| C[Actuators]
B <-->|CAN Bus| D[ECM]
graph LR
A[Python Simulator] <-->|USB| B[USB-to-CAN]
B <-->|CAN Bus| C[STM32 ECM]
- STM32 development board (NUCLEO-F401RE)
- CAN controller and transceiver unit (MCP2515 and TJA1050 respectively)
- USB-to-CAN adapter (Canable based)
- Potentiometer (1kΩ, used for the throttle)
