Blog Home

Building a DIY laser modem

Arduino TeamAugust 8th, 2022

All digital communication ultimately comes down to transmitting ones and zeroes, but there are many ways to achieve that. One can encode that binary data as modulation in a radio signal or simply pulse electricity through a wire. But one of the most interesting methods is optical. Flashing a light is a great way to transmit data over long distances at high speed. Fiber optic cables are the most common medium, but it is also possible to shine light through open air. To demonstrate this concept, Nino Ivanov built his own laser modem.

In theory, this should be a very straightforward device: just point a laser at a photoresistor. Pulse the laser so that it is on for ones and off for zeroes. Then measure the resistance of the photoresistor to read those ones and zeroes. But as Ivanov explains, there are two issues with this setup. The first is that photoresistors are slow to respond to light changes and that severely limits the data transmission speed. The second issue is that it isn’t always obvious what is a zero bit (no light) and what is an absence of data transmission altogether.

Luckily, computer scientists solved the second issue many decades ago. There are several transmission protocols that utilize tricks like parity bits and handshakes to ensure synchronicity. Ivanov was able to utilize those techniques for half-duplex laser communication with his custom hardware setup. That hardware consists of two Arduino Nano boards (one for each side of the communication), two red 650nm solid-state laser diodes, and two photoresistors. Ivanov wasn’t able to overcome the slow transmission time — there is no overcoming the physics of standard photoresistors and Ivanov didn’t want to switch to more expensive photodetectors.

As it stands, this laser modem can transmit around 10 bits per second. That is very slow, but this project is still a fun way to experiment with laser data transmission. If you want to play with faster speeds, specialized photodiodes for the telecom industry can detect optical signals modulated at several gigahertz — though they are quite expensive. 

Boards:Nano
Categories:Arduino