Confirm that your code reader is "seated" properly in the port. Could be a faulty sensor within the system somewhere (radiator etc).
Sounds like a proper($better$) code reader and indy is in order...
(coils, O2 sensors, MAF would be picked up by the basic code reader...)
Please let us know what the mystery is!!