Skip to content

The head unit Qt application running on Raspberry Pi (RPi) alongside the instrument cluster Qt application

Notifications You must be signed in to change notification settings

SeungWoo-L/DES_Head-Unit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DES03 Project - Head Unit

!! UNDER CONSTRUCTION !!

Table of contents

Introduction

This project is part of the embedded software development cirriculum at SEA-ME.

It aims to develop a Head Unit application running on a ECU alongside the a Instrument Cluster application in Flutter.
The Head Unit application will provide features like ambient lighting, gear selection, and a media app.
Furthermore, the project uses Scalable Service-Oriented Middleware (vSOME/IP) for the in-vehicle communication and Yocto as the build system for the ECU.

Collaborators

If you find any kinds of bugs or issues, please contact Kian, Jinghong or Seungwoo. 👌🏽

Demonstration Video

The following videos demonstrate the features of the project.

Head-Units' Media Player :

Ambient Lighting Control via Head-Unit:

Gear Selection by Head-Unit:

Essential Car Information on Dashboard:

PiRacer drives around:

Architecture

The following image gives a brief overview about the software structure that runs on the cars' system structure.
Each application like head-unit, dashboard, can_receiver, car_control, and car_info serves a different purpose and uses different peripheral interfaces and devices.
BMWs' CommonAPI ensure the communication between the applications via Scalable Service-Oriented Middleware over IP (SOME/IP). It is easy to add more apps to the system by using the CI/CD workflows for CommonAPI we build.
In the current setup, the speed sensor is the only sensor that feeds the cars' CAN bus but it can seamlessly be extended by adding more sensors to the CAN bus.
The system operates with a custom-made Yocto Image deployed on the Raspberry Pi ECUs.


Project Structure

The following image shows the project structure for the DES3 Head-Unit project.

  • apps: contains submodules which hold the source code to run the car.
  • sensors: contains submodules for the sensors' controllers that feed vehicle CAN bus.
  • image: contains a submodule that provides config files and recipes to bitbake the vehicles' ECU yocto image. (Note: The bitbake recipes are fetching the apps' source code from the submodules' repositories.)
  • documentation: summarizes all the projects' documentation.

To roll out the software, the sensors' controller and the ECU needs to be flashed.

  • sensors

    • Clone DES_3_Head-Unit repository.
    • Choose the sensors' directory from the sensors folder.
    • Flash the sensors' controller using the Arduino IDE.
  • image

    • Clone DES_3_yocto repository.
    • Bitbake the yocto image.
    • Flash the yocto image on the ECU by loading the it on the RPis' SD-Card.


The development in each submodule is done individually by the assigned developer.
Once a feature is ready, a new release following the teams' conventions is published.

Documentation

As mentioned above, the documentation folder contains all the projects' documentation. The files are distinguished by the phases the project went through. If you seek for more informations, don't hesitate to read through the following docs.

  1. Requirements Gathering:
  1. Planning Design, System & Software:
  1. Team Collaboration:
  1. Integration:
  2. Testing:

About

The head unit Qt application running on Raspberry Pi (RPi) alongside the instrument cluster Qt application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published