So the Idrive controller on my 2007 E91 3 series was playing up. Basically it would sometimes appear to hang but mainly the press to select/enter function would get stuck down. You could see from the display that it thought the button was pressed from the surround changing on the option select. The rotating part generally seemed to work ok apart from what seemed like it hanging.
So I bought an updated one (which didn't work because I need to code it and also needs a new console surround) but decided to have a go at fixing the original - figured a dodgy/noisy switch or something was most likely but knowing BMW expecting hall effect or optical sensors.
So as I pulled it out and swapped the updated one in temporarily I found that jiggling the wiring to the controller made the system sense button presses. Ok so could be a dodgy connection right at the connector rather than the controller electronics. Pulling it apart was not difficult and I found 2 optical sensors for rotation and 1 for button presses. I suspect the first 2 somehow also sense up/down/left/right since there is no other way. Neat either way.
Anyway here's what I found at the 4 pin connector that is the sole connection to the car.
You can see 2 pins of the connector underneath. There appears to be no solder whatsoever (either side) holding the pin header on. I did try pushing it out of the board but it seemed fairly well held in either by the 4 pins or the 2 black plastic mounting points (or both). I didn't force it though since I had no need to get it out.
So it seems they've either forgotten to solder it completely or are relying on some kind of press/interference fit. I've done quite a bit of volume electronics manufacturing and have never seen anything like this nor would I consider it, particularly for a high vibration, harsh environment like a car. So presumably BMW or their 3rd party CM have just stuffed up here. I'm surprised I didn't find much other than a Youtube video of some guy soldering 4 "cold solder joints" on the optical sensor (I touched them up too in case).
This doesn't explain why the rotation seems to work OK since the wiring is basically power, ground and 2 signal lines (CAN I think) i.e. everything goes over the same bus but perhaps noisy power was falsely triggering the optical sensor.
Soldering the four pins and after a quick test it seems to be functioning significantly if not perfectly now.
So thanks for reading the novel. Interested to hear anyone's thoughts. empegbbs was the forum I figured I get the best response (as always). There are too many BMW ones spread all over the place....