Smartphone communication using magnetic fields

In a recent paper we published at Ubicomp 2014 we demonstrate how magnetic fields can be used for communication purposes on smartphones. Specifically, we show how a phone’s magnetometer can be used to capture and decode information that is implicitly encoded in a magnetic field. In this article we provide a high-level description of how our system (Pulse) works. You can find a link to the full paper at the end of this article. This project was reported by New Scientist.

The basic principle of Pulse is very similar to how old-fashion modems used to communicate over analog lines, or how the ancients used fryctorias to communicate using torches. But instead of using sound or fire, our system uses magnetic fields which pulsate. Conceptually, our system uses two independent channels of communication, and each channel can convey 2 bits of information during each communication cycle. In other words, each channel can receive one of 4 possible values, and therefore the combination of both channels can yield 16 distinct values per cycle. The duration of each cycle is predetermined to last 80 milliseconds.

Transmitting a message

For someone to transmit a message, they need to create a magnetic field and vary its strength in realtime. In our case we used two coils which were connected to an electricity source which varied in realtime (Figure 1). As a result, the coils’ magnetic field strength (measured in microtesla) varied in realtime. Thus, the two coils were able to send independently magnetic pulses of varying strength. By detecting and decoding these pulses we are able to reconstruct the message that was sent (Figure 2). We should note that most smartphones have a 3-axis magnetometer, which means that up to 3 channels can be used as long as the solenoids are positioned perpendicular to each other.

Conceptual design of our system. Two solenoids are used to transmit information independently.
Figure 1. Conceptual design of our system. Two solenoids are used to transmit information independently.
Using two coils (Channel X, and Channel Z), we are able to transmit the message "Hello world" using Pulse.
Figure 2. Using two coils (Channel X, and Channel Z), we are able to transmit the message “Hello world” using Pulse.

Applications

The final system is shown in Figure 3. The system uses a cycle of 80 milliseconds to transmit data, because that is the fastest rate at which the magnetometer on the phone can reliably detect changes to the magnetic field. In addition, our system has 4 pre-determined intensity levels at which a magnetic field can operate: if we use more the communication becomes unreliable due to the earth’s background magnetic field, and therefore we require additional energy.

Photograph of the Pulse system. Note that 2 solenoids are attached to the top and the side of the phone using adhesive tape.
Figure 3. Photograph of the Pulse system. Note that 2 solenoids are attached to the top and the side of the phone using adhesive tape.

The system currently operates at up to speeds of 44 bits per second. This is not fast by any means, but it does allow for exchange of secret authentication tokens, small bits of sensitive information, and even MIDI music as we demonstrate in our video:

Publication

[bibtex key=Jiang:Ubicomp:2014]

Relevant links

Check out our Android app for security and privacy: Securacy