A little confused about the mechanic's findings. If I have it correct - connecting a known good ESA shock cleared the ECU faults but the shock would not move?
Correct. Jimmymac dropped by with his shock. I connected it to my loom and in hope and expectation pressed the ESA button. Nada. I connected the GS911 and there was no fault showing anymore. I then tried an ESA Calibration, again Nada other than a slight twitch of the shock (which tells me something is happening just not what the ECU expects). After Jimmy left I reconnected my own shock up and bingo, two long presses of the button got me 2 helmets and a 3rd press got me low mountains. But even after leaving for 2-3 minutes the low mountain icon hadn't started flashing and nothing was happening. After recycling the ignition I was back to square one, i.e. no response from the switch, BUT also still no fault code. Very strange all that.
SO, of course when I took it to BMW they also couldn't see the fault and what puzzles them, and what they have never seen before is an ECU managed component not working but no fault code showing (and no other explanation like some other component removed). I don't exactly know what they tried, but they said without further investigation into the loom there was not a lot they could do. TBH I got the impression they didn't want the job either.
That sounds like a wiring issue to me.
(1) Wires in a fixed bundle can chafe, but rarely break.
(2) Wires can break (or chafe) where the loom moves - steering etc.
(3) Your control button operates the damping but not the ride height.
Before I go down the loom route I think I want to retest with a known to be good ESA motor. Nothing on eBay at the mo.
Checking the loom from ZFE back to the rear of bike can't be too hard a job. Look for chafes under clips and support tray etc. Self amalgamating tape will repair rubbed insulation and re-wrap the loom. A pin pricked through the insulation allows you to continuity test a length of wire (though probably not on the fine canbus wires).
A simple continuity test shows the 4 wires from ZFE connector to the shock are all OK.The motor spins up when I apply 12vlts to pins 1 & 4. I need an extra pair of hands to see if anything is coming down pins 2&3 which should be the feed from the sensors.
Maybe the switch is connecting well enough for a short pulse to change the damping but is not connecting cleanly enough for the long press to select ride height. So it's worth checking out the microswitch and wires to the ZFE from the handlebar. Can you rig up a test switch directly at the ZFE or is it all Canbus?
GS911 picks up the switch being pressed. I will give the switch a clean but I doubt it as the "calibrate ESA" feature on the GS911 doesn't work on the front. Its OK on the rear. I am not sure what you mean by "rig up a test switch"? Do you mean intercept the wires to/from the handlebar switch with the tester and try it from there? Its all Can Bus stuff this so I am not sure I want to dig into it
Have Revs Racing (Wilbers UK) come across this problem?
No, they say in their experience never had a failure of shock or ESA motor.