luisarojas / dynOBD

Android application that keeps track of statistics about any given car trip.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dynOBD


Version:1.0 Min SDK:23 Target SDK:24


W3Schools              W3Schools

Luisa Rojas          Alexandar Mihaylov


About

dynOBD is an android application that keeps track of statistics about any given car trip. It uses bluetooth to connect to an OBDII dongle that is connected seperately to the car's DLC. Instructions on connecting the dongle to the car can be found here. Alternatively if there is no access to an OBDII dongle then the user can generate simulated data which is explained in further detail down below.


Running dynOBD

Method 1 - Simulated Data (RANDY README)

  • Ensure that the switch at the bottom of the app. is ON as shown.
  • Only the datastream is simulated, so you still need to connect to any bluetooth device before proceeding
  • Turn on the Bluetooth to your computer <img src="img/bluetooth_on.png"" width="50"/>
  • Pair your phone with you computer
  • Launch dynOBD
  • Click the Button
  • Select your computer from the list of paired devices
  • Click the Button
  • The data will simulate acceleration to about ~100 km/h and ~2200 RPM and begin to fluctuate around those ranges.
  • You can proceed to use the app as normal from this point on

Method 2 - Real Data

  • Connect the Dongle to the Car DLC, for more detailed instructions visit this page
  • Ensure that the bluetooth is on, there should be a power button and lights indicating that the device is on
  • Start your car
  • Before launching the app, pair your phone with the OBDII dongle
  • Launch dynOBD
  • Click the Button
  • Select the device from the list of paired devices
  • Click the Button
  • Can proceed using the app as normal from this point on

App Features

Show live trip data to save and review at any time

Get specific information about your car

Find your exact current location at any time

Help is just a fingertip away

APIs Being Used

Name Description
ODBII Java api Handle the data collected by the ODBII diagnostic's system
CustomGauge
ColorArcProgressBar
Graphic UI for speed and throttle live data output.
Boom Menu Animated, customizable circular floating menu
Sweet Alert Dialog
Customizable dialog animation
Android google maps API API used to get locations, and forward/reverse geocode them
Android Flat Button Small library for customizable and styled buttons
Tap Target View Tap targets to help first time users of the app

Specifics used to test application

Useful Links:

Problems/Fixes

OBD-II PIDs and Java OBD Api

Control:

Mode PID(hex) OBD-Java-Api Description
01 21 DistanceMILOnCommand.java Distance traveled with malfunction indicator lamp (MIL) on
01 31 DistanceSinceCCCommand.java Distance traveled since codes cleared
01 01 DtcNumberCommand.java Monitor status since DTCs cleared. (Includes malfunction indicator lamp (MIL) status and number of DTCs.)
01 44 EquivalentRatioCommand.java Fuel–Air commanded equivalence ratio
AT IGN IgnitionMonitorCommand.java N/A
01 42 ModuleVoltageCommand.java Control module voltage
-- 07 PendingTroubleCodesCommand.java Show pending Diagnostic Trouble Codes (detected during current or last driving cycle)
-- 0A PermanentTroubleCodesCommand.java Permanent Diagnostic Trouble Codes (DTCs) (Cleared DTCs)
01 0E TimingAdvanceCommand.java Timing advance
-- 03 TroubleCodesCommand.java Show stored Diagnostic Trouble Codes
09 02 VinCommand.java Vehicle Identification Number (VIN)

Engine:

Mode PID(hex) OBD-Java-Api Description
01 43 AbsoluteLoadCommand.java Absolute load value
01 04 LoadCommand.java Calculated Engine Load
01 10 MassAirFlowCommand.java MAF air flow rate
01 5C OilTempCommand.java Engine oil temperature
AT 0C RPMCommand.java Engine RPM
01 1F RuntimeCommand.java Run time since engine start
01 11 ThrottlePositionCommand.java Throttle position

Fuel:

Mode PID(hex) OBD-Java-Api Description
01 44 AirFuelRatioCommand.java Fuel–Air commanded equivalence ratio
01 5E ConsumptionRateCommand.java Engine fuel rate
01 51 FindFuelTypeCommand.java Fuel Type
01 2F FuelLevelCommand.java Fuel Tank Level Input
-- -- FuelTrimCommand.java N/A
01 34 WidebandAirFuelRatioCommand.java ? Oxyegen Sensor 1

Pressure:

Mode PID(hex) OBD-Java-Api Description
01 33 BarometricPressureCommand.java Absolute Barometric Pressure
01 0A FuelPressureCommand.java Fuel pressure (gauge pressure)
01 23 FuelRailPressureCommand.java Fuel Rail Gauge Pressure (diesel, or gasoline direct injection)
01 0B IntakeManifoldPressureCommand.java Intake manifold absolute pressure

Temperature:

Mode PID(hex) OBD-Java-Api Description
01 0F AirIntakeTemperatureCommand.java Intake air temperature
01 46 AmbientAirTemperatureCommand.java Ambient air temperature
01 05 EngineCoolantTemperatureCommand.java Engine coolant temperature

About

Android application that keeps track of statistics about any given car trip.

License:Mozilla Public License 2.0


Languages

Language:Java 100.0%