Wednesday, April 03, 2013

Open Source NFC Emulator for Windows Phone 8 with Proximity Tapper

Nokia Code Blog - How to use emulators to develop NFC features on WP8

"One of the more interesting features of Windows Phone 8 is its Proximity Framework for Near-field communications (NFC). Both Nokia and Microsoft have heavily invested in this area. The Proximity API provides you the controls needed to innovate on NFC technology, but at the moment Windows Phone SDK default emulator does not simulate NFC. That means you have to use real WP8 devices to test and debug NFC-related features. If you’re developing a feature to be used between NFC-enabled devices, you’ll need to have at least two devices in hand. In addition, there are often physical movements required to perform NFC interactions while debugging.

The good news is that there is an open source project called “Proximity Tapper” ( which offers NFC simulation on top of the emulators WP8 SDK provides. The project is generously Apache 2.0 licensed. Proximity Tapper can simulate a wide variety of NFC scenarios, such as tapping one WP8 device with another, tapping a WP8 device with a tag, and tapping a WP8 device with Windows 8 device. The use cases that Proximity Tapper cannot perform include tag writing, “Tap+Send” system integration (due to lack of Bluetooth capability), and Wallet integration. Also, it currently does not support tapping between a real WP8 device and an emulator. According to discussion on project webpage, mixing real WP8 device with emulator seems to be too much work.

From the Proximity Tapper UI, you first add devices. WP8 Emulators can be automatically discovered. Also other devices such as Windows 8 devices can be added manually using IP, hostname, or MAC addresses.



CodePlex  - Proximity Tapper

Project Description
Proximity Tapper is a developer tool for working with NFC on both Windows Phone and Windows, and allows you to build NFC apps in the Windows Phone emulator.

The Windows Phone 8 emulator does not currently have any built-in official support for emulator NFC (Near Field Communication), but the Proximity Tapper tool plugs into the Windows Phone 8 emulator to simulate NFC and make it possible to test and develop NFC/Proximity-enabled Windows Phone 8 apps without phone hardware. The tapper tool supports "tapping" a pair of Windows Phone 8 emulators together as if they had physically been tapped, injecting NDEF messages into the connection (and allowing for "tapping" just a single emulator), as well as displaying all message traffic for diagnostic purposes.

Note that the Proximity Tapper tool is not officially supported, and it does not always accurately simulate the behavior of true NFC hardware.

Quick Start

VERY IMPORTANT: When first launching the tapper tool you will get a Windows Firewall prompt, you MUST select ALL 3 checkboxes and allow the tool through the firewall otherwise it will silently not work
  • After launching the quick start installer, make sure you follow the above instruction to select all 3 checkboxes on the firewall prompt. Also, the tapper tool must be installed and used on the same physical host machine as the Windows Phone emulators.
  • The tapper tool has 3 sections:
    • The top left lists the devices available. Any running Windows Phone emulators (must be running on the same physical host machine) should automatically show up in the list, for Windows machines running the simulator driver you may type the IP address or hostname in the textbox and click "add" to manually add them to the list.
    • The bottom left lists the active connections (taps). When you tap a pair of devices together (or a single device) the connection representing that tap is listed, but when you untap (equivalent of pulling the devices apart and breaking the NFC connection) the connection will disappear.
    • The right half of the screen is the message log and will show the transcript of all messages sent or received over the currently selected connection (select it in the list on the bottom left).


I'm not currently doing NFC related dev, but I just think this is kind of cool, mostly because the source for Proximity Tapper is available. Doing like some cool code to look at to brighten up the week... :)

(Found via GeekCamp - How to use emulators to develop NFC features on Windows Phone 8)

No comments: