Auto AI

A mobile application using the onboard diagnostics port of a vehicle to provide the user with safety features, diagnostic information, voice-activated accessibility support, and an AI-powered copiloting system.

What It Does

How we built it

We designed our product as a mobile application as an All-In-One copilot. We choose flutter to build our mobile application as we can deploy on Android, IOS, and the Web with only one code base. We use Twilio to send safety-related notifications to a driver's emergency contacts. Alan AI allows the user to use voice commands to modify their vehicle, providing a hands-free driving experience. Google Maps has been embedded in the app to allow the user to plan trips, and additionally to provide location information in case of emergency. We used YOLOv5, an open-source AI/Computer Vision model, to provide object detection. We used OpenCV to create a lane-detection algorithm.

OBD (On-Board Diagnostics) is a standardized system that allows vehicles to self-diagnose and report any malfunctions in the engine and other systems. It is typically accessed through a diagnostic port and can provide valuable information for mechanics and vehicle owners.

We used an ESP 32 microcontroller, which has a built-in CAN controller, to read OBD codes directly from the vehicle. The microcontroller creates a TCP server, through which it can communicate wirelessly with a smartphone.

Challenges we ran into

A major issue we ran into was decoding OBD codes. Although the standard for writing OBD codes is universal among US car manufacturers, the OBD ports through which the code flows vary depending upon the make and model of the vehicle. We were able to decode values from a 2019 Mitsubishi SUV pertaining to locking and unlocking the vehicle, and raising/lowering the trunk.

What's next for Auto AI

We could use a Raspberry Pi, which has an ARM processor to implement our project, diverting resources from the processor of the smartphone.

We could have created a more extensively-connected microcontroller with the capability to write data from any OBD port, with the specific ports left open depending on the user to select their make and model in the app.

Ideally, we also could have created a database to allow the user to create an account, where they could store emergency contact information and save their customizations remotely.

Share this project:

Updates