There is that magical phrase "bi-directional".
What precisely do people think this means?
"Bi", meaning two as in bicycle, biped, bipolar?
Operating in two directions it would seem. Transmit and receive on the serial data bus.
And how exactly does a "code reader" retrieve codes? It first sends a message on the data bus requesting codes from a module. For the subject vehicle of this thread that message takes the form "6C10F119D2FF00" where this is a request from the code reader or scantool (both devices send the exact same message) to the PCM requesting all Current, Pending, MIL requested, and History codes status levels. Other options are available for Old codes, etc.
It then receives responses from that module (or modules). Is this somehow not operating in two directions, transmit and receive?
In reality, on the single wire class B serial data communications network we are dealing with here there is absolutely no difference between a sent message and a received message. All are boiled down to nominally 7 volt pulses on this single wire where each bit is put on the wire one after another. It looks like this.....
Seen here is a ~200 microsecond high pulse that signifies the beginning of a frame (message). This is followed by a ~64 microsecond low, a ~64 microsecond high, a ~128 microsecond high, then a ~128 microsecond low. That represents the binary equivalent of the character "6".
This is followed by a long low, a short high a short low and a long high. This is the binary of the character "C".
@chem_man it's sort of like reading morse code, no?
These are the first two characters of the message I posted above for a request for DTC codes. Sent by a module (code reader or scantool) and received by all modules on the bus. There is no "directional" component to the message, even the module sending the message also receives the message.
"Bi-directional Control": Here are just a few of the things I can do with my little $14 bluetooth adapter....
Unlock my doors should I accidentally lock my keys inside.
Activate my front axle disconnect.
Close my EVAP vent solenoid valve.
"Ding" my door chime any number of dings up to 255.
Activate my Fuel pump.
Move my fuel gauge, volts gauge, oil pressure gauge etc to a given value.
Turn on or off the various warning lights in the cluster.
And just this weekend I figured out how to release the electric brake on the encoder motor and send a PWM value of between 8% to 50% to the encoder motor circuit A or B.
I do get what folks say about the usefulness of a "quality" scantool. Especially for those who must work on a variety of vehicles. And the overwhelming majority of owners simply don't have the time to spend learning how to do the sort of things I just listed above.
And where is the real difference in these tools? Not really in the hardware, electronics are fairly inexpensive in reality. The cost is in the licensing fees that must be paid yearly to GM Ford, etc. Over ten years ago it was said that GM required about $50,000 annually for this proprietary information. Can't begin to imaging what it may be now.
But for the owner who just needs to pull codes every now and then to assist in diagnosing an issue with their one or two older GM vehicles it may be worth investing some 20 or 30 minutes to get that far and not have to resort to depending on O'reillys or Autozone or whomever to try to scan codes. Particularly since they more often than not will be unable to read codes from the BCM, EBCM, TCCM or the like. The method I am speaking of will read all those codes and at all status levels to boot, Old, History, Pending, Current, MIL requested, etc.