If intermittent code is being set, check for loose or dirty connections. Also, check corroded terminal ends.