I dug out the file CircuitNotes.txt from the file DIYmaresIRcableVer2.zip. Maybe
the information in it will help.
Homemade Serial MARES I.R.I.S. to AirLab Dive Computer Interface Cable
Mike Engelhardt Version 2 01/22/07
This is the second version of my I.R.I.S. serial Interface Cable.
While the first version works fine, I wanted to make an optimized
version with fewer and yet more generic parts. Now I have two
working cables. This 2nd version is simplified from my 1st version.
The transmitter side of this cable is now very simple, powering
itself directly off the Tx pin and using only two generic
transistors, 5 resistors, 3 capacitors, a diode, and an IR
emitter -- instead of a Xtal and some high voltage CMOS devices.
When I did the first version, I didn't know that the baudrate was
9600. I simulated Edward Cardew's receiver design and it looked
marginal for 9600, though it does certainly also work. But I felt
that it would be better if the cable was designed to have smaller
timing errors.
The simulation file, Timing.asc, shows this receiver running side-
by-side with the Edward Cardew design so you can see the improved
timing characteristics with a random bitsteam. The Edward Cardew
design is fine for a square wave, but for random data, it has
pretty large timing errors. Notice that the start bit can be
40% too narrow.
The transmitter works from 0" to 5"(13 cm). The receiver can be
adjusted to work also to this distance, but I've adjusted the
design to only work to 2 cm for improved rejection of ambient
light.
1. The cable was tested with IRIS version 2.2.2 and an AirLab.
2. The baud rate is 9600 baud, 8 bit, no parity, one stopbit,
no hardware handshake, no software handshake. DTR must
be set high. IRIS sets your port to these settings.
3. The IR is 56KHz CW or ASK(Amplitude Shifted Keying). A
multivibrator type oscillator made with 2 cross-coupled 2N3904's
powered directly by the Tx signal works fine and saves procurement
of the high voltage CMOS devices and Xtal.
4. The cable must echo data transmitted from the IRIS software back
to IRIS. The signal echoed back is mostly due to capacitive
coupling between the transmit and receive IR diodes. The original
version of my design had a bipolar signal for Rx because that
is the RS232C spec. I was going to use the Tx pin as a negative
supply, an idea I got from the Mouse Systems serial mouse I
cannibalized for this project, but as this echo occurs during
the Transmit, I just used the comparator to bring Rx to ground
-- a technique one can usually get away with -- because this
negative supply would not be available during this echo.
The photograph Cstray.jpg is an oscillogram of Q4's collector
voltage with the Tx pin is high showing the coupling between
the transmitter and receiver that causes the echo. The simulation
file Cstray.asc shows that 0.2pF can cause this.
5. You can debug the receiver to some extent with a consumer
electronic IR remote control, though these seem to usually run at
a 40KHz instead of 56KHz and at much lower baudrate. This allows
you to at least see if you can detect IR without the transmitter
side runing and capacitively leaking signal into the receiver.
6. If the AirLab receives a command it doesn't understand, it
sends <?3F> to IRIS.
7. IRIS and AirLab transmit data as ASCSII Hex characters enclosed in
angle brackets. Below is how the dialog starts out with an AirLab:
IRIS to AirLab: <5180000DA2>
AirLab to IRIS: <5180000DA2><000100001A50000000000D0E0021>
IRIS to AirLab: <512000078F>
AirLab to IRIS: <512000078F><00000000000000A0>
IRIS to AirLab: <5100013C9D>
AirLab to IRIS: <5100013C9D><07D30701021A001A014D12700
0A0201000000064FFFF0000000000040A3B0
F6E0F6E0F6E0F6E0F6E0F6E0F6E0F6E0F6E0
F6E32640C1A000000000F00C3>
IRIS to AirLab: <513C013CB3>
The file Eavesdrop.txt contains the entire log from downloading
the dummy dive that is in the AirLab as it leaves the factory.
The file is acquired by eavesdropping on the RS232C connection with
another PC. Multiple runs showed that the cable runs shows this
cable makes no bit errors. It takes 1min 20sec to read this file.
BTW, it'd be nice if someone could figure out how to read it, or
at least how the last two character checksum is computed.
8. Its extremely useful to have a terminal program so you can
send <5180000DA2> down the cable and listen for
<5180000DA2><000100001A50000000000D0E0021> to come back to
see when the cable and positioning is correct. Once the
cable is working correctly, it's quite insensitive to position
and aim. The console program CommTest.exe supplied in this
release works great for this.
Regards,
--Mike