Friday, April 4, 2014

Explorer DVL Wiring

It is unfortunate how much time has past trying to make this device work, and kind of sad to realize how easy it was in the end, but after a few phone calls and several strait hours of effort, our team finally managed to pull data from our Explorer Doppler Velocity Log from RD Instruments:


The problem was the wiring from sensor to computer. The documentation also was a little vague - indeed, a pinout table can be found on page 12 of the manual, but there are no further details about what the pins actually do like an integrated circuits' manuals would. Here are the pins and their values:
  • 1: RX+  Messages received by the DVL Unit it's self.
  • 2: RX-  (Differential pair - RS422)
  • 3: TX+  Messages transmitted by the DVL Unit it's self.
  • 4: TX-  (Differential pair - RS422)
  • 5: COMM 1_2  0 = Com 1 (DVL Unit); 1 = Com 2;
If additional sensors and other devices were to be integrated with this as a full system, these pins would be used. (Our team never had a need as all other sensors were driven with real-time units)
  •  6: RX2+;   7: RX2- (Diff. Pair);
  •  8: TX2+;   9: TX2- (Diff. Pair);
  • 11: RX3+;  12: RX3- (Diff. Pair);
  • 13: TX3+;  14: TX3- (Diff. Pair);
  • 15: COMM 3_4:  0 = Com 3; 1 = Com 4;
  • 16: RX4+;  17: RX4- (Diff. Pair);
  • 18: TX4+;  19: TX4- (Diff. Pair);
In some cases, a vehicle may contain more than one DVL and one cannot ping at the same time another does, otherwise things would end up in complete chaos. So, if one wishes to use say 4 at the same time, they would need a way to synchronize the pings. This can be done with the following pins: (NOTE: the following values are out of speculation, nevertheless their function has been confirmed by the engineers at RDI)
  • 21: TRIG_IN   0 = wait; 1 = ping;
  • 23: TRIG_OUT  0 = busy; 1 = finished;
And the various other pins that are good to have:
  • 33: CHAS_GRND  This would attach to the vehicle chassis
  • 34/35: VDC+  12-24V 3A MAX
  • 36/37: VDC-  0V 0A
Now for the solution to our original problem - how to wire the device to a computer - for that I drew up a valuable schematic:

DB37-1 is connected to DB9-3: RX goes to TX
DB37-3 is connected to DB9-2: TX goes to RX
DB37-5 is connected to DB9-5: COMM 1_2 goes to GND

(I want to note that I happened to mix up pins 1 and 3 causing me grief for several hours. I didn't catch this silly mistake until I used an Arduino Uno to intercept the serial messages. The Arduino was reading data on the TX line but what's funny is that the data it was reading, originally came from the computer and not the DVL, Oops. In the end I ended up with TX to TX and RX to RX - that surely is not going to work, switch 'em around!)

Next, for up-to-date systems, a simple RS232 to USB adapter can be used. RDI recommended us the EasySYNC ES-U-1001, though I've tried another brand and the result was still the same.

With BBTalk (or the Arduino COM port), one can send and receive messages to the DVL.
Project: Success!

No comments:

Post a Comment