Coda is a multi-ECU, AI-driven, state of the art well-rounded system featuring two screens, road sign detection, a voice assistant, and intuitive UI that elevates a driver's experience to a new level.
Coda represents the team's magnum opus: the graduation project of a long and hard journey in Information Technology Institute's 9 Month Professional Training Program Embedded Systems Track. You can consider it a love letter to this place; where all the skills acquired along the way have been put to the test. Our team is proud to say the output has been above our expectations.
Coda comprises of 4 main nodes:
- Baremetal Node: responsible for direct hardware interfacing for determining doors states, car speed and rpm, and ultrasonic sensors for safe-distance. These readings are sent via CAN. This ECU is based on the NXP S32K148-Q176.
- Detection Node: responsible for detecting road signs from a predefined selection while on the road. The detection model is a YOLOv8 nano model that was trained on a set of road signs. The detected signs are published to the Cluster Node via a CommonAPI service based on vSOME/IP. This ECU is based on NVIDIA Jetson Nano Developer's Kit running a custom Yocto distro.
- Cluster Node: responsible for running the Instrument Cluster app on the first screen and routing CAN traffic towards the IVI Node. The Instrument Cluster app is built using Qt6 framework. The app displays some of the incoming data from CAN and forwards the rest to the IVI Node via a CommonAPI service based on vSOME/IP. This ECU is based on Raspberry Pi 5 16GB running a custom Yocto distro.
- IVI Node: responsible for running the IVI app on the second screen in addition to a Voice Assistant app complying with Google's guidelines for development. The incoming data from Cluster Node is received via a CommonAPI service based on vSOME/IP; this service transfers the readings to the application layer through an AIDL contract that is used for registering callbacks in the application layer. Coda's Voice Assistant features wake word detection and multiply commands.
- IVI App
- Instrument Cluster App
- Voice Assistant App
- Road Sign Detection Model
- Android Automotive Vendor Package
- Custom Yocto Meta Layer
- Baremetal Firmware
- Barmetal PCB