Highlights

Description

Learn more on Octanne’s LaserNet website.

LaserNet is a C++ and web project using a pair of Raspberry Pi, lasers and sensors in order to transmit data between two computers.

This was my first project in pair, and I am proud of what we accomplished. I took charge of the synchronization and communications of the lasers, while my colleague was setting up a C++ WebServer. We made a web interface to control the state of the Raspberry, and to send messages and commands to control them.

The “Net” part of the project was about transferring internet packets. We were able to read http packets, however, sending them to act as a seamless bridge is another challenge. At the end, we simplified the project to only send messages through the Raspberry Pi.

As a result, we were able to establish a communication between the two Raspberry Pi. The maximum stable transfer rate was a hundred octets|bytes per second.

HardwarePrice
2x Raspberry Pi 4 B 2GB100.73 €
4x photosensitive sensors (binary with a potentiometer)3.34 €
4x KY-018 photoresistor module (analog)1.28 €
4x KY-008 laser transmitter module (650nm 5mW 5V)1.48 €
Total106.83 €

In parallel, I developed a tool to detect plausible synchronization issues with stream reading. I present you SimLine (Sources), a DNA-sequence alignment inspired tool to compare long strings of data. Unlike diff tools such as git, this comparison tool works with values on a single line.

Context

For our ISN (Informatique et Science du Numérique, now equivalent to Numérique et Sciences Informatiques) project, we asked ourselves of the feasibility of the communication between two computers using lasers. The idea is to position two Raspberry Pi with a laser and a sensor each, in order to send and receive data.

Overview

Raspberry Pi Box made with Fusion360Sensor and laser support
The Raspberry Pi Box with 3 protections for the IO adapters in the front.
KY-008 and KY-018 gray plate in Fusion360.
The Raspberry Pi Box in an exploded vue in order to see every element.
KY-008 and KY-018 with measurements.
Dashboard and console
Dashboard on the left with temperature, CPU/RAM usage, laser status and stream stats. The biggest part of the screen is occupied by a console, in which the user typed some commands to configure the Raspberry Pi.
Stress test received vs sent
Two block of texts. Right is the data sent (alphabet repeated several times). Left is the received data, starting with the same values, then showing some corruptions due to offset in read operations.
Errors detected by SimLine
Two binary lines with some values red and other green. Green means a different value was registered. Red means a value is missing and a shift occurred.