How to transmit data underwater?

bigolbug:
Unfortunately i have not written any code regarding data to bit conversion so i do not know what is possible at this point. However if the arduino is only transmitting numbers i assume i should easily be able to do so in fewer bits. For the transducer to rotate and transmit i will need to send sets of data (pressure, temperature, orientation...) in 1/18 of a second. Would it be good to separate sets of data with a third frequency to avoid misappropriation on the receivers part? Something like 190.5 kHz, 200 kHz, and 210.5 kHz with 190.5 as the error check frequency?

Concentrate on getting some simple data transfer working. When you have done that, you can test how robust it is and try high baud rates and/or different encoding methods. I would keep it simple and use FSK with 2 frequencies and standard serial asynch protocol to start with. That way, you can feed the output of the receiver into the RxData pin and have the mcu handle the synchronisation.

Later on, you can try using 4 frequencies to get double the bit rate, but the decoding will be more complicated.