DIY – Dive-computer PC Interface

DIY – Dive-computer PC Interface
For Cressi-sub Archimede I/II, Apeks Quantum, DiveRite Nitek Duo,
Version: 1.3
Date: November 2006
©2006 by Daniël Abrahams
Connecting your dive-computer to your PC to retrieve information about your dives, such as
your diving profile, tissue loading, is an interesting feature. However, for many divecomputers, the needed interface to connect your divecomputer to your PC is extremely highly
Therefore, building such an interface yourself is an interesting option. Thanks to the help of a
few fellow-divers who sent me pictures from their opened PC-interfaces and thanks to a lot of
reverse engineering, I managed to derive an easy-to-build PC-interface for a complete range
of dive-computers originally manufactured by Seiko.
This document presents a manual for building a low-cost PC-interface for the Cressi-sub
Archimede I/II, Apeks Quantum, DiveRite Nitek Duo, TUSA IQ-700 and perhaps even some
other dive-computers originally made by Seiko. This interface can be connected to a standard
or slightly modified USB-to-serial adaptor cable or directly a serial port.
Although very unlikely, the use of the information in this
document may damage your PC or your divecomputer. The
author cannot be held responsible for any damage
occurred by using this information. Use this information at
your own risk!
Terms of usage
The information presented in this document may be used
freely for NON COMMERCIAL use ONLY!
DIY – Dive-computer PC interface
Page 2
Circuit Description
The actual schematics and PCB layout can be found at the end of this document. Below you will find the description of this circuit.
Input circuitry (pc to divecomputer)
The input circuitry consists of only one transistor. Transistor T1 is the pull-down transistor that pulls the data-line to ground. Resistor R7 limits the current to the
resistor, while diode D7 protects the transistor from any negative base voltage, when the TXD-line is low (which is between –5 and -12 volts). T1 also inverts the data,
since a zero is represented by a negative voltage, while a one is represented by a positive voltage on the TXD-line.
Output circuitry (divecomputer to pc)
Transistor T2 amplifies and inverts the data coming from the dive-computer. R5 limits the current to the base of T2. Transistor T3, diode D9 and R6 form an active pullup. This is done to save current, while maintaining switching speed. R4 keeps the data line high when no dive-computer is connected. This makes sure that the dataline is in a defined state (zero).
R3 and zener-diode D8 limit the supply voltage to this stage to 4.7 volts. Since the voltage on the base of T2 is about 0.7 volts, the voltage between the divecomputer
pins is about (4.7 – 0.7) * (100k / (100k + 100k)) + 0.7 = 2.7 volts, which is sufficient and not dangerous for the divecomputer. D8 also makes sure no negative supply
voltage reaches the positive divecomputer pin.
It should be noted that the output swings from 0v to +5…+12 (depending on input voltage). Although this is not completely within the specs of a serial port, almost all
serial ports correctly detect such voltages.
Power supply
The power supply serves two purposes. The first is to protect the dive computer from any negative voltage on its inputs. The second is to derive a positive supply
voltage if only negative supply voltages are available on the serial port outputs. This is needed since the software does not pull any of the outputs high anymore, when
the altered USB-to-serial cable is used.
D1, D2, D3, D4, C1 and C2 form a rectifier circuit to rectify the incoming supply voltages. D1, D2 and C1 rectify the positive supply voltage, while D3 and D4 and C2
rectify the negative supply voltage.
The power conversion is done by a switched capacitor charge pump. IC1 (a very common 555 timer IC), R1, R2 and C4 form an oscillator with a push-pull output
stage. This output stage can deliver up to 200(mA) and is therefore ideal for our application. Combined with C3, D5 and D6, a voltage doubler is formed. C5 is added
to suppress any spikes on the supply voltage, since the peak currents can be relatively high.
Although a ‘real’ voltage doubler (such as the MAX860) would probably perform better, availability is certainly an issue with these IC’s. Also, the output does not have
to be regulated as well, since the voltage on the dive-computer output stage is already limited by D8 and R3 to about 4.7 volts.
Connector X1 (a female SUBD-9 connector; not shown in schematic) is connected through a 4-wire cable to the interface. Pins 1, 4 and 6 and pins 7 and 8 should be
interconnected. This is done to ensure that in the case when hardware-handshaking is enabled, the data is still available and no timeouts occur.
DIY – Dive-computer PC interface
Page 3
USB interface
Unlike the Suunto software, all versions of PCLogBook (except the software supplied by Cressi for Cressi Cressi Archimede I/II divecomputer) can ONLY connect to a
USB interface. This makes the interface a bit more complicated.
The original USB PC-interface uses a Prolific PL2303X USB-to-serial converter chip, which is also found in many USB-to-serial converters. An extra EEPROM (nonvolatile memory) is added to set a custom VID (Vendor-ID) / PID (Product-ID) to prevent the OS to detect it as a standard USB-to-serial cable.
To save components, the EEPROM is almost never included in standard USB-to-serial converters. However, on many of these converters, space is reserved on the
PCB to mount the EEPROM.
To make an interface that works with the PCLogBook software, 2 options are available:
1) Modify the software to make it work with an unmodified USB-to-serial cable
2) Modify an USB-to-serial cable
Below you can find how to do this for both options. It should be stated that the ‘modified USB-to-serial cable’ option is the best option, since no patches are needed
and is guaranteed to work in future versions of the PCLogBook software.
NOTE: The Cressi version of PCLogBook (for use with the Cressi Archimede I/II divecomputer) can use the serial PC interface directly on a standard serial port.
Therefore, Cressi-users can skip this section.
Modifying the software
Michal Zuberek has made a few patches to remove the VID/PID check of the PCLogBook software. This patch makes it possible to use an unmodified USB-to-serial
cable with the (patched) PCLogBook software.
To use this option, 3 things are needed:
1) A patch for your version of PCLogBook
2) An unmodified PL2303-based USB-to-serial cable
3) A modified driver for the cable
The patches and the modified driver can be downloaded from my website: (see downloads section)
First, install the PCLogBook software. Then, apply the patch to this software. Then, plug-in the unmodified USB-to-serial cable and use the modified USB driver as the
driver for this cable. If no driver could be selected, go to the ‘Device Manager’ window and select ‘Update Driver’ for the new USB-to-serial cable.
DIY – Dive-computer PC interface
Page 4
Modifying an USB-to-serial cable
As stated earlier, the VID/PID is stored in an EEPROM. This EEPROM is not mounted in standard USB-to-serial interfaces, but for some reason the SMD mounting
pads are already on the PCBs of a few (maybe many more) standard USB-to-serial interfaces.
The first step is to program the EEPROM. The EEPROM used in this project is a 24C02 serial (I2C) EEPROM in SMD format. The EEPROM can be programmed with
any EEPROM programmer hardware and software that supports the 24C02. PonyProg by LancOs was successfully used by the author. The (serial) interface itself
consists of only very few parts.
The data-file containing the EEPROM data can be downloaded from my website: (see downloads section)
Once the EEPROM is programmed, the next step is to open the case of the USB-to-serial cable. This is a quite tricky job. In many cases, a very sharp knife is needed.
Be very careful not to damage the PCB itself. Once the case is opened, the EEPROM can be soldered into place on the PCB.
Figure 1: On the left the unmodified USB cable after cutting away the rubber case. The empty place for mounting the EEPROM is encircled.
On the right the modified USB cable.
Be carefully to mount the EEPROM in the correct direction (see the marking on the PCB and the EEPROM). The driver for this cable is supplied with PCLogBook.
DIY – Dive-computer PC interface
Page 5
Building the interface
Building the interface yourself is relatively straight forward. You have to options for the board. One options is to make the PCB yourself, while the other option is to buy
veroboard and built the schematic onto it.
Special care has to be taken when the diodes are placed. Every diode has a ring that marks the cathode. The diode should be placed exactly as drawn on the
component side of the PCB. Also the capacitors and the IC have a marking that should correspond to the drawing on the component side of the PCB. Note that D1 to
D7 can be any low-power diodes, preferably Schottky ones, which have a lower voltage drop across them. Do not use 1N4001…1N4004 diodes. These diodes are
used in mains rectifiers and are too slow for this application. They also don’t fit very well on the PCB.
D8 is a Zener-diode of 4.7 volts. A normal diode will certainly not work here and might possibly damage your divecomputer. D9 must be a 1N4148, or at least a
‘normal’ diode, which has a voltage drop of about 0.7 volts, otherwise the output circuit won’t work.
Make sure you don’t overheat your components when soldering them. To prevent the IC from overheating, you might want to place it in a DIL8-socket. If all the
components are placed, check again if they are placed in the correct way.
Do not forget to mount the 4 wire-bridges near the SUBD-9 (DB9) connector. If correctly built, your interface should look like this:
Figure 2: Assembled PC-interface
DIY – Dive-computer PC interface
Page 6
It is also possible to cut the board as pictured below and mount the SUBD-9 connector via a 4-wire cable to the PCB. This may be handy if you want to place the
connector outside the case and connect it through a cable.
Figure 3: If you don’t want to mount the SUBD-9 connector directly to the board,
Cut the board on the red line as shown in the picture above
Make sure not to damage any of the wires on the PCB.
On the SUBD-9 (DB9) connector (female), pins 2, 3 and 5 should have a separate wire. Pins 1, 4 and 6 are interconnected. Together they share another wire. Finally,
connect pins 7 and 8 to each other. Now, solder the other end of the cable to your divecomputer interface. The wire connected to pin 2 should be connected to ‘R’, the
wire to pin 3 to ‘T’, the wire to pin 5 to ‘0’ and the wire to pins 1, 4 and 6 to ‘+’.
A schematic of these connections can be found in the figure below:
Figure 3: Back (solder) side of the SUBD-9 female connector and the connection to the divecomputer interface.
DIY – Dive-computer PC interface
Page 7
Testing the interface and troubleshooting
Before connecting your divecomputer for the first time, it is very important to check if the circuit is working properly and does not blow-up your divecomputer. Although
the circuit is designed in such a way that this is very unlikely to happen, even if a part is wrongly connected or broken, it might be possible.
Connect your serial divecomputer interface to the USB-to-serial adaptor cable or the serial port. Make sure, the USB-to-serial adapter cable is connected to your PC
and the driver is installed correctly. Now, connect a multimeter to the divecomputer connection pins (DC+ and DC-) of the interface. The measured voltage should
have the correct polarity (DC+ positive, DC- negative) and be between 1.5 volts and 3.0 volts. If that’s the case, you can test the interface with your divecomputer.
If the voltage is lower than 1.5 volts, check if D7 and D8 are broken or not properly connected. If D7 and D8 are correctly connected, check the voltage between the +
pin and the – pin of C1. This voltage should be between somewhere between 4 and 12 volts. If that is not the case, check the voltage between the + pin and the – pin
of C2. This voltage should also be somewhere between 4 and 12 volts. If that is not the case, check if you have properly connected the USB cable and that you have
installed the USB driver. If the voltage is still too low, see appendix B on how to add an external supply.
If the voltage is higher than 3.0 volts, check if D8, R5 and T2 are broken or not properly connected.
If the voltage between DC+ and DC- is correct, but the divecomputer software responds with: ‘Please confirm the mode of the divecomputer’, check if the
divecomputer is set into the PC-mode (by pressing the mode button multiple times until it shows ‘PC’ on its display). If your divecomputer is in PC-mode, but you are
still not able to download data from your divecomputer, check if you have connected the SUBD-9 connector correctly to the divecomputer interface and if you have
connected the divecomputer interface correctly to the divecomputer (should be oriented as shown on page 1 of this document).
If you are still not able to download data from your divecomputer, disconnect the divecomputer, but leave the divecomputer interface connected. Now measure the
voltage between the output ‘R’ (positive) and 0 (negative). It should be about 0.7 volts. If it is higher, check R5, T2 and D9. Now short the DC+ and DC- pads (the
divecomputer pads on the divecomputer interface) and measure this voltage again. This voltage should now be higher than 3.0 volts. If it is the same, check if R6, T3
and D9 are broken or not properly connected.
DIY – Dive-computer PC interface
Appendix A
Page 8
Dive computer internals
The communication from and to the dive-computer is basically a simple pull-down 2-wire interface, but is slightly different from (for instance) the Suunto computers.
Figure A1: Internal and external data I/O
Both the interface as well as the dive computer can pull-down the data line low. Unlike the Suunto dive-computers, the Seiko dive-computers have an internal pull-up
resistor of about 12k, which is connected to the internal supply of 3.0 volts. A zero is represented by a 3 volts, while a one is represented by 0 volts. This is another
dissimilarity with the Suunto dive-computers, where the data is not inverted.
Since the dive-computer already has a pull-up resistor, a relatively large pull-up resistor in the pc-interface can be used, since this resistor is only needed to keep the
data line in a defined state (high) when the dive-computer is not yet connected.
The communication is pretty slow with 1200 baud, 8 bits, 1 stop bit and no parity.
DIY – Dive-computer PC interface
Appendix B
Page 9
How to connect an external supply
Some USB-to-serial cables are not capable to deliver enough current to supply this interface. In that case, the interface will not work. To make it work, disconnect pin
1,4 and 6 or cut the ‘+’ wire-bridge. Then, connect a 9v battery between ‘+’ and ‘0’, as shown below:
Figure B1: An external supply can be added in case the USB-to-serial cable
cannot deliver enough current to supply the interface.
In the above picture, the red wire is connected to the ‘+’ of the 9volt-battery, the black wire is connected to the ‘-‘ of the 9volt-battery. Make sure to connect the battery
through an on/off switch, to prevent the battery to be drained by the interface when it is not used.
DIY – Dive-computer PC interface
Appendix C
R1, R2, R4…R7
C1, C2, C3
10uF (electrolytic, 25Volts or higher)
BAT81, BAT85 or any other low-drop equivalent
Low-power zener diode 4.7V
NE555 or any other equivalent
Other materials
9 pin SUBD female connector (PCB mounted or wire-mounted; see chapter 3 for more details)
4-wire (data) cable (optional; see chapter 3 for more details)
Page 10
DIY – Dive-computer PC interface
Appendix D
Revision history
May 2006
First version of this document
May 2006
Error corrected in the part list of the schematic. Value in schematic and other text was correct
Added software patches text to the USB-options section
June 2006
Schematics and PCB layout changed (SUBD-9 connector removed from drawing)
Added part list
Added connection SUBD-9 connector diagram
Nov 2006
Overall update
New PCB layout added
Page 11