{"id":16148364,"url":"https://github.com/trishmapow/obd-gui","last_synced_at":"2026-02-20T23:02:27.295Z","repository":{"id":91731828,"uuid":"232959327","full_name":"trishmapow/obd-gui","owner":"trishmapow","description":"Raspberry Pi powered dashboard with live OBD stats \u0026 graphs and reverse camera support.","archived":false,"fork":false,"pushed_at":"2020-08-24T00:23:50.000Z","size":683,"stargazers_count":46,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-06T13:47:19.746Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trishmapow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-10T03:38:54.000Z","updated_at":"2024-07-20T21:32:00.000Z","dependencies_parsed_at":"2024-05-13T13:17:36.950Z","dependency_job_id":null,"html_url":"https://github.com/trishmapow/obd-gui","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/trishmapow/obd-gui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trishmapow%2Fobd-gui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trishmapow%2Fobd-gui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trishmapow%2Fobd-gui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trishmapow%2Fobd-gui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trishmapow","download_url":"https://codeload.github.com/trishmapow/obd-gui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trishmapow%2Fobd-gui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29667119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T19:49:36.704Z","status":"ssl_error","status_checked_at":"2026-02-20T19:44:05.372Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T00:33:03.570Z","updated_at":"2026-02-20T23:02:27.275Z","avatar_url":"https://github.com/trishmapow.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RPi OBD dashboard (+ reverse camera display)\n\n![picture of display mounted on car](obd_display.jpg)\n(yes there are too many decimal places on the engine load, I've fixed this in the code)\n\n## Hardware\n- Raspberry Pi with Bluetooth \u0026 Wi-Fi (inbuilt or USB dongle, doesn't matter)\n- OBD2 Bluetooth module (buy from eBay, Aliexpress, etc. \u003c$10)\n- [PiFace Digital](http://www.piface.org.uk/products/piface_digital/) to switch video input \u0026 detect button presses. I had this lying around, otherwise you can use any kind of relay board and wire your own buttons to GPIO. \n- Reversing camera / dash cam with video output\n- Display with composite video input\n\nnote: [composite video](https://en.wikipedia.org/wiki/Composite_video) is used so I can easily switch outputs with a relay, quality isn't too bad on a small display.\n\n### Wiring\nRelays: NC (normally closed, i.e. connected by default when Pi is off), CO (common), NO (normally open)\n```\nRPi \u003c\u003c\u003cGPIO\u003e\u003e\u003e PiFace\nPiFace relay 0/1 \u003c\u003c\u003cNC\u003e\u003e\u003e RPi video out\n                 \u003c\u003c\u003cCO\u003e\u003e\u003e Display video in\n                 \u003c\u003c\u003cNO\u003e\u003e\u003e Camera video out\n                 \u003c\u003c\u003cGND\u003e\u003e\u003e Ground of all cables\n```\n### Power\nI only had one 12V socket available at the front of the car, and the dashcam was already using this, so I took apart the plug, made a small hole and soldered two extra wires to power the 12V display. \n\nThe Pi gets power from a USB socket on the CD player meant for flash disks (it apparently provides adequate current, use a USB voltage/current meter to check you're still getting 5+/-0.25V if you're trying such tricks). \n\n## Software setup\n- Connect module to car\n- On the Pi, in a terminal, run:\n    - `sudo apt update \u0026\u0026 sudo apt upgrade`\n    - `pip3 install obd PySimpleGUI keyboard`\n    - `git clone https://github.com/trishmapow/obd-gui`\n- To connect to the module, run:\n    - `bluetoothctl` to enter bluetoothctl shell\n    - `scan on` and `scan off` once you see your module\n    - `pair [MAC]` where MAC is the address of your OBD module\n    - `trust [MAC]`\n    - `paired-devices` check your module is listed\n    - `quit` to exit bluetoothctl shell\n    - `sudo sdptool add SP`\n    - `sudo rfcomm connect hci0 [MAC]` you should see 'press ctrl+c for hangup'\n- Now to see if you can interface with the module:\n    - `cd` into `obd-gui`\n    - `python3 gui.py`, if you see the numbers and graph updating, great! Otherwise alt-tab to switch to the terminal and see the errors (or exit the app using alt+f4). I had to make some patches to get my module working, you can find them [here](https://github.com/trishmapow/python-OBD/commit/ccd3e5c71032fd30717b83d5f93613ace153dbf4). Check the [troubleshooting guide](https://python-obd.readthedocs.io/en/latest/Troubleshooting/) and [issues in the repo](https://github.com/brendan-w/python-OBD/issues). You may have to dig into the pythonOBD source in `~/.local/lib/python3.7/site-packages/obd`\n- PiFace config steps:\n    - unfortunately the apt and pip packages for the piface don't seem to exist anymore, so we have to install manually. `git clone` both [pifacecommon](https://github.com/piface/pifacecommon) and [pifacedigital-io](https://github.com/piface/pifacedigitalio), `cd` into the directories and run `sudo python3 setup.py install` for both modules\n    - enable SPI in `sudo raspi-config`, under 'interfacing' (iirc)\n    - run `sudo python3 piface.py` from the `obd-gui` folder. sudo is required for the `keyboard` module to work and emulate keypresses\n    - try pressing the first button, the relay should switch. The second and third buttons should emulate the left and right arrow keys respectively\n- Autostart the apps with the Pi:\n    - copy the files in `autostart` to `/etc/xdg/autostart`. Make any necessary edits to the desktop files.\n    - add your module's MAC address in `connect.sh`\n    - if the scripts complain about missing modules when running with sudo, uncomment the `sys.path.append` lines at the top of `gui.py` and `piface.py` (edit as necessary depending on your Python version, you can run `pip3 show obd` to see where your package is installed). This is a quick fix solution, there are cleaner ways if you edit sudoers, etc.\n\n## Modifying the GUI\nThe GUI uses the PySimpleGUI library (just about the fastest \u0026 easiest way to get a working GUI running). You can adjust the font, refresh rate etc easily by modifying the constants and/or the `layout` array.\n\nContributions are welcome, I made the GUI in a rush and focused mainly on functionality. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrishmapow%2Fobd-gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrishmapow%2Fobd-gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrishmapow%2Fobd-gui/lists"}