Apparently the sunroof motor on the '01 e46 can get a little cranky in it's old age (of ~4 yrs old). Mine stopped working correctly one sunny day when I decided to open it up. Suddenly the switch would completely ignore the 'open' and 'one touch open' commands. Pushing it in the other direction did work, though, and proceeded to pop open the rear of the sunroof in the vent position. Now I had a sunroof that was opened up in the rear and wouldn't close. Whenever I pressed the switch in the forward position (towards the front of the car - used to close the sunroof, or open it in the vent position), I could hear it click. Pushing it in the rearward position I heard nothing.
That night, I popped open the cover where the sunroof switch is, revealing the sunroof motor. On the motor is a hex key fitting that can be used to manually crank the sunroof. After closing it 7 or 8 times and playing with the switch, I decided to close it and leave it alone for a while.
A couple days later I was feeling brave and decided to play with the sunroof again. Suddenly it began to work! But not correctly! It seemed to have forgotten where the 'open' and 'close' positions were. Normally, regardless of whether using the one touch feature or not, once the sunroof is open all the way, it stops immediately. Mine did not. It would get to the point where it was all the way open and then it would close back about 6 inches and then stop. Also, when closing it, now it wouldn't stop at the close position. It would immediately go into the vent position whenever it got close to the full close position.
I had just bought the car used about two months before from a non-BMW-exclusive used car lot. So I decided to try out my local stealership where they diagnosed it as a bad sunroof motor and wanted $384 to replace it. They were gonna charge me $150 for the part and the rest in labor. Having just popped open the panel a week before, I noticed that the motor was held in by no more than 3 torx head bolts. To the stealership, this must have seemed like a daunting task for its factory trained technicians, as they were going to charge me no less than 2 hours of a factory trained technician's valued time to R&R my ailing motor.
After quickly snatching back my keys, I learned a valuable $100 lesson (diagnosis fee), AVOID THE STEALERSHIP!!!
My money, it appears, would have been much better spent purchasing a Bentley service manual. If you don't have one, get one. Worth every penny! I learned that the sunroof motor needs to be 'initialized' whenever any of its components are replaced, or it loses power for whatever reason. How do you initialize the motor? You push and hold the switch straight up for 20 seconds (not forward or rearward). You will then hear the motor zip a bit, and VOILA, back to normal.
The motor is indeed not working properly, as it requires this 'initialization' procedure once every couple months. However, after initializing, it continues to function normally. If it ever dies, I will call up my local NON-STEALERSHIP Euroean parts place (
www.europarts-sd.com these guys are AWESOME!!!) and pretend I am a factory trained BMW technician while I yank out that complex piece of German hardware. And you know what all good technicians always do after they fix a car? The get to test drive 'em!
