Data Over Light: a Laser Modem Prototype




Introduction: Data Over Light: a Laser Modem Prototype

This project was motivated by a desire to analyze and discuss the shortcomings of our dependence on corporate communication networks.

As we keep delegating more and more of our daily lives to fewer and fewer digital platforms, using wires and towers owned by a handful of telecommunication companies, and watched over by an even smaller number of agencies, it becomes important to consider practical and conceptual alternatives for our affections.

On one hand, a laser modem provides a very direct, secure and personal communication channel that can be built to connect points at distances much greater than WiFi could cover.

On the other hand, the point-to-point nature of the link and the fact that it relies on a very thin beam of light to transmit data make it very susceptible to misalignment, interruptions and interference.

A most tenuous connection indeed!

As this is mostly a proof of concept and art installation, we focused on getting one-way communication working, but the circuits could easily be replicated to build two-way transceivers.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Some References

A couple of other groups and individuals thinking about similar issues:
The Consortium for Slower Internet
Critical Engineering (Julian, Danja)

Technical inspiration:

NASA: They have a history of research on long-distance data transmission using lasers (LCRD, LLCD, OPALS). That’s how they get internet to the ISS and the moon.

Ronja: This design from a group in the Czech Republic uses car brake lights to transmit data at 10Mbps.

Laser gun game: This is the most interesting for this kind of prototype, but we couldn’t get the tone decoder PLL ICs in time, and designing the filters can make for an interesting second version. We decided to focus on a simpler version of this.

Laser Transceiver Instructables: This is a good starting point, but we couldn’t get it to work at distances greater than 1 meter, much less 345 meters. There’s no way a 5mW laser and a single photodiode produce enough current, with low enough noise, for the ATmega168 to pick up. I also don’t think a 5mW laser with crappy optics can go 345 meters.

Step 2: Circuits and Materials

1x Transmitter:

1x RaspberryPi
1x n-channel MOSFET (FQP30N06L)
1x 2.2k ohm resistor
1x 100 ohm resistor
1x laser (650nm 5mW)
1x mini tripod ball head

1x Receiver:

1x RaspberryPi
1x 1M ohm resistor
1x 330k ohm resistor
1x 4.7k ohm resistor
1x Op-Amp IC (LM358)
6x Photodiodes (SFH213)
1x styrofoam cup

The transmitter circuit gets connected to the serial Tx pin on one of the RaspberryPis, and the receiver circuit to the serial Rx pin on the other Pi. You can have both a transmitter and a receiver on each RaspberryPi, you just have to double the amount of components.

Step 3: Assembly

No secrets here. One thing to note is that we used 6 photodiodes in parallel. This increased the area of “contact” for the receiver and also increased the amount of current being generated by the photodiodes. We also discovered that by covering all the photodiodes with a semi-transparent plastic also increased the reception area and improved the receiver’s resilience to movements.

We also attached the laser pointers to a mini tripod ball-head to help hold it in place.

Step 4: Code

Since the transmission happens over UART serial, all the code has to do is write/read to/from the Tx/Rx pin. Simple code for testing the connection is up on github.

There’s also a bit of code there for fetching and transmitting content from an XML file over the laser connection.

There’s also code for testing the circuits on Arduinos instead of Raspberry Pis.

Step 5: Testing

A short video showing the laser modem prototypes being tested with a simple message.

This worked reliably at 18 meters and 14kbps. It could do 57kbps at 5 meters.

We didn’t test it past 18 meters because that’s how big the room was, and 18 meters was enough for our purposes. Seeing how speed decreased with distance (probably due to noise), we don’t think this setup would work at 50 meters.

Step 6: Installation

The installation consisted of a modified WiFi router perched up high in a church that has been converted into an exhibition space and cultural center. The router keeps track of what kinds of sites and data people are accessing over the WiFi network and transmits that information via laser down to a projector.

The idea was to make a connection between former structures of power and knowledge and contemporary mechanisms of control. A most tenuous connection indeed! Despite all our scientific advances, we still look to the sky with reverence, for answers.

Be the First to Share


    • Magnets Challenge

      Magnets Challenge
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest

    10 Discussions


    3 years ago

    Will it work with aurdino?


    Reply 3 years ago

    Yes ! Same circuit, but different code.
    I've been using a differentcircuit for the receiver.
    If you need faster rates....


    Reply 3 years ago

    Can you please give me the code for using Arduino for the same


    Reply 3 years ago

    The Instructables interface mangled the link...
    It's only code to test the connection.


    Reply 3 years ago

    K thank you, I will proceed with it for now. If I have any trouble please do rectify it. I am basically from CSE background thats why struggling a bit. Thank you till now. :)


    Reply 10 months ago

    Did u completed you project? I'm facing challenges when doing with arduino? Can you respond to few of questions?


    4 years ago on Introduction

    I had used Lasers in voice communications and sounds good with your concept too.


    Reply 1 year ago

    Samiran have u tried with blue laser 1w?
    I am highly interested on your findings. I want to try a voip/laser would u be interested?


    2 years ago

    hi ,, i used your idea put i replaced the photo-diodes with solar panel (12 v max ) the raspberry is sensing the incoming data but doesn't shows the message it just show a blank lines ... any help ??