A professor named Harald Hass in a Ted talk demonstrated "Li-Fi" technology by streaming HD video from an ordinary light bulb. Although the technology is still very immature, I became fascinated by the idea of visible light communication, and how it could eventually be a supplement to help power our growing IoT networks in our offices and homes.
Although I did not have access to his setup, I wanted to see what kind of low-cost prototype I could put together. I had originally purchased the lamp and materials from Ikea, as well as some microcontrollers and power supplies ordered online.
What it does
Using an encoding technique called Manchester encoding, my lamp is able to output character data at a speed of around 40 kilobits per second. Users can enter whatever data that they want from one terminal, and another user can see the data being transfered from another terminal. Note that because the lights flicker so fast, the human eye cannot actually see the light bulbs flickering.
Visible light communication has several advantages over WiFi. Since the visible light spectrum is 10,000 times larger than Radio Frequency, bandwidth exhaustion is not a problem. In addition, since you always need to maintain direct line of sight, it serves as a formidable deterrent to eavesdropping. Finally, there is potential to utilizing Li-Fi in order to offload traffic on conventional Wi-Fi networks at peak hours.
How I built it
Using an arduino, and latter a TIVA C microcontroller, I was able to drive a power MOSFET in order to rapidly switch the light on and off. By encoding the incoming data as a series of switches, I am able to interpret my modulated light patterns with a photodiode that is connected to another microcontroller. The Lamp is from IKEA, and the power junction was purchased from Homedepot. Basic knowledge of circuitry was required in order to properly power the lamp.
Challenges I ran into
Almost immediately I was set back after one of my MOSFETs, along with one of my microcontrollers blew out. I ended up having to create an entirely new board using a breadboard. Due to my lack of knowledge with TI microcontrollers, I had a tough time writing the driver and reciever codebases, as I was unfamiliar with how to manipulate the API used to program those microcontrollers.
I had intended to get video or music finished by the end of the Hackathon, but 40 kilobytes per second isn't too bad either.
Accomplishments that I'm proud of
I'm now much more familiar with TI's powerful TIVA microcontrollers, and I will probably be using them in the future. It was a great feeling to finally see the text output come on screen after several hours of debugging and writing code.
What I learned
I learned a lot about diagnosing electronics, using a multimeter and various insights.
What's next for Lite Storm
Streaming video and audio, faster speeds, and eventual integration with wifi!