Phone-Finding Pocket Pouch

While brainstorming ideas for this project, we decided to make something that would solve a problem that most of us experience relatively often: finding a lost cell phone, especially when it's set to silent. We thought it would be useful to have an external device that can tell you when you've lost your phone and where your phone is, but is inconspicuous enough that it's convenient to wear on a daily basis. The result of our brainstorming is a small pocket pouch/patch that can fit in a pocket or be clipped over a belt or pocket with magnets.

System Overview

In our system, a person's phone can communicate via Bluetooth with a textile component on the person to notify the person when he/she has gone a certain distance away from the phone. Currently, the textile can notify the user via a blinking LED and a pager motor that vibrates; when the user has gone out of range of the phone, the LED will blink and the motor will vibrate. While these outputs are redundant, they allow the user to select how he/she should be notified.

Future implementations of this system will also allow the textile component to help navigate the user back to his/her phone by providing signals that reflect how close he/she is to the phone. The textile can, for example, communicate to the user how close he/she is to the phone by blinking (via the LED) and/or vibrating (via the motor) at different frequencies.

Additionally, the current system can be used in reverse, to notify the phone when the wearer of the textile has gone out of range. We imagine this being used for situations such as a parent and small child, where the phone could ring and notify the parent if the child has wandered out of range of the device.

System components
In addition to utilizing a smart phone (e.g., Android, iPhone) for our application, these are the primary components of the textile side of our project:

+ LilyPad Arduino
+ Bluetooth chip
+ RGB LED (part of LilyPad package)
+ Pager motor with appropriate transistor
+ External battery
+ Conductive thread (used for wiring purposes)

Method of operation

We integrated the mobile and textile components of this system using the Amarino libraries for communication between Android and Arduino. The user can turn the system on or off using a button on the phone. When the system is on and listening, it detects the phone going out of range and vibrates/flashes accordingly. The phone can determine when it is disconnected from the Arduino, but the Arduino cannot detect directly if it has lost connection with the phone. In order to let the textile know when it has lost contact, we had the phone contact the Arduino every second with a simple ping message. When the Arduino receives that message, it stores the time of that contact. If it has not gotten a ping for ten seconds, it determines that it must be out of range.
Some pseudocode While the program is listening:
Update messages from Amarino;
If the phone is not lost:
Check to see how long since last ping from phone;
If too long since last contact with phone {
Put phone into "lost" mode;
Vibrate motor three times and flash light;
} else wait.
Additional functionality for future applications! If the phone is lost, but the user is not searching for it:
See if the user is pushing the button on the textile. If so, turn into search mode. If not, wait.

If the phone is lost and the user is searching for it:
Buzz/flash every X seconds, where X is periodically updated by the phone based on the distance between phone and textile.

The user can then push a button on the phone when it is found to turn off the searching mode on the Lilypad and turn the program back to its normal listening state.

Circuit Design

We decided to use the vibrator motor and the RGB LED in the patch, as well as a small button that can switch the pouch into and out of searching mode. We had originally intended for the search functionality to be part of the project, and therefore incorporated circuitry for a switch that the user could push to signal his or her desire to find the lost phone. However, the mobile programmers did not find a way to obtain the strength of the Bluetooth signal and therefore had no way of judging the distance from the phone to the pouch.

Although we tried making a fabric Arduino, we couldn't program it, so eventually we gave up and decided to use the Lilypad we were provided with instead.

Also, in working with the pager motor, we incorporated a transistor into the design to compensate for the limited current that can be drawn from the Lilypad. However, we had significant issues with the motor when it was hooked up to the battery supply instead of the computer. In order to regain the motor functionality, we needed a new battery (the rechargeable batteries seemed to not be strong enough), as well as direct wiring instead of conductive thread between components. When we used a new battery and the output port on the Lilypad was wired directly to one pin of the motor and the other pin was wired directly to ground, the motor behaved as intended (even without the need for the transistor). However, this required significant debugging.

Video results

In this first video, the textile is shown with the blinking LED, which signifies that the Bluetooth connection has been made. Once the phone is brought out of range, the LED blinks with a much higher frequency to signify that connection has been lost. The pager motor inside in the textile vibrates at the same frequency as the LED is blinking.

This second video shows the user carrying the phone away from the textile. Once the phone is out of range, the user is notified on the phone via a sound (specifically, the phone says "Droid" in a really creepy voice).