
Show HN: Find3 – An indoor positioning system for smartphones and laptops - qrv3w
https://github.com/schollz/find3
======
bastijn
Our (used to) lighting division is selling a product where we use our LED-
lights to track phones indoor. Always thought it one of the coolest
applications of our tech. Using the fact that we can control LED frequencies
invisible to the human eye but visible to a phones camera to pinpoint devices
and provide indoor navigation [0]. Accuracy was tested to be 30cm (when
combined with a few other factors).

[0] [http://www.lighting.philips.com/main/systems/lighting-
system...](http://www.lighting.philips.com/main/systems/lighting-
systems/indoor-positioning#)

~~~
alanning
That is a very interesting approach to indoor positioning. The idea of just
installing a light bulb seems very cost-effective.

When you say, “used to” did you mean that the product was discontinued and/or
isn’t available for purchase anymore? Or perhaps Philips sold the technology?

I’d like to learn more, will use the Contact Us form on the page you linked
but if there’s someone you could recommend that would be much appreciated.

~~~
bastijn
I jokingly said “used to” as Philips split off the lighting division. It is
now rebranded to Signify. Technology will still be sold under the Philips
brand.

The indoor positioning is also still being sold as a product. As far as I know
we are doing some mega stores and expanding.

If the contact form doesn’t work DM me and I can see if I can get a direct
contact for you. (Added email to bio)

~~~
WildGreenLeave
This is kinda unrelated, but could you tell a bit more about the R&D
departement inside Philips?

The reason for asking is that there are a few companies in The Netherlands
that I'd love to work for, and Philips is one of them. (Other companies would
include the NS or Thales) Furthermore R&D does sounds like something that I
would love. However being mainly a software engineer with a touch of
mechanical engineering I'm not sure if I'd be a good fit.

I know that Philips is only hiring interns at the moment, but I assume that
most departments won't differ much from other 'big' Dutch companies.

~~~
bastijn
Sure. I’d be happy to help though let’s not go off-topic in this thread. Feel
free to drop me an email, see my bio for the address.

~~~
alanning
Hi bastijn, just following up. I don't see your email in your HN profile but I
would like to take you up on your offer to get in touch with the appropriate
lighting folk at Philips. I haven't heard anything back from my attempts via
their online form. My email is in my HN profile if you don't mind getting in
touch. Thank you.

~~~
bastijn
Hi. Sorry removed it recently again as I thought we had it all covered :).
Your email is not in your bio either so I added mine again. Feel free to
contact!

------
sylwester
I have created a find3 beacon/client for the cheap ESP8266/ESP32
microcontrollers yesterday and released it to the public.
[https://github.com/DatanoiseTV/esp-
find3-client](https://github.com/DatanoiseTV/esp-find3-client)

The ESP8266 uses WiFi and submits the BSSIDs and their RSSI to the server.

The ESP32 version uses BLE probes additionally, which potentially improves
accuracy.

Any feedback is welcome. This is an early hack.

------
llao
The byline says "High-precision" but I could not find any benchmarks or
scientific analysis. What does high precision mean here? How stable is it?

What about privacy of the users? Does the server know where everyone is?

~~~
qrv3w
The actual precision you get depends on context, as this system utilizes
surrounding signals (Bluetooth/WiFi/etc.) in the given environment to classify
the location. Generally rooms/walkways are easily distinguishable. Pieces of
rooms are also usually distinguishable because of smart devices people
generally acquire nowadays (e.g. a Google home at one side of the kitchen is
sufficient).

I say high-precision because I compare it to GPS, but if you compare it to
round-trip time (RTT) measurements which get cm-level precision from
specialized hardware, it is an order-of-magnitude behind.

The public server knows the mac addresses of devices that they send to it, so
in a sense it does know where they are (because those can be reversed with
public wardriving databases). The public server does not have authentication,
so if someone figures out your "family name" then they can see your data. I
suggest using the public server to try FIND, but not to use FIND so I have
instructions for setting up your own system. [1] I'll make this more clear in
the docs.

[1]
[https://www.internalpositioning.com/doc/server_setup.md](https://www.internalpositioning.com/doc/server_setup.md)

------
nielsole
Just be aware that the public server in the app has no access control. Your
location will be published.

You probably really want to set up a private server to use this in practice or
even try it out.

Otherwise looks promising. A nice addition to my home setup

~~~
qrv3w
Thanks. I will add something across the system to highlight this. I want to
encourage folks to run their own server [1] and use public cloud just for
playing.

[1]:
[https://www.internalpositioning.com/doc/server_setup.md](https://www.internalpositioning.com/doc/server_setup.md)

Edit: For those who finished playing and now want to delete their data from
the public server, I just added a DELETE endpoint:
[https://github.com/schollz/find3/blob/master/doc/api.md#dele...](https://github.com/schollz/find3/blob/master/doc/api.md#delete-
all-data--delete)

------
toolbox
Hey, I remember this project! I had the chance to give a bit of advice to the
creator, Zach Scholl while I was working at Duke's Co-Lab [1]. It was cool
then, and looks like it's only improved in robustness since (and it sounds
like HN has plenty of ideas for PRs).

Although I no longer work/learn at the Co-Lab I'd love to plug the value of
these sorts of programs at schools. They give encouragement with money and
publicity, and most importantly, tools (VMs/APIs) and advice ("why won't this
compile?"/"where do we start?"). I had a chance to see and help with a lot of
projects that wouldn't have otherwise been possible to get built. Hopefully it
helped a few people get into hacking that wouldn't have otherwise too!

[1]: colab.duke.edu

~~~
qrv3w
Thanks! Yeah I think I would've never gotten the idea out of my idea without
the support from Co-Lab.

------
coupdejarnac
Haven't read through the code yet, but the only thing I need to know is if
these guys know what Rayleigh scattering is. If not, this probably isn't going
to work so great.

I worked on an indoor tracking system several years ago that used custom
hardware. Since then, I've seen a lot of crappy solutions that use BLE RSSI
measurements. This is simply not an easy problem to solve with crude methods.

~~~
mlevental
they're fingerprinting locations based on rssi from devices in the signal
environment. meaning your phone tries to connect, gets a set of rssis back and
that then finger prints where you're standing with the phone (by the
collection of rssis). the "space" it's locating in isn't physical space but
"rssi tuple" space.

~~~
konschubert
So, how does it get mapped to physical space then?

As long as I am in "rssi tuple" space, I maybe know if I am in a place where I
have been before, and I can learn the topology of the place in terms of "which
places are adjacent".

But I can't put my location on a map. How do they do the mapping?

~~~
mlevental
>So, how does it get mapped to physical space then?

don't quote me but i don't think it does. you basically go around and set up
hotspots in rssi space that the server knows about. when other people enter
that hotspot things happen. this isn't as silly as it sounds because for a lot
of applications you don't need to know where you are in physical space but
just what you're near (i.e. i put my tv somewhere, hotspot it, then when my
phone gets near that hotspot it's near the tv).

~~~
coupdejarnac
Yeah, that makes sense. But that's not going to be very accurate. That will be
accurate at the tuple space, but not down to the nearest centimeter in X Y
coordinates or anything like that.

Plus, if there is any mass between the marker and the tracked device, that
will throw off readings. RSSI measurements are really only good for open air
measurements or if you have characterized all the materials the rf passes
through.

~~~
nonis
Yeah, BLE beacons aren't particularly accurate for an IPS. I worked on this
problem a few years ago at FB, for the purposes of helping employees find
themselves + meeting rooms on a mobile app. We really only needed 2-3 meter
accuracy, so people could figure out approximately where they are. BLE signals
are crazy noisy, so you need to tack on a lot of filtering (kalman filter,
etc) and it really helps if you have multiple data sources (wifi signals,
gyroscope, RF, etc). We could also kinda cheat by adding a track to the center
of each hallway on the map, then magnet users towards the track.

~~~
qrv3w
That sounds very similar to this! Did FB ever open-source it?

~~~
nonis
Unfortunately no. Last I worked on it it was pretty heavily integrated with
their mobile maps application
([https://code.facebook.com/posts/504406169737284/instrumentin...](https://code.facebook.com/posts/504406169737284/instrumenting-
meetings-at-facebook/)) and there wasn't any plan on open sourcing.

------
pimlottc
Is there a more product-orientated page describing what this system is
actually capable of?

~~~
hyder_m29
[https://www.internalpositioning.com/doc/overview.md](https://www.internalpositioning.com/doc/overview.md)

------
gricardo99
Pardon the laymen’s questions, but my understanding of precision location is
that it requires triangulation + accurate timestamps (the more accurate the
more precise), plus with indoor the additional complexity of resolving signal
multi path. There’s no mention of the hardware or “system” requirements.
Possibly all modern smartphones and laptops have the necessary hardware? It
would still be nice for this to mention a high level summary of the system
required to set this up. How many devices to coordinate the location
discovery?

~~~
qrv3w
> ...it requires triangulation + accurate timestamps...

This system does not do round-trip time measurements (RTT) which I believe you
are referring. RTT is different because it uses actual triangulation, whereas
this system merely classifies a given point in space based on surrounding
electromagnetic waves (WiFi/Bluetooth/etc.). RTT is superior, what I would
call extreme precision, because it is capable of cm-level precision. (I say
high-precision as compared to GPS which I tried to do this with before years
ago).

I love RTT, except that it is not a solution that is widely available yet.
This FIND system is nice because anyone can use on their phone right now, and
you don't know need any specialized hardware or need to buy any equipment. And
the signal generators are already there (your WiFi, your neighbors WiFi,
Bluetooth devices, etc.).

> How many devices to coordinate the location discovery?

In the active mode (where you do the scanning) it will use every device it
sees in the vicinity. In a place like an apartment in the city, this would
include all WiFi+Bluetooth points in your home and your neighbors, which could
be dozens.

> There's no mention of hardware or system requirements.

Thanks, I'll fix this. It really depends on how you use FIND - in active mode
you only need a computer or a Android smartphone. For passive mode you need
some small computers and WiFi cards.

~~~
cesarb
If you're connected to an AP via Wifi, can't you ping the router? That would
give you a single RTT data point, which you could combine with the non-RTT
measurements to enhance the precision. The router is often either the AP
itself, or linked to it through a wired connection.

Thinking more about it, you could even use an ARP ping (like the "arping"
tool) to try to ping the AP directly, even if it's not the router.

~~~
qrv3w
Yes you can do that but that runs up against the problem of "processing time"
in the router. A router might process a simple echo request for +/\- 1
millisecond. Since 1 nanosecond = 1 foot, this variability already makes the
distance measurement meaningless for indoor positioning. The way to do it
accurately requires using something like 802.11mc [1] which can vary
accurately measure time using frame collisions.

[1]
[http://ieeexplore.ieee.org/document/6805649/](http://ieeexplore.ieee.org/document/6805649/)

------
tyldum
Really cool idea, and it works really well. Was able to do very precise
positioning in my house, even within a single room if given multiple
references. Ultimately it drained the phone battery too much to be of actual
use for me in my smarthome.

~~~
qrv3w
Can you provide some more details about the battery drainage? Namely, what
kind of phone, how much battery usage you noticed? I've tested things with my
Pixel2 and I get about 1-2%/hour battery usage.

------
trashcan
Every URL I am trying on
[https://cloud.internalpositioning.com](https://cloud.internalpositioning.com)
is reporting 502 bad gateway. Is the hosted service currently down?

~~~
qrv3w
It was, should be back up now.

------
kypro
I wonder if the NSA has access to this kind of data at all. Theoretically if
you could put a backdoor in iOS or Android you could create a nation-wide Wifi
map to track people/devices with.

~~~
Ajedi32
Google (and probably other companies) already uses WiFi data to supplement
GPS:
[https://support.google.com/accounts/answer/6179507?hl=en](https://support.google.com/accounts/answer/6179507?hl=en)

> To estimate location, it uses sources like Wi-Fi, mobile networks, and
> sensors.

~~~
sylwester
Just check out
[https://developers.google.com/maps/documentation/geolocation...](https://developers.google.com/maps/documentation/geolocation/intro#wifi_access_point_object)

Feeding it with BSSIDs and RSSI, it gives you a precise response with GPS
coordinates.

------
janOsch
Can you integrate it with bluetooth beacons?

~~~
qrv3w
Yes, the scanners available for Android and a computer both will scan for
Bluetooth devices and use those for positioning as well.

------
dimatura
Does it do filtering over time?

~~~
qrv3w
What do you mean by filtering?

------
mlevental
pretty neat.

how robust are the fingerprints across devices i wonder and whether this has
been experimented in with strong multipath effects (thereby confounding
fingerprinting).

edit:

another interesting thing is that this is basically context sensitive hashing
of tuples being done using ml classification techinques

~~~
qrv3w
> how robust are the fingerprints across devices

I use this system to track phones and two different computers in my home
without a problem, even though I learned only one device. The RSSI values are
pretty well normalized so it works well.

> strong multipath effects

The signals need not be normally distributed to be effective. Because this is
classification it doesn't matter if the distribution of signal levels is
multimodal (i.e. it is composed of multiple signal values through multiple
paths), as long as the distribution of signals are different from location to
location.

