1

I was able to get my hands on a new Samsung SUR40 Microsoft Surface device. I'm currently in making a proof of concept

My sticking point is the ability to pair my iPhone with the surface. What I want to be able to do is place the iPhone on the screen and have the surface recognize the device. What I was thinking was using an identity tag produced from an iPhone app and placing the iPhone face down. But due to the infrared camera ability of the surface it sees nothing on the phone. I have seen it done before (Amnesia Razorfish). Just wanting to know if anyone has any ideas on how this can be done?

Maybe using a combination of WiFi scanning also might work. Any advice would be greatly appreciated. I want to keep it simple as the user just having our app running on the phone than just slapping it on the surface, don't want to over complicate the pairing.

pnuts
  • 58,317
  • 11
  • 87
  • 139
Matt
  • 3,305
  • 11
  • 54
  • 98

2 Answers2

2

I've explained one way to do this with bluetooth here: Identifying mobile devices paired via bluetooth with PixelSense

A lot is going to depend on whether you own the devices and the network. If you can control the devices, then you can just put a surface tag on each one and put the tag value into the phone's app. Having all devices connected to the same subnet can help with communication, but if you need to handle just any random phone running your app, it gets more complicated.

As to how Razorfish does it, I don't know for sure, but they don't use the bluetooth method I described. I think they use something similar to the Bump app, in which devices running your app would register with a service and keep track of accelerometer data. When Surface detects a phone (either by tag or just by shape), it could 'ask' every connected client if it was the one that was just put down. They may also use the proximity sensor to help.

Community
  • 1
  • 1
Ben Reierson
  • 1,099
  • 6
  • 8
  • Im having to make a specific app for the pairing functionality so thats not an issue. We wont own the devices all they will have in common will be the fact that the app will be installed on the phone. Im hoping to have it more seamless like Razorfish, so someone can just walk in off the street and as long as they have the app installed on their phone than they can just slap it down on the surface and start interacting with the surface application. Any ideas if this is possible? – Matt Apr 16 '12 at 23:47
  • One way that might work: 1. Setup a central service that both the surface and phones can access. 2. When phones run the app, they register with the service. 3. When the surface detects phone-shaped objects, it queries the service and asks which phone was put down. 4. The phone can know if it was put down based on its accelerometer or some other mechanism. It responds to the service and a connection is established between the phone and surface. This assumes you need to support multiple surface machines, if there's only one, you could just have the app point to it directly. – Ben Reierson Apr 17 '12 at 22:23
  • This was the way I was planning on going, I have already established a cloud based service that is the middle man between the phone and the surface. The question I have is the ability to match up a phone when it is placed on the surface. Especially if more than one phone is placed on the surface at the same time. And also when multiple surfaces exist (i.e. All surfaces will share the same cloud based service to pair devices, need to make sure that the surface is matched with the appropriate phone and not one that is meant for another surface?) – Matt Apr 18 '12 at 06:11
1

you can have a look at the Microsoft® Surface® Bluetooth Connect Code Sample - SDK 2.0 and also post your question about microsoft surface on the Surface Application Design and Development forum