Next project
Outreach Initiatives and Community Awareness

Make Optical Point-to-Point Network That Downloads and Uploads Data Between Two Computers: An Introduction to Optical Communication

Video Demonstration

Short demo of how the Point-to-Point laser communicator works:


This lab exposes you to the mode of operation that drives all optical communication in 21st century:

  • Transmitter Encoding
  • Structure to Convert Information Into a Pulse of Signals
  • Optical Carrier of Encoded Signal
  • Receiver Decoding
  • Computer System Showing the User Communicated Message/Data

Materials List

Arduino UNO Micro-controllers2
TIP31CFS NPN Transistor1
Laser pointer that uses 3x 1.5V watch batteries1
Paired Alligator Clip1
AA batteries and holder3 and 1
Photo-resistor or Light Dependent Resistor or CD's cell1
OP27 op-amp1
10kΩ Variable Resistor, also known as Trimmer1
1MΩ Resistor1
470Ω Resistor1
1kΩ Resistor2

Software Tools

  • Arduino IDE — to program the Arudino UNO Micro-controller


Build the transmitter

  1. Remove the batteries from the laser pointer
  2. Find the spring on the bottom of the laser pointer. Stretch it out and solder a wire onto it. Cover this connection with tape. This wire is the negative terminal of the laser pointer
  3. Clip the alligator clip to the side of the laser pointer such that one half of it is inside the battery compartment while the other half is outside. Ensure that this connection does not touch the negative terminal (spring). This wire is the positive terminal of the laser pointer
  4. Assemble the circuit following the circuit diagram or schematic shown in Figure 2 and Figure 3
  5. Figure 1 The program gives instructions to the micro-controller (a type of dedicated processor) how to handle input/output in the doorbell setup.

    Figure 2 The program gives instructions to the micro-controller (a type of dedicated processor) how to handle input/output in the doorbell setup.

  6. Upload the file Tx.ino to the Arduino. Open the Serial Monitor and send something. The laser pointer should blink

Build the receiver

  1. Assemble the circuit as shown in Figure 4 and Figure 5:
  2. Figure 3 Follow this circuit diagram or schematic to wire together the bell circuitry on a bread board or a prototype board.

  3. Install on a door, of surface, as shown in Figure 6, so your bell apparatus is able to "sense" knock knock vibrations from somebody's act of knocking.
  4. Figure 4 Follow this circuit diagram or schematic to wire together the bell circuitry on a bread board or a prototype board.

  5. Plug the two Arduinos into two separate computers. Send something from the transmitting computer. Aim the laser pointer so that it hits the light sensor on the receiver
  6. With a screwdriver adjust the trimmer so that the indicator LED is on when the laser pointer is on and off when the laser pointer is off
  7. Open the Serial Monitors on both computers. Send something form the transmitting computer. It should appear on the receiving computer

Expansion and Improvement

This lab teaches students about wireless optical communications but, from a practical perspective, the data transmission rate is far too slow to be used in today's wireless society. The speed limiting factor for this data link is the photo-resistor on the receiver. The photo-resistor is only capable of receiving a signal of 20Hz or less without the signal becoming significantly distorted.

This problem could be corrected by replacing the current photo-resistor with one specifically designed to have fast rise and fall times. While this change would not be enough to send high speed network data across large distances, it would be enough to send text at a reasonable speed over a large distance and be used as a text-based chat application. There are also some other modifications that can be made to improve this data link:

  • Duplicate both circuits so that each Arduino can both send and receive
  • Add more laser pointers and photo-resistors so that bits can be sent in parallel and transmission time can be decreased
  • On both computers, run data compression algorithms to reduce transmission time. Add error correcting codes to ensure greater reliability

Advice to Lab or Project Coordinator

This lab is recommended for grade 12 students. It requires significant knowledge of computer science, physics and mathematics so it is recommended that the student as taken all those courses.

Further Readings

To have a deepened knowledge in Optical Networking and Communications, you should first gain a "knowledge scaffold and learning directions" of powerful math, science, computer technologies and engineering. Learn more as a student or teacher from free schools:

Once you feel confident, please Search with keywords "Optical Fibre", "Optical Network", "Optical Signal Processing", "Telecommunications" at UOIT Library or Open Textbooks and Open Encyclopediae:

download course code  Download Source Code (1003 bytes)
Other Projects
Gesture Pong Game
Gesture Pong Game Build your own motion tracked game and console similar to Kinect or Wii. Inside is code and design helping you make the classic Pong Game. Play the game as you move on your tv or monitor. See step by... Continue >>
Pedometer for Athletes
Pedometer for Athletes Supercharge your shoe! Use it to find issues in your run during basketball, track or soccer. Or, track the distance and stats of your jog. Help keep others keep their walk at constant pace, such as... Continue >>
Networked Thermometer
Networked Thermometer Thermometers are old. They are useful: superb tool to control experiments in science labs, monitor body heat, get weather data, save devices from overheating as your flat screen tv, and car engines. Continue >>
Self-Driving Car
Self-Driving Car Robots are smart. Here you transform your old toy car or another vehicle into a bot that follows a wavy line. Use it for shipping goods between unmanned travel ports. Real world uses are endless. Continue >>
Paper Music Player Tutorial
Paper Music Player Tutorial Play music from paper as if the paper was an "ipod". You build a system that senses capacitive touch on pencil shaded shapes on paper. With these touches music is controlled. Continue >>
Raspberry Pi Tweet to my Door Raspberry Pi Tweet to my Door Raspberry Pi connected to colour display wirelessly. Show your twitter updates on a screen attached to your door at school's club office, classroom, treehouse room. Display to your audience your... Continue >>
Arduino Lilypad Remote Mouse
Arduino Lilypad Remote Mouse Control your computer's mouse with this homemade remote-control. Build touch switches completely in software and then link the remote to the computer via infrared. Continue >>
Knock to Ring Bell
Knock to Ring Bell Make a complete musical bell system that rings with your knock. Possibly, this may reduce door banging or frustration at dormitory doors that aren't allowed to have buttoned door bells, yikes! Continue >>
Professional Circuit Drafting
Professional Circuit Drafting CAD drawing gives you professional grade circuit schematics and prototype models. Learn to communicate design of electronics and hardware innovation like the professional engineer. Continue >>
Broadcast Your Radio
Broadcast Your Radio Broadcast your music and voice wirelessly. Spread your news with your friends over short distance using radio. It is easy to make, free, and won't get CRT angry at you. Radio podcasts, chatroom uses... Continue >>
Internet Controlled Lights
Internet Controlled Lights Use internet to make lighting during Christmas or other occasions dance! Surprise your buddies with LED sequence control. Make decoration energetic during your sweet holidays. Continue >>
Arduino Tweets to my Door Arduino Tweets to my Door Arduino connected through wire to display. Show your twitter updates on a screen attached to your door at school's club office, classroom, treehouse room. Display to your audience your location at the... Continue >>

Maintained by Qusay H. Mahmoud
Content Contributors: Rudy Lang, Michael Lescisin, Rahma Mahmood, Ahmad Shamshiri, Ahmad Touseef, Mirna Zohiry