TDR (Time-domain reflectometer) concept. On the right track?

dc42:
I've got my low-resolution TDR working now. I'm using a single comparator to detect both positive and negative reflections, with the reference input fed from a PWM pin feeding a low-pass filter. The software sets the reference input voltage, allows it to settle, starts timer 1, and sends a pulse into the cable. The comparator output is fed to the ICP1 pin, so that when a reflection is detected, the time of the reflection is captured in ICR1. This is repeated while ramping up the reference voltage, so that the software can look for positive steps in the voltage at the end of the cable. Then it ramps the voltage down, looking for negative steps. From the number and amplitude of the steps found, it can distinguish between no cable connected, short circuit at cable terminals, cable open circuit at (distance), cable short circuit at (distance), and cable correctly terminated (i.e. no reflections).
You have managed to get further than me sofar. I'm still in the back of fag packet/napkin stage and still hunting for suitable component. To throw a spanner in the works I just discovered (today) you can get TDC chips that can measure with >360ps resolution so I'm now trying to fine out more info and costs for these chips. I will probably only be interested in open/short circuit testing as I cannot predict the consequences of testing with equipment hanging off the end of the cable.
The biggest problem was stopping the comparator oscillating. It really wanted to oscillate at about 200MHz. The datasheet warns about the importance of good layout, and I was prototyping on a breadboard, so I guess it isn't too surprising. Eventually, the combination of putting a decoupling capacitor right on the SMD adapter, keeping the output away from the input, grounding unused breadboard rows, and adding a large amount of hysteresis solved the problem. It should be much easier on a PCB.
This will be a big headache for me if I'm trying to use 2GHz signals. I don't feel I'm up to designing a stable platform.

The resolution is currently only 62.5ns (about 6.4m for cat5 cable) because I am using a 16MHz Arduino for prototyping. Next step is to add an LCD display, and programmable delay line between the mcu and R1 to increase the resolution. I have a DS1023S-25+ on order, which will theoretically provide 0.25ns resolution, although I expect that jitter will reduce that.
Maybe a job for a Duo? All in all good to see your off the ground and running. It would be nice if then DS1023S could get down to about 100mm resolution. What is the shortest cable you can measure?