Well I hope its the Solenoid Steve... I'm planning to clean mine this coming weekend and waiting on new O-ring seals which should be here this week.
I went back and read some stuff about cleaning them this morning and thought I'd share something I found.
"Further to Umariner’s reply that he has changed the engine oil the light went out to re-appear after some miles of driving this happened exactly to me.
First I had taken out the solenoids before the oil changed noticed the oil around and inside the solenoids where heavier than the oil already in the engine, I blew out the solenoids with an air compressor and replaced the solenoids in their original location with the old seals.
Light went out, I cleared the codes and thought that would be it, (but my mind was on the viscosity of the oil not being right) light came back on with the same codes after 100 miles.
I goggled the BMW forums and found this problem on two sites suggesting the remedy already been discussed to be carried out before anything else was done, I decided to do this but take it to the extreme. So I had oil and filter changed to ensure I had the correct grade.
1. Taken a voltage reading on the solenoid plugs it was 5.5volts. (typical signal voltage)
2. Taken a resistance reading across terminals of the solenoids and notice slight variation between the two.
3. Tippex one of them as I intend to swap them over to see if one was faulty I may get different codes error later.
4. Rigged up an independent power supply of a variable 5.5 volts (do not apply 12volts) and notice similarity’s of the solenoids opening and closing, one was slightly lazier than the other but both where opening and closing, (I was looking for any faults and differences between the two)
5. With 5.5volts applied to keep the solenoid open I blasted air through the solenoid to make sure no residue was trapped in the valve seating, then blew by mouth to ensure the seating was airtight, (I placed a paper towel over the solenoid so as not to contaminate myself when I blew by mouth)
Note: It has been said to blow the solenoids by hand with a proper air compressor, (high pressure with volume) remember any residue trapped in the valve seating won’t be cleared as the solenoid is closed, you need them to be opened hence why I applied 5.5volts while cleaning.
Fitted with new BMW O ring seals the light went out, cleared the codes and since then car has been perfect.
To some reading this that was extreme, but that is how I do my DIY, should the fault return then I will most likely look for the fault elsewhere and look at the engine timing crankshaft to camshaft that BMW has suggested I do in the first place.
Best regards to all. Stuart"