Track how ultrasounds track you. Then fight back your privacy with ultrasounds.

Similar projects worth following
The Ultrasound Tracking Ecosystem is developing. Get back the power by knowing who is spying on you!

The idea is to develop a device telling you in real time if there's a ultrasound beacon close to you, and ultimately to extract the payload from the beacon - but also why not being yourself a beacon to tell the indelicate listeners to gtfo !

Hackaday blog post :
An excellent paper:

The aim of this project is to empower people by:

  • Understanding what ultrasound beacons are
  • Support to detect ultrasound beacons
  • Knowing who listens to you
  • Taking counter measures

Diverse adversaries are taking advantage of these beacons to gain knowledge on you, for marketing purposes at first, but nothing prevents different organizations to plant beacons to sensitive places - your devices betraying you've been there even if your phone was in offline mode.

The usages of these beacons are numerous, as show below:

  • 1 × Feather Adalogger 32u4
  • 1 × Electret
  • 1 × OLED 0.96" 4 pins, SPI, monochrome
  • 1 × Stripboard and headers

  • Trying faster acquisition

    kelu12410/14/2018 at 14:05 0 comments

    Thanks to PIGPIO, in c,  that's going a bit faster: and I can get really faster:

    some details on the peak.

  • Trying a pHAT​

    kelu12410/07/2018 at 20:07 0 comments

    Pushing a AD7476 on a pHAT looks promising. 12 bits, 1Msps, let's see !

    Testing with a SPI_CLK at 1MHz, with a 1khz beacon, getting 9.5khz from the ADC:

    Humm.. not the speed I'd be expecting. Let's explore the speed of sampling (Fech, in orange) vs the speed of the SPI_CLK (in blue). Seems it's stuck at 10khz for the RPi:

    That would come from the RPi SPI overheads, with large intervals between captures. The below has a SPI_CLK at 18MHz, with large overheads between words: just need to find out where to accelerate the spi =)

  • Beacons found in the wild !

    kelu12401/13/2018 at 21:57 0 comments

    Some time has passed, but I'm willing to go back to some hardware for going fishing ultrasound beacons!
    I'm gathering some info about these beacons - so I've been walking around with my phone to fish some interesting sounds.
    Some examples include a beacon in a starbucks close to montparnasse : interesting central frequency at 20khz, and two side freqs at +-250hz

    The spectrogram shows it continues:

    On another hand, I was in a coffee (called Ajami possibly), and I found a nice peak around 20khz:

    Now, all I need is understand what is inside =)

    For those curious, data and code are at  -- feel free to come and play.

  • What's next?

    kelu12406/11/2017 at 21:27 0 comments

    A small proof of concept has been done so far. Some extra items are missing:

    • Shifting back to the 32u4 to benefit from the SD card and standalone FFT -> I need to have the ADC go faster for the acquisition, and to get the data compressed a way or another for longer acquisitions, but that should be feasible.
    • Developing a more simple GUI for the OLED screen: I should be able to know when the signals are being recorded, and, if possible, how the beacon is encoded.
    • Saving: when a signal is detected, the data should be recorded to the onboard SD card.
    • Mapping: with a timestamped data, I'd be able to map on a geographical map the location of the beacons, and why not have a collaborative map ?
    • Spoofing: when a beacon is detected, why not send a louder signal saying "HEY GUYS I KNOW YOU'RE LISTENING SO HEY THERE!", to outpower the actual beacon?

  • Testing the electret capacities

    kelu12406/11/2017 at 21:22 0 comments

    Playing around with the STM32, I wanted to test if the electret was capable of listening to 18 to 20kHz sounds... Indeed! I've created 18kHz and 20kHz wav files on the repo, then played those and tested with the FFT capacity: the two peaks are very well resolved ! You can see the jupyter notebook for the experiment.

    The peaks correspond the beacons are using. This proves that it'd definitely be possible to have a small device tracking the ultrasound beacons on the road!

    Next steps.. having a better looking GUI on the small system OLED =)

  • Getting into ultrasound spying

    kelu12406/11/2017 at 21:21 0 comments

    I've been reading some more about ultrasonic tracking beacons, so I wanted to play a bit with those.. Hackaday even spoke about those !

    The first step is to get a microcontroller, a micro, and we're set. The setup looks like this:

    First, I've tried with a 32u4.. the limited RAM onboard was problematic. So I took something a bit more powerfull - a feather WICED - which I used to acquire bits of 160ms (see below) - ~ 8k points at 50kHz.

    Now, let's try and see if we can isolate a clear 8kHz signal : indeed - documented on github !

    The only thing that bugs me is that the FFT libs for the WICED are not yet well developped .. si I can't definitely use the WICED as a stand alone so far. Dang.

  • Initial research

    kelu12406/11/2017 at 21:21 0 comments

    What got my eyes was the following in the press:'s freaky. The worst thing is that having a cross tracking device can also help you in being tracked even though you're using anonymizing tools:

    Before going into the details of the projects, I've been doing some research to understand what was at stake.

    Some companies and framework using those are:

    • Silverpush
    • Shopkick
    • lisnr
    • Signal36

    PS: for a bonus.. the future of advertising thanks to ultrasound tracking =)

View all 7 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates