Code Monkey home page Code Monkey logo

dash's Introduction

IntelligentAuto

IntelligentAuto is a Qt-based infotainment center for your current Linux OpenAuto installation!

Main features include:

  • volume control
  • responsive UI (adjusts to any screen size)
  • embedded OpenAuto
  • bluetooth media control
  • read vehicle OBD-II data
  • theming (dark/light mode and accent color)
  • brightness (simulated)

home

openauto_maps

openauto_spotify

media

data

settings

Getting Started

Install.sh automated install (Raspberry Pi only)

First you need to run the executable with the following command:

./install.sh

Once installed it will start up, to run afterwards, navigate to bin folder and run:

./ia

Video walk through:

https://youtu.be/CIdEN2JNAzw

Manual Install

Prerequisites

The following packages have been used while developing this application (NOTE some things may be missing and others are not actually needed):

  • alsa-utils
  • cmake
  • libboost-all-dev
  • libusb-1.0.0-dev
  • libssl-dev
  • libprotobuf-dev
  • protobuf-c-compiler
  • protobuf-compiler
  • libqt5multimedia5
  • libqt5multimedia5-plugins
  • libqt5multimediawidgets5
  • qtmultimedia5-dev
  • libqt5bluetooth5
  • libqt5bluetooth5-bin
  • qtconnectivity5-dev
  • pulseaudio
  • librtaudio-dev
  • librtaudio6
  • libkf5bluezqt-dev
  • libtag1-dev

If you plan on using the Qt video library instead of the OMX library (i.e. not using a Raspberry Pi) you'll also most likely want the following packages:

  • libgstreamer1.0-0
  • gstreamer1.0-plugins-base
  • gstreamer1.0-plugins-good
  • gstreamer1.0-plugins-bad
  • gstreamer1.0-plugins-ugly
  • gstreamer1.0-libav
  • gstreamer1.0-doc
  • gstreamer1.0-tools
  • gstreamer1.0-x
  • gstreamer1.0-alsa
  • gstreamer1.0-gl
  • gstreamer1.0-gtk3
  • gstreamer1.0-qt5
  • gstreamer1.0-pulseaudio

For a Raspberry Pi, you will also need to run the following commands:

cd /opt/vc/src/hello_pi/libs/ilclient
make

Building

It is assumed you have cloned this repo with all submodules and are in the root directory.

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ../
make

If building this for a Raspberry Pi, add -DRPI_BUILD=TRUE to the cmake command.

Running

Building dash will create the ia binary in bin/. Depending on what you're running it on, you may need to make some adjustments to your system.

Some things to consider when configuring your system:

  • use a desktop environment that supports transparency (consider using xfce on Raspberry Pi)
  • set background color to black and hide any desktop elements (icons, panel, dock, etc.)
  • set USB permissions

Gotchas

Adjusting the brightness does not actually change the screens brightness, it just changes the opacity of the window.

Authentication of bluetooth connections are not handled in the application (i.e. the first time you are connecting a device). To keep things simple, you could install blueman which will prompt you for the necessary actions. If you are still having problems, you may need to try manually authenticating the bluetooth connection.

There is currently no option for setting the OBD-II interface. Right now it is assumed you have an adapter connected on /dev/ttyUSB0.

Settings are saved periodically every 10 seconds (or anytime the save button is clicked).

Not all OpenAuto settings are acessible.

If using GStreamer for your video backend (i.e. not a Raspberry Pi), you may get some black bars around the margins of OpenAuto. I'm still trying to figure out a way for it to ignore the aspect ratio.

Future Features/Fixes

  • add radio player (UI elements exist, just haven't had anything to interface with yet)
  • support bluetooth OBD-II adapter
  • control screen brightness
  • incorporate wireless OpenAuto
  • add wireless hotspot controls
  • add modular OBD-II data tabs
  • add OBD-II error codes tab
  • add dashcam video tab
  • ignore apsect ratio of OpenAuto for GStreamer backend
  • debug issue for OpenAuto randomly disconnecting
  • add automatic light/dark mode
  • add local media player
  • add audio equalizer

dash's People

Contributors

rsjudka avatar jcwenger avatar stefan-sherwood avatar rhysmorgan134 avatar dannybarake avatar icecube45 avatar matt2005 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.