Charcoal canister problems can often cause the check engine light to go on, and they are often difficult for mechanics to diagnose.