We see several references to code reader being "as good" as scanners for less money..... so let's take a look at what OBD2 codes really are.....
The ones that most are familiar with are "memory codes"... These are the only ones that a code reader can retrieve. Continuous Memory codes (CMDTCs) are a concern that the PCM has seen in the past but may not be present at the time codes are scanned.... This can be a real problem since many codes are present as a symptom of the concern and not as a cause of the concern.
Spending the extra money to step up to a scan tool allows us to perform OnDemand testing. OnDemand codes are concerns that actually exist at the time of the test. The KOEO OnDemand test has us command the PCM to conduct a self test routine and report any problems that exist at the time of the test.... some caution is required - if the engine is cold, the PCM will report back that the engine is cold (not at operating temp). If no OnDemand codes are retrieved, we move on to the KOER OnDemand test - there are several outputs and inputs that the PCM cannot accurately test unless the engine is running.
At the same time, we need to consider any codes retrieved carefully before we act on them... Some codes can be just a response (a symptom) to a concern.... P0171 and P0174 are good examples of these.... These codes are lean exhaust indicators and can have many, many causes other than the O2 sensors. Other codes can be causal codes.... A P1124 can indicate an open or short in the throttle position sensor or circuit.
This should be a decent start for some discussion....