What it does

Blink is a communication tool for those who cannot speak or move, while being significantly more affordable and accurate than current technologies on the market. The ALS Association recommends a $10,000 communication device to solve this problem—but Blink costs less than $20 to build.

You communicate using Blink through a modified version of Morse code. Blink out letters and characters to spell out words, and in real time from any device, your caretakers can see what you need. No complicated EEG pads or camera setup—just a small, unobtrusive sensor can be placed to read blinks!

The Blink service integrates with GIPHY for GIF search, Earth Networks API for weather data, and News API for news.


Our inspiration for this project came from a paper published on an accurate method of detecting blinks, but it uses complicated, expensive, and less-accurate hardware like cameras—so we made our own accurate, low-cost blink detector.

How we built it

The backend consists of the sensor and a Python server. We used a capacitive touch sensor on a custom 3D-printed mounting arm to detect blinks. This hardware interfaces with an Arduino, which sends the data to a Python/Flask backend, where the blink durations are converted to Morse code and then matched to English characters.

The frontend is written in React with Next.js and styled-components. In real time, it fetches data from the backend and renders the in-progress character and characters recorded. You can pull up this web app from multiple devices—like an iPad in the patient’s lap, and the caretaker’s phone. The page also displays weather, news, and GIFs for easy access.

Live demo: blink.now.sh

Challenges we ran into

One of the biggest technical challenges building Blink was decoding blink durations into short and long blinks, then Morse code sequences, then standard characters. Without any libraries, we created our own real-time decoding process of Morse code from scratch.

Another challenge was physically mounting the sensor in a way that would be secure but easy to place. We settled on using a hat with our own 3D-printed mounting arm to hold the sensor. We iterated on several designs for the arm and methods for connecting the wires to the sensor (such as aluminum foil).

Accomplishments that we're proud of

The main point of PennApps is to build a better future, and we are proud of the fact that we solved a real-world problem applicable to a lot of people who aren't able to communicate.

What we learned

Through rapid prototyping, we learned to tackle difficult problems with new ways of thinking. We learned how to efficiently work in a group with limited resources and several moving parts (hardware, a backend server, a frontend website), and were able to get a working prototype ready quickly.

What's next for Blink

In the future, we want to simplify the physical installation, streamline the hardware, and allow multiple users and login on the website. Instead of using an Arduino and breadboard, we want to create glasses that would provide a less obtrusive mounting method. In essence, we want to perfect the design so it can easily be used anywhere.

Thank you!

Built With

Share this project: