We wanted to help car owners better understand how much their vehicles are costing them.

What it does

Our app pulls data from a standard OBD2 port found on most vehicles using common affordable hardware, and allows a user to see an estimated cost of operating their vehicle is along with some general statistics from each trip they take through a user friendly web interface.

How we built it

We used a python script with heavy use of the python-obd library to interface with a commonly manufactured ELM327 obd adapter. The python script reads and processes data then converts it to a JSON blob that can be posted to a webserver, where the user can view their data on real-time graphs.

Challenges we ran into

Bluetooth always adds some weird problems with inconsistent connections during development, and a good portion of our code went untested until we were able to work out the issues related to bluetooth with our specific device on linux. Another major challenge we had to deal with was that in order to test our python script properly we needed to be within bluetooth range of a car with the ignition in accessory mode or running. This led to a lot of trips back and forth and a good amount of working on code from within the vehicle.

Accomplishments that we're proud of

We managed to stick to our original plan and complete a full stack of software that could easily be ported to most platforms with python instead of deciding to switch to android and limiting the scope of our project.

What we learned

Most of the tools and software we used we had limited to no experience with. We also learned a significant amount about how the government mandated OBD2 diagnostics system works and how we can take basic engine data and convert it to useful numbers that we can use to calculate things like fuel cost for a trip.

What's next for TripTracker

Adding more data to our readouts would be nice to have for general diagnostics purposes, and if we were to use this as a product we would likely want to build a database of vehicle model specific data such as fuel tank size, oil type and cost, tire size, as well as a few other points that are used to generate our cost per mile figure. Being able to scan a vin tag on a vehicle and automatically populating these fields would make the user experience as seamless as possible.

Share this project: