I was recently watching the TV show Modern Marvels where they were doing this episode on “glass” and spent some time showing how fiber optic cables work. They showed that the concept of total internal reflection also applies to water (I believe they had the bucket of water with a hole so water was flowing out of it in a curved shape with a laser beam bouncing through the stream.. if not I saw it somewhere else). I was curious if I could fill a rubber hose with water and transmit data through it using a bright LED using this property.
I ended up getting it working and it’s like… speed of light fast! Well, speed of light blinking UART at 9600 baud. I used a Microchip ATtiny85 that basically relays the signals from a USB/UART cable. When the micro detects the UART TX as signal high, another pin on the micro is set high which drives a 65,000 mcd LED through a transistor. On the other side of the system is a 850 nm photo diode connected to an opamp. The ATtiny85’s ADC queries the voltage on the output and if the voltage is above a threshold it will set the pin connecting to RX high.”