Many research teams are looking into alternatives for data transfer. Using visible light to transfer data is more secure, as it cannot be read through opaque materials and is difficult to intercept.

What it does

Our project takes tweets from twitter with the hashtag #wwhack. Once read, our computer will send that to an arduino. The arduino encodes each character with Hamming codes, which allows one error bit correction when being sent. Once the bits are generated, the arduino will turn a laser on or off every 6 milliseconds. An infrared LED is stationed several feet away (though tested at 101 feet, and it worked) and will detect when the laser is on or off. An arduino reads the signal on the LED and decodes the text. The decoded text is sent through the serial port, read into a Raspberry Pi, and displayed on a screen.

Challenges we ran into

Our first challenge was reading if the laser was on or off. We originally had an Infrared sensor, but that proved to be ineffective with a red laser. We found, interestingly, that an IR LED could read the laser correctly, so we ended up using that. The Hamming codes were a bit challenging to get correctly - mixing up little and big endian. Lastly, reading from the Raspberry Pi's serial port would time out every 35 seconds. We solved this by closing and re-opening the port every 20 seconds.

Accomplishments that we're proud of

Everything works as planned! We've never seen this kind of project before, or anything similar, so it is satisfying to know we thought of something original.

What we learned

We learned about Hamming codes - something we hadn't touched on inside or outside of class. Serial communication between an Arduino and a Raspberry Pi is something neither of us had done before.

What's next for VisibleData

This idea could be used for anything - from basic networking to security. As for us, we might use parts of this technology in future projects.

Share this project: