Tubasteve, The 3 pin Honda port sounds like a ground, Rx, and Tx, does it feed into an ELM327?
How do you get the data from the 3 pin port into Torque?
A while back I made a boost controller with an Arduino (see: http://www.alltrac.net/phpBB2/viewtopic.php?t=32605
This project, for the ‘91, is just doing data monitoring (OBDM) and makes it available to Torque over Bluetooth. When Torque connects to a Bluetooth device it first performs some queries with “AT” command request. One of the things Torque ask for, is “What can you (the ECU) tell me?”. I respond, telling it what “Process IDs”, PIDs, I can provide measurement data for. Once initialization completes, Torque starts asking for the PID data measurements which it was told are available.
The Arduino Duemilanove has 6 Analog input pins which can measure a 0-5 volt signal. Thus far, I’m using 3 of them to read the AFM Vane Sweep, the TPS, and the Vacuum/Boost PIM signal. The ECU already uses 0-5 volts for these devices,
so their signals are feed directly into the Arduino analog ports.
The Duemilanove has two digital pins which support interrupts. The fuel injectors are wired “hot” with 12-14 volts. To fire an injector the ECU completes the circuit by taking it’s end to “Ground”. I use a 5.1 volt Zenier diode to limit the voltage and feed that into the two interrupt pins. One is configured
to trigger its interrupt on the rising edge, the other on the falling edge of voltage change.
The interrupt code saves the event times, for injector open time, and increments a counter to calculate the RPMs.
The ODB2 standards and therefore Torque do not have a PID for the “AFM Vane Sweep”
measurement... I’ve provide it to Torque as the MAF value.
Currently, I give Torque the Injector duty time as the “Engine Load”. When I get to it this may be revised to better estimate
So, when Torque ask for PID data measurement values I can provide the above. One interesting discovery thus far is that the fuel injectors stop firing when the engine is back loaded. Which means, I loose the RPM measurement.
Also, Torque does not calculate the HP and Torque values. I think this is because it wants to see “Speed” from the ECU and does not use the GPS speed for these calculations.
If I redo this with an Arduino Mega, it has 16 Analog pins and 6 digital pins with interrupts.
One of the additional digital pins with an interrupt could will be used to read the RPM signal going to the diagnostics port. This will prevent the RPM dropout when the engine is back loaded. A second pin with an interrupt will be used to read the speed signal to the ECU, with which Torque should then calculate HP and torque.
Some of the other data points I hope to measure with the analog pins are are: the Alternator/battery voltage, engine coolant temperature, the AFMs ambient air temperature, oil pressure, etc.
As in the MPGuino project I should be able to calculate the real time MPG
The Arduino can also remember data values while powered off. I can use this to track the engine run time and mileage for oil changes.