In work we have a large network within a city of underground mulitcore (14-40 core) communication cables for hardwired signalling. These are between locations typically 1-3 miles apart.
When diverting or repairing these cables it is important to perform a "Core ID" on these cables to ensure they are connected correctly at both ends. This is either completed through manually shorting each cable to earth at one end and manually checking continuity on the other end (time intensive and requires two people) or alternatively we have one legacy analog electronics based product (RS 611-947 long since discontinued).
This enables a "Transmitter box" to be fitted to all cores at one end and a small handheld to go between cores at the other. The handheld has two cables - one is a reference and the other when put on another core will tell you the corresponding core number. It does not matter which core is used as the reference. Unlike other cable tracing products on the market this does not require the use of a common "ground" reference.
I would like to create a similar multicore cable core identifier with an Arduino connects to all necessary cores at one end and a second arduino can go between any reference core and a "test" core at the remote end and determine the corresponding core number.
One further complication is that whilst at one end of the cable there may be 32 cores, the other end may have only 14.
I appreciate this is similar in nature to other "continuity tester" type topics however I believe this is a little more nuanced as not only do I wish for this to prove continuity but also the correct core ID.
I was considering a time synchronised pulse on each GPIO however due to many of the locations being in deep basements or in EMF shielded buildings this will not be possible due to poor GPS signal.
My current consideration is to set up a cycling I2C on all pins of the "transmitter end" to communicate correct number and the receiver hand held waiting for correct comms.
If anybody has any other ideas or suggestions I would greatly appreciate it.
Personally, I would look for an engineer or company willing to make duplicates of the existing system. Does the original company still exist? Do other cities use that same device or have similar devices? How many cities have your asked?
Many thanks for coming back - it is greatly appreciated.
I'm hoping to develop an arduino based solution myself as opposed to blindly copying PCB of device we use. This is not a work project just something I think will be fun to work on. Original was developed by RS Components as a Transmitter and Reciever (611-931 CABLE TRACER TRANSMTR 611-947 CABLE TRACER RECEIVER). The only record I can find of them online is in a list of discontinued products.
Talking to others in different companies it appears the standard convention is to short each core to earth and check continuity at far end. This is considerably slower and required two people - which I'd like to avoid.
Have you asked the local telephone company how they confirm the correct continuity of their underground wiring? They have many more pairs to work with than you are using.
If I am understanding you the first problem to overcome is to find a board with enough pins. I think you might have a situation where you have more wires than pins so somebody will be needed at the remote end to remove one set of wires and connect the next bunch.
My next question is how does GPS play a role?
Thee cables are of varying vintages. Some will be numbered and some will be colour coded. Unfortunately this network is c60 years old. It cannot be assumed that these cores run "straight" end to end. They will be jumbled in joints.
It would still require a person at each end, but using time-domain-reflectomertry, TDR will let you determine continuity of a single wire, BUT also let you determine the condition of all intermediate cable splices. So see if you can get a TDR device suitable for the cable lengths and test with it.
Unfortunately TDR will not assist with Core ID. If I can get a signal at a receiver which provides detail of core number I am by default getting continuity.
I wouldn't use I2C, nor would I rely on any kind of time synchronisation. However, it is easy to send an arbitrary code, probably an async format.
I'm not sure how you handle the lack of a common ground though. Perhaps you can alternate each line between mark and space, so eventually you get a readable signal on the other end.
As for number of cores, I think that is a standard multiplexing problem.