You need software that can read trouble codes on the various modules in the vehicle. These are not usually available to a standard OBD2 reader.
For example, Ford's typically use HSCAN to run your standard OBD2 reader and read normal P codes. They use a difference set of pins for MSCAN that will allow typically Ford propriety software to read trouble codes on the various modules.
You can purchase an ELM327 OBD2 device that will allow you to switch between the two different setups and run module codes using a free software called Forscan. (
www.forscan.org) So for about $15 (the cost of the ELM327) you can pull trouble codes from every module on the car, program modules, reset modules, and change as_built data on the car. For instance, if yout heated seats aren't working, the seat module may display a cushion overtemp condition and tell you which cushion is in error. These codes are not available through a typical OBD2 code reader (which is looking for engine codes) because theyt aren't designed to read from the other pins on the OBD2 vehicle interface
That's for Ford/Lincoln. Other makes may have similar products available but i don't know about those