An open API service indexing awesome lists of open source software.

https://github.com/bgunson/onboardpi

On board diagnostic web application for vehicles
https://github.com/bgunson/onboardpi

express iot material-ui nodejs obd2 raspberry-pi websocket

Last synced: 2 months ago
JSON representation

On board diagnostic web application for vehicles

Awesome Lists containing this project

README

          

# OnBoardPi
[![tests](https://github.com/bgunson/onboardpi/actions/workflows/tests.yml/badge.svg)](https://github.com/bgunson/onboardpi/actions/workflows/tests.yml)
[![build](https://github.com/bgunson/onboardpi/actions/workflows/build.yml/badge.svg)](https://github.com/bgunson/onboardpi/actions/workflows/build.yml)
[![demo](https://github.com/bgunson/onboardpi/actions/workflows/demo.yml/badge.svg)](https://github.com/bgunson/onboardpi/actions/workflows/demo.yml)
[![pages-build-deployment](https://github.com/bgunson/onboardpi/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/bgunson/onboardpi/actions/workflows/pages/pages-build-deployment)

![obpi_splash](https://user-images.githubusercontent.com/47361247/213033694-4e6ec2cd-6123-4ba3-a4c7-1a0a2107fa57.png)

[Try the demo](https://bengunson.me/onboardpi/)

[Watch the demo video](https://www.youtube.com/watch?v=HjtUfPwrNDA)

OnBoardPi is a web based application which can be installed in any OBD2 compliant (1996 or newer) vehicle using a Raspberry Pi or similar single board computer. Parameters such as RPMs, speeds, or temperatures can be monitored on dashboards, tables, and charts in real time. OnBoardPi also integrates with [BlueWave Studio's OpenAuto Pro](https://bluewavestudio.io/shop/openauto-pro-car-head-unit-solution/) by injecting values via its API allowing users to use both softwares at once.

## Quick Install

OpenAuto Pro 16 users please see [this issue](https://github.com/bgunson/onboardpi/issues/37) before installing.

**Requires**
- Docker - see [optional post-install steps](https://docs.docker.com/engine/install/linux-postinstall/) to manage Docker as a non-root user if desired otherwise use `sudo` for Docker commands.
```
curl -sSL https://get.docker.com | sh
```

[Link to Docker images](https://hub.docker.com/search?q=bgunson%2Fonboardpi)

Then, in a directory of your choice:
```
mkdir onboardpi && cd onboardpi
curl https://raw.githubusercontent.com/bgunson/onboardpi/main/docker-compose.yml > docker-compose.yml
docker compose up -d
```
> Docker Compose should be included with the Docker CLI, however if you have an older version of Docker you can install it specifically using `python3 -m pip install docker-compose` and run OnBoardPi using `docker-compose` with a hyphen.

Open a browser and navigate to [http://raspberrypi.local](http://raspberrypi.local)

TIP: If your Pi's hostname is different from the default then use that in place of 'raspberrypi'. For example, set the hostname to 'onboardpi' and navigate to [http://onboardpi.local](http://raspberrypi.local)

*mDNS (hostname IP resolution) does not work on all operating systems such as Android so you will need to navigate using the Pi's IP address.*

Please consult the [wiki](https://github.com/bgunson/onboardpi/wiki/Installation) or create an issue if needed.

## Features

- Access from any device that runs a modern and capable web broswer, no need to download any unknown OBDII apps
- Dark and light modes
- Lightweight and customizable
- Keep all your vehicle data close and accessible

*Screenshots were taken from a testing environment and do not reflect actual data.*

Thanks to [MockuPhone](https://mockuphone.com/) for the device mock-ups.

### Dashboard
- Visualize gauges, curves or numeric cards in real time.
- Choose from any Mode 1 OBDII PID.
- Reorder dashboard cards




### Diagnostics
- View stored, pending or freeze DTCs (diagnostic trouble codes) where supported.
- View current status and fuel status, if supported.



*Clearing codes not supported yet*

### Data Stream
- View all (mode 1) OBDII PIDs at once
- View realtime system parameters including CPU, RAM and disk usage.




### Realtime Curves
- Fullscreen real time depiction of any supported OBDII commands




### Maintenance
- Store your vehicle maintenance in a convenient table (stored in a database on the Raspberry Pi)

## Roadmap
- [ ] Datalogging using [TimescaleDB](https://www.timescale.com/)
- Log sys info
- Log OBD commands
- Client-side visualization, leaning toward Highcharts. Optionally, could use Grafana or similar.
- [x] Clear diagnostic codes - I currently do not have any CEL to test this on ;)
- [ ] Multiple dashboards
- [x] Imperial unit conversion support
- [ ] Cloud backups somewhere down the line
- [ ] MQTT publish support

## Related Projects and Thanks to
OnBoardPi is not possible without open-source culture and the projects below but not limited to:
- [ngx-graph](https://github.com/jkuri/ngx-graph)
- [ngx-gauge](https://github.com/ashish-chopra/ngx-gauge)
- [ngx-socket-io](https://github.com/rodgc/ngx-socket-io)
- [systeminformation](https://github.com/sebhildebrandt/systeminformation)
- [python-OBD](https://github.com/brendan-w/python-OBD)
- [ELM-emulator](https://github.com/Ircama/ELM327-emulator)