Laser Transceiver (laser Data Link)




How to connect two computers (networks or any other electronic devices) with a laser data link.

Most used to connect lan networks between buildings this is a cheap and secure way to send information without broadcasting as RF or wifi links.

This project was developed in my course of robotics for high school junior level, is very cheap and easy to build.

What we get?... communicate two computers over 1100 feets (345meters).

See step 1 below.

Step 1: What We Need?

The laser transceiver consists of two identical devices.


Both endpoints have the following electronic items:

- Microcontroller ATmega168 to 20MIPS.
- Visible light laser 650nm 5mW of power.
- Trigger for the laser based on a MOSFET IRF9630
- Receiver based in three photodiodes of visible light SFH203.
- 50mm Reflector to open the receiving surface.
- USB to Serial Converter at TTL levels.
- Power via USB or battery of 4.5-5V.

Optionally if you need a long distance you must build an accurate pointer system as this based in screws.


- Atmega168 + self-made board = 10 euros
- USB-Serial converter = 4 euros
- Mosfet = 1 euro
- Laser = 3 euros
- Photodiodes = 1 euro
- Torch (only use the reflector) = 2 euros
- hardware & cables = 5 euros.

About 25 euros each transceiver.

Step 2: Electronics

You can use Arduino, Pinguino or any other development board, as we are learning we decide to build our own.

attached the schematic, board design and some pictures about construction.

What you can get?

Our system with cheap lasers, mosfet and photodiodes work at old modems speed.

We use Atmega168 at 20MIPS so working with high quality lasers you can get near 10Mbits/s, using faster microcontrollers, lasers and receptors... no limit. Seeking internet you can get information about military investigations, NASA and ESA too are working with Gigabits.

The final speed depends on your resources.

Step 3: Software


The microcontroller firmware has been developed in C language using the manufacturer IDE (AVR Studio) and compiled with GCC compiler. The communications protocol between transceivers has been custom made, but is currently based on ASCII standard system. We decided to do it this way so we could do further research about encryption and data compression. The latest change has been to implement a system checksum to verify data integrity

We develop the communications software between the computer and transceiver for Linux (Python + GTK) and Windows (Visual Studio).

¿too much work?... don't worry.

If you use Arduino, Pinguino or any other board you can make it easy simply connecting the laser and the receptor to any TxRx pins (hard or soft configured).
The PC software can be any communication software like hyperterminal or the same Arduino IDE utility.

Step 4: Videos

Two videos.

The system working.

Laboratory testing the protocol


Participated in the
Wicked Lasers Contest



    • Barbecue Challenge

      Barbecue Challenge
    • Games Contest

      Games Contest
    • DIY Summer Camp Contest

      DIY Summer Camp Contest

    49 Discussions


    11 months ago

    thank you for this project , but how can I do this work via aurdoino ?? can you help me please ? i do Master research about sending data via laser .

    my E-mail :


    1 year ago

    Do I require any Files for Code writing in Windows.
    Plz can you send me program requirements and Codes for Windows,
    Sorry but I'm a Very new to Electronics,
    Thanks for Project,


    Reply 7 years ago on Introduction

    Is the tittle... "data link"

    You can use any terminal software (as Hyperterminal of windows) with serial protocol or make your own program using com ports, you can see a video in step 4.


    Reply 1 year ago

    Videos no longer available


    6 years ago on Introduction

    I wanted to communicate two Computers Via Laser beam (same as above using unguided media, no optical cable, wireless communication):
    Please do share with me. Also If you able to create that type of hardware, tell me the cost and time u complete.
    Hope you understand what I needed, Thanks for your time and consideration, waiting for your response.
    Thank you
    Muhammad Arsalan Bukhari
    Call: +92-346-3242448

    1 reply

    Reply 1 year ago

    If you get to know about the Project (2-way) plz send to me too, Iam also confused


    2 years ago

    Correction the Wiznet W5100 ethernet


    2 years ago

    Ever thought of taking SPI out of the Atmega 168 directly to a MAC enabled ethernet chip?


    5 years ago on Step 4

    Interesting project. I've stumbled on this one trying to find out some details for my own project. I'm thinking of hacking a couple of media converters. Get two second hand Ethernet to fibre optic media converters and put a laser / photo diode set up on the front end of each converter. Did you try any thing like that ? I think if it works it will make things a lot easier as you'll get 10/100 mb speed and wont need any other hardware as both computers will think they are on normal Ethernet network. I actually want mine to work under water but that's a different story...

    3 replies

    Reply 3 years ago

    Did you ever try the media converter hack?


    Reply 3 years ago

    Yes, it works well providing you get fast enough leds. Problem it the faster you modulate the shorter the distance. We had some success with laser diodes as well but overall it didnt work for my project so got scrapped. But it is worth developing, if you try it let me know how you got on...oh and be careful with the media converters and their not sure but i guess they could damage your eyes si dont chance it.


    Reply 2 years ago

    Hey Perfo,

    I have limited data internet over the phone and it is expensive compared to line internet. Obviously. Can't use RF based solutions as there is a huge possibility of interference due to unavailability of fully clear line of sight. But I do have a line of sight.

    Can you please share a little more details about your hack. Can you give out details of the media converter, LEDs, receiver and other hardware that you used for the project and what were the problems that you faced? I would really appreciate if you give out these details.

    Thanks in advance


    3 years ago

    I doubt this is fast enough for quality data transfer and that laser and photodiode is probably not fast enough to operate in the MHz stably. I would recommend an avalanche photodiode and an IR laser diode (850nm or 1310 nm).


    Reply 3 years ago

    You just can Connect the Laser to Pin 0 (TX) to the laser and connect the photodiode to 1 (RX).
    Do so with 2 Arduinos. Now set a Low Baud (1200) and Print Something in the Serial Monitor on the First Arduino and it will Echo at the Second!


    5 years ago on Introduction

    Hello everybody,

    I am really interested in that project, but I notice some lake of information.

    For example the value of the two capacitors, the value of the resistance behind the Mosfet.

    I also think there is a mistake in the simplified schema.

    I am trying to improve the PCB design and will post an Eagle link of it.

    Please, I need those informations to complete the schema.

    Can anybody give me a hint ??

    1 reply

    Reply 3 years ago

    The resistor behind the mosfet is 10k, but i cant make out what the one next to the LED is... probably like 100 ohm?
    Theres only one capacitor, 100nF (yellow)
    The orange one is a 20MHz resonator :)


    5 years ago on Introduction

    Interesting project, I've been trying to rebuild much of the stuff here. However, I've so far encountered a few problems.

    First, I don't think your MOSFET connection is correct. The Vcc input should be placed in series with the laser diode and the Drain pin of the MOSFET. I tried it this way instead and it worked.

    Second, I tried to connect the photo-diode using the same circuit as yours although I tested it in two load resistor sizes - 100 K and 3 M. I noticed (Using a othoscillope) that the photo-diode circuit exhibits a RC effect where on the switch off stage, the voltage gradually drops off rather than instantly. This problem is really serious because that drop off thing is a constant value in time. So if I notice this RC effect on say 1kHz, I'm going to have huge problems at 10kHz since that RC constant will become very large (Look at attached images).

    This problem gets worse when I increase the resistance (Once again, refer to the attached images, pay extra attention to the frequency written on the bottom of the graph). So how did you resolve this RC issue in your project?