Code Monkey home page Code Monkey logo

steering-fox's Introduction

This aplication and hardware was designed to replace default/stock navigation/radio provided by BMW in my x3 e83 (2004).
Not ready yet :)

How it looks

Dashboard GUI

Music GUI

more to come

Hardware:

  1. Raspbery pi 3B+ - heart of hardware, in short Raspberry sucks, a better alternative is Rock Pi 4 Model B 1GB (cost about this same, and have a lot more features, for example can run on 12V (this will eliminate need steepdown DC converter usage, and eMMC disk can be installed))
  2. Resler USB IBUS interface (I encourage you to try other solutions, cheaper ones @aliexpres :) )
  3. DAC plus soundcard (raspberry pi hat), DYKB PCM5122 Raspberry pi B+ 2/3B HIFI DAC + Sound Card Digital Audio Module
  4. 12v step down DC converter with output set around 5,7V
  5. Bluetooth dongle
  6. Cables (for speakers, HDMI, USB extender 5m+, comon USB extender)
  7. Few realeys (10A will do)
  8. 6,5 inch touchscreen with control board PCB800099-V.9.
  9. Revers camera
  10. GPIO Extension Expansion Board Module for Raspberry pi 3B+

Wiring diargam/schematics

Software:

  1. Raspbian
  2. Node.JS
  3. Electron
  4. more in package.json ;)

Few facts:

  1. GUI was designed for 6,5 inch screen (800 x 480 px)
  2. Image from revers camera is handled by PCB control board (when revers gear is on then revers camera is on and signal send to control board)

Aplication can:

  1. Displays diffrent data from car CAN network like (temperature outside, fuel consumption, avarage speed, altitude, time and more
  2. Play mp3 from disk (USB to do?)
  3. Play YouTube
  4. Displays google map (navigation on to do list)
  5. Manage Wi-Fi connections
  6. Manage Bluetooth conections/devices
  7. Play music via ADSP (egz. music from phone)
  8. Be controlled from steering wheel controls
  9. Allows to do phone calls (to do)

Usage

First install all dependencies:

npm install

Start application without debug logs, logs can be later turn on by setting: debugMode = true

npm start

Start application with debug logs

npm run debug

Rebuild application

npm run prepare

Build application for Raspberry pi 3B+ (linux)

npm run build-linux-arm

Settings

More logs can be show by setting:

lessInfoFromCAN=false

OS settings

Auto shutdown script

This Python script is monitoring PIN 33 status when it's changes it will run sudo shutdown -h now command and close Linux OS Code:

from time import sleep
import RPi.GPIO as GPIO
import os

GPIO.setmode(GPIO.BOARD)
pin=33

GPIO.setup(pin,GPIO.IN,pull_up_down=GPIO.PUD_UP)

while(1):
        if GPIO.input(pin)==1:
                print "Shuting down - ACC power (switched) off"
                os.system("sudo shutdown -h now")
                sleep(.1)

To auto start script: sudo nano /etc/rc.local and at the end add: sudo python /path_to_your_script_file/script.py &

Deployment

Github actions need tag to be present in order to compile release First update version in package.json:

git commit -am 1.0.0

Tag your commit:

git tag 1.0.0

Push your changes to GitHub:

git push && git push --tags

steering-fox's People

Contributors

miroslawlis avatar

Watchers

James Cloos 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.