About four years ago, near field communication – NFC was a cool and still new technology. I had worked with static and dynamically generated NFC signals at HP’s print devision, with the intent to tell by-passing mobile phones, how to set up a Wifi connection, to quickly and conveniently send a print-job to the printer.
At Intuit we looked deeply into NFC for payment solutions and while NFC chips found their way into many Android phones, it took Apple a really long time to adopt this technology and then keeping it tight of course, making it not accessible by 3-rd party applications.
Even three years ago, this wasn’t unforeseeable. In fact, I thought it was very likely that while openly available on some Android phones, users wouldn’t quickly embrace NFC, and Apple would take a wait and see approach, before adopting the NFC standard.
However, there was (and still is) a sensor readily available on all mobile phones, for a different kind of near field communication, you may have guessed it, I’m talking about the microphone.
If the mobile phone is listening, a brief, subtle sound, a chirp, can easily be detected and interpreted (decoded) by the phone. Instead of putting an unnecessary payload into the audio signal, it’s enough to just send a unique-id that the phone can send to a remote web service for interpretation. The web service can now respond, maybe based only on the unique-id, or by also taking other factors into consideration. In a simple application, the web service may just return a web address (URL), which the phone would now display in its web browser app.
I built a crude prototype of a sound emitter. An Arduino micro controller, an old pc speaker, a light-sensor, and a 9V battery were put into a small back box that emits a chirp, every time the light sensor gets covered, for instance by holding a phone close to it.
The listening application, running on the smart phone, needs to be launched of course, before holding the phone over the black box, covering the light sensor. That’s really a huge disadvantage over NFC, which if enabled, is always on, always listening.
Anyway, once the mobile app has recorded the chirp sound, it decodes the frequency pattern into the numeric-id and sends it on to a remote web-service, which for instance responds with an URL.
Here is the dead-simple UI of the mobile app, listening for the audio signal, containing the encoded id.
I also built a web-service app that receives a numeric id and responds with an URL. Since sound emitters in the field are hard to update, but the web-service isn’t, a simple UI is also provided to change the ID-to-URL mappings.
The happy ending of this story however is that the US Patent Office granted Patent 9048963.
Conveying information using an audio signal
During a communication technique, an electronic device receives an audio signal from a remote electronic device, such as another electronic device that is proximate to the electronic device. This audio signal may include information that specifies an identifier. The electronic device may analyze the audio signal to extract the identifier, and may provide the identifier to a pre-defined location via a network, such as a web page on the Internet. In response to providing the identifier, the electronic device receives the operation from the pre-defined location via the network. For example, the operation may include an instruction to open a document (such as a web page) on the network.