Over recent decades, we've witnessed a significant evolution in automotive systems driven largely by electronic innovation. Initially, electronics played a role in controlling only a handful of critical vehicle functions. Today, however, virtually every aspect of a vehicle—from basic engine operations to advanced driver-assistance systems—depends on sophisticated electronic control systems.
The expansion in the number of Electronic Control Units (ECUs) within vehicles highlights this progression clearly. What started with just a few ECUs now routinely involves dozens, and in some advanced models, more than a hundred individual control units. These ECUs manage everything from simple tasks like window controls to highly complex functions such as collision avoidance systems, adaptive cruise control, and autonomous driving capabilities.
To take matters into perspective, the average cost of electronic systems within a vehicle has grown from a few percent in the middle of the 20th century, to 35% in 2020, and is estimated to grow to 50% by the end of this decade.
Parallel to the increase in quantity, automotive systems have also significantly grown in computational power and complexity. This boost in computing capability has enabled vehicles to perform tasks such as real-time data analysis for active safety systems, navigation guidance, and autonomous driving algorithms.
As a result, the software running inside modern vehicles has reached staggering levels of complexity, often exceeding 100 million lines of code per vehicle. To put this into perspective, that's more code than is found in many advanced commercial aircraft or modern operating systems.
However, complexity brings risks, especially when automotive software controls safety-critical functions. Any software malfunction could pose serious dangers to passengers and others on the road. Thus, the automotive industry maintains exceptionally high standards for software reliability, safety, and quality assurance.
Original Equipment Manufacturers (OEMs) must not only deliver reliable software initially but also support, maintain, and provide warranties for these complex systems throughout the vehicle's life—often spanning more than a decade. To achieve this reliability, automotive software development processes adhere to strict and rigorous guidelines, standards, and best practices, such as ISO 26262 for functional safety and Automotive SPICE (Software Process Improvement and Capability Determination) for software quality.
Throughout this course, you'll learn and apply key automotive software engineering principles and processes. We'll delve into how these standards and guidelines help ensure cutting-edge functionalities are delivered reliably and safely. By understanding and practicing these automotive-specific methods, you'll gain insights and skills to produce software that meets the exacting demands of one of the most stringent industries worldwide.
Throughout the course you will be using different hardware components to achieve the intended goals. The following is a non-extensive list of hardware components which will be critical to achieve the project goals:
- Raspberry Pi 5 - to work as central computing unit.
- Servo motors - for steering.
- DC motors - for propulsion.
- Display - to enable a UI / UX elements.
- B-U585I-IOT02A Development Board with STM32U585AI Microcontroller - Running RTOS to enable safety critical functionality.
- Hailo AI Hat - to perform machine learning inference at high speed.
- Camera and other sensors - understanding environment to enable ADAS functions.
- SpeedSensor.
- CAN Transceiver.
- SSD Pi Disk.
- PCI-E mSATA to USB 3.0 Converter.
- Expansion Board.
- Batteries.
- Piracer Chassis and wheels.
- etc.



