The App OBD JScan with a bluetooth OBD scanner should do all of that.