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
- Host: GitHub
- URL: https://github.com/bgunson/onboardpi
- Owner: bgunson
- License: gpl-2.0
- Created: 2022-01-05T23:46:38.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-22T22:34:56.000Z (over 1 year ago)
- Last Synced: 2025-04-10T02:42:21.762Z (about 1 year ago)
- Topics: express, iot, material-ui, nodejs, obd2, raspberry-pi, websocket
- Language: TypeScript
- Homepage: https://bengunson.me/onboardpi/
- Size: 13 MB
- Stars: 66
- Watchers: 8
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OnBoardPi
[](https://github.com/bgunson/onboardpi/actions/workflows/tests.yml)
[](https://github.com/bgunson/onboardpi/actions/workflows/build.yml)
[](https://github.com/bgunson/onboardpi/actions/workflows/demo.yml)
[](https://github.com/bgunson/onboardpi/actions/workflows/pages/pages-build-deployment)

[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)