Well thanks for all the good suggestions. I had just about finished my response (below), but I thought I'd try using the diagnostics scanner with a 1K pullup - and the diagnostics worked - without the extra pullup! It definitely didn't work the last time I tried a few months ago and the K line voltage was the same then (approx 5V). So I don't know if I've resolved it by removing/reconnecting connectors whilst looking for the fault but I may never know.
At the moment I'm a happy bunny as I have managed to read the fault codes I needed and more importantly reset the airbag fault (which was caused by me removing the instrument cluster to repair an LED indicator), meaning I should be able to get it through the MOT. It may be a temporary 'recovery' but if so it can wait till warmer weather!
It shouldn't be that hard to find the wiring diagram (logical and physical harness routing) and connector pin assignments for a common newish vehicle... I'd try that for looking into how it is wired to where by what paths.
You're right but it's a question of how much time to spend searching for the wiring diagrams versus tracing the wiring! Annoyingly I had a copy of the TSB CD which has all the cct diagrams but a) I can't find it, and b) I understand it doesn't work on windows 7 or later.
It is obvious but just in case you haven't checked -- check to see if there is a FUSE that covers the OBD connector or possibly its pull-up voltage supply. If there was a short that isn't "permanent" or fuse failure as the root cause then maybe it would just work if you replace a fuse.
I don't think it's a fuse. I've checked them all and I do get +12V at the diagnostic port pin 16 with ignition on.
You could try pulling up the line to VBAT through a few hundred ohms and an ammeter or something and see if it starts working or if it appears to be a short or an open.
I had meant to try that. Now seems to be good time to try it (with a 1K resistor) ...... Result: the K line (pin 7) is 4.9V with ignition on; tied to +12V through 1K ohm takes it to 9.1V; to 0V it drops to 1.1V. Wikipedia says that the ISO9141-2 bus is supposed to be terminated with a 510 ohm pullup. If it is then 1K to ground shouldn't get it down to 1.1V so odd. Perhaps 510 ohms is only a recommendation.
And yeah I imagine there are other connectors which carry the same signal (there would have to be, at least one at the ECU, probably.
Given that the signal is clearly connected to something, I don't think this will help anyway. I guess I need to disconnect every ECM in turrn to see which, if any, is dragging the bus down to 4.9V.
If you think you have bad wiring then it may be a good idea to inspect the engine compartment and underside to see if anything has been damaged by weather / broken supports or whatever in terms of insulation and stand-offs etc. But I would THINK that mostly the ECU to OBD wiring OUGHT to run just from side to side in the interior dashboard area of the car as opposed to out where it would be exposed to elements like the wiring to the engine / transmission sensors etc. would have to be.
There is a module under the passenger seat which is notorious for getting wet - the passenger floor has got very wet before so I will have a look there.
Tracing it? Well for telecom diagnostics on phone lines and network cables and the like they make various kinds or "toner" or "beeper" or "tracer" gadgets. Some of them have RF or similar audio frequency injection and monitoring capabilities so you can pick up the signal without physically attaching to the conductor but instead using a sniffer probe that is just nearby by a few millimeters or something. So you might be able to trace it through a branch in a wiring harness that way and find out where the open is.
I guess I could make something to do this but getting hold of the schematics makes more sense.