Code Monkey home page Code Monkey logo

volvo-dash's Introduction

DigitalDash

Volvo 240 Digital Dash Project. Designed to use existing dash connectors (circular connectors w/ 2mm pins and various spades) to minimize extra wiring effort and installation of superfluous sensors.

Project components:

  • Raspberry Pi 3
  • 12.3" bar TFT LCD
  • Qt Quick w/ EGLFS project to display renders of gauges
  • Buildroot linux to cut down on footprint and boot time
  • i2c/spi adc interface for reading temp, fuel, speed, etc sensors
  • i2c IO expander for warning lights
  • Raspberry Pi daughter board to read various sensors.
  • DC/DC power supply for screen, pi and sensor supplies, if necessary
  • Cheap USB GPS for speedometer and heading (leaving the original speedo behind the dash? Not planning on implementing a validated odometer)

Current parts (mainly driven by availability):

  • MCP3208 for ADC inputs
  • MCP23017SS for dash warning lights and left/right blinkers
  • ILQ1 for isolated I/O inputs (3 for 12 inputs) add one more to completely fill the MCP23017
  • IL300 for 12V to 3.3V for isolated analog signals (rheostat and battery voltage)
  • lM358D for driving IL300 12V isolated analog inputs
  • LMV324 & TVS912D for 5V to 3.3V analog sensor inputs
  • VK-162 USB GPS module -- needs to be manually configured with u-blox u-center to get 10Hz update rate.

alt text

Setting up buildroot

Buildroot will build the custom linux image. The image being build is based on the raspberry-pi3 image provided from the buildroot project. Right now there is only support for raspberry pi 3. Things are still a bit of a mess here and depending on your flavor of Linux you might have to setup your system a little differently than others. You can find a lot of good information here on host packages that are absolutely necessary: Buildroot System Requirements

  1. To get things started:

From within the main project directory:

cd buildroot

make volvodash_defconfig

This will get buildroot configured to build the linux image.

  1. Start the build:

make

This will take a while, go get a coffee or if you're on a laptop run it before going to bed. You might be missing packages dependencies here and there. Check the output and use your package manager to install what's missing. This will also build the host tools for building the qt app that actually runs the dash. As one of the last steps of this process the Qt App, called VolvoDigitalDashModels (for now), is built and copied to the target /opt directory along with the config.ini file.

  1. Flash Image onto

At the end of the build that completed in the last step there should be a file called "sdcard.img" in the buildroot/output/images directory. The easiest way to flash this image onto an SD card for use on a pi is a utility like the Raspberry Pi Imager. In the imager utility select the "Choose OS" option, scroll all the way down and select the "Use Custom" option. Navigate to where the repository is cloned then to buildroot/output/images. There should be a file named sdcard.img. After selecting the image file, select your sdcard using the "Choose Storage" option. Hit write and wait.

After writing has completed you can plug the SD card into the pi and boot. The dash should start up after boot and using the numpad on a keyboard you should be able to switch between dash screens.

Remote Access

  1. SSH (ethernet)

TODO: More and better information here After boot the pi will be configured with a static ip address of 192.168.42.2. Assuming you're running a version of linux that has network-manager you can run some variation of the following after connecting the pi to your computer with an ethernet cable:

nmcli con add con-name dash-target type ethernet ifname <your-ethernet-interface> ip4 192.168.42.1/24

nmcli con up id dash-target

You can find your ethernet interface by running:

ip addr show

You're looking for something like enp2s0 or eth0 depending on your flavor of linux.

After setting everything up you can test the connection using:

ping 192.168.42.2

on the host machine and then run:

ssh [email protected]

and enter the default credentials

  1. Serial (serial to USB adapter)

TODO: More and better information here

Information on how to connect a serial to USB connection can be found here. The output baud rate is 115200. You can use screen, minicom, picocom on /dev/ttyUSB0/1/2/3/4 (wherever your serial to usb get placed).

volvo-dash's People

Contributors

whitfijs-jw avatar volumetrix 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.