unsurv documentation#

unsurv is a project concerned with biometric surveillance and its dangers. Here you will find different hardware/software projects working on detecting, mapping and quantifying potential biometric surveillance cameras.

Feel free to contact me if you have any requests, suggestions, ideas for collaboration.

Table of Contents:

Projects#

unsurv-offline#

Tutorials#

Here are the different ways you can use your unsurv-offline:

Surveillance camera counting#
Prerequsites#

This is the only usecase where you need some outside data. For the camera tracking to work you need an outside data source for the camera locations.

Data#

Camera locations are based on the OpenStreetMap database. For this to work you must provide data via an SD card.

Hardware#
  • unsurv-offline

  • micro USB cable for flashing

  • microSD card compatible with the ESP32

  • phone for NFC communication

Software#

You will need the following software:

  • Arduino IDE

  • unsurv-offline example from GitHub

  • NFC reader app or unsurv-companion for

Step counting#
Prerequsites#

Prerequisites for step counting.

Hardware#
Software#

Battery Management#

Battery choice#
Connector#
Charging#

unsurv-offline offers a plug and play solution for off the shelf 4.2 V LiIon batteries. If you do not plan to use any addon boards there is space for a 250 - 300 mAh battery inside the provided case.

BQ25180#

The choice for the battery management IC was a difficult one. Since the BQ25181 (a more common formfactor of the BQ25180) is still not available

Features#
  • I2C programmable charging voltage / current

  • automatic power selection between USB and battery (power path)

  • protection features

    • Battery undervoltage protection

    • Battery short protection

    • Battery overcurrent protection

Deep sleep#

BMA400#

BMA400 is a feature ritch 3-axis accelerometer developed by Bosch. All movement based use cases such as auto deep sleep, step counting, tap-to-wake are based on the features of this IC. It has two interrupt outputs for easy reporting of states to the main IC.

How to activate#

The main way to activate deep sleep is via the BMA 400 accelerometer. After a few seconds of non movement the accelerometer generates an interrupt read by the ESP32 which in turn goes to sleep after setting the CAM M8C GNSS receiver to sleep and disabling all peripherals.

How to wake up#

The default way the device wakes up is similar to the way it goes to sleep just in reverse. After the BMA400 detects movement it sends another interrupt on a second output. The ESP32 receives it on one of the pins available while in deep sleep.

Another way is to double tap the device.

Note

Double tapping requires one of the interrupt pins from the BMA400. Therefore it can’t be used together with the auto wakeup feature.

Power Consumption#

unsurv offline consumes about 3 mA when in deep sleep while the USB to Serial adapter is switched off via the installed dipswitch. With an installed battery capacity of 250 - 300 mAh we are able to get multiple days of standby time.

graph of power measurement

PPK2 measurement over 7 seconds#

These measurements were taken with the nrf PPK2

Currently available on crowdsupply

This project is part of the unsurv framework to fight privacy invasive technologies in the offline world. unsurv-offline logs your encounters with surveillance cameras and creates a daily report for you via NFC to review in the unsurv-companion Android app.

_images/first.jpeg

main PCB design#

Demo

This device can easily be adapted to different use cases via the Arduino IDE. Arduino library + board integration are planned.

List of features#

  • ESP32 D4

  • ublox M8C GNSS receiver

  • RF430CL330H NFC

  • BMA400 accelerometer

  • SD card reader

  • MCP73831 single cell LiPo charging

  • CH340 USB to Serial

Software#

Hardware#

Special thanks to#

mapping#

unsurv offers multiple ways to map public surveillance cameras in a privacy focused way.

Check out

  • unsurv-mapping for a lightweight android app focused on manual mapping

  • unsurv-android for an extensive android app including a retrained Tensorflow object detection model to automatically detect two types of surveillance cameras

  • camera-evaluation a basic browser based evaluation software to check if OpenStreetMap already has a database entry for a mapped camera.

open360#

open360 is an open-source 360° camera based on the NXP 8M plus processor. With its integrated neural processing unit (NPU) the goal is to map surveillance cameras on device in a compact form factor.

Note

This project is still in early development.

Crowd supply#

unsurv offline is currently available on crowdsupply.

Contact#

Contact me via: