Configure your SnapperGPS receiver for your next deployment.


Upload the data from your SnapperGPS receiver after a completed deployment.


View and download the track of your SnapperGPS receiver once processing is completed.


The SnapperGPS Receiver

The SnapperGPS receiver is a small, low-cost, and low-power GNSS receiver for non-real-time wildlife tracking. It employs the snapshot GNSS technology, which offloads the computationally expensive data processing to the cloud, and:
  • Can operate for more than a year,
  • Needs only 12 ms of signal reception for a fix,
  • Employs multiple satellite systems for improved reliability (GPS, Galileo, and BeiDou),
  • Achieves a median real-world tracking accuracy of about 12 m (before smoothing),
  • Measures the temperature in addition,
  • Is configured via USB in your browser without the need to install a driver or an app, and
  • Is certified open-source hardware.
SnapperGPS board


  1. Get/build your SnapperGPS receiver.
  2. Configure your SnapperGPS receiver in your browser for your deployment.
  3. Deploy your SnapperGPS receiver.
  4. The SnapperGPS receiver captures GNSS snapshots according to your configuration.
  5. Recover your SnapperGPS receiver.
  6. Upload the data from your SnapperGPS receiver to our server.
  7. Download the track of your surveilled animal.
Exemplary SnapperGPS track


    • Verify that your SnapperGPS receiver is not paired with another browser tab or window already.
    • Check your browser version and ensure that it is among the ones that support the WebUSB technology.
    • Unplug the USB-C cable from your SnapperGPS receiver and plug it in again, this times upside down.
    • Make sure that your USB cable supports data transmission, i.e., is not a power-only cable that can only be employed to charge USB devices.
    • Avoid using a USB hub.
    • If you have an operating system of the Linux family such as Ubuntu, then make sure that you followed the steps below.
    • Try a host device from another vendor. For example, there are known problems with some OPPO smartphones.
    • Create a file /etc/udev/rules.d/50-SnapperGPS.rules, e.g., with
      sudo nano /etc/udev/rules.d/50-SnapperGPS.rules
      in your terminal.
    • Add the following two lines to the file:
      SUBSYSTEM=="usb", ATTR{idVendor}=="10c4", MODE="666", GROUP="plugdev"
      SUBSYSTEM=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="0002", DRIVER=="usbhid", ACTION=="add", ATTR{authorized}="0"
      and save your changes.
    • Restart the device manager with
      sudo service udev restart
    • Plug in your SnapperGPS receiver again.
    • Add your user account to the group that you just created with
      sudo adduser your_username plugdev
    • Make sure that the antenna was outdoors and had a sufficient view of the sky at your selected start time.
    • Check the connection between your antenna and your SnappperGPS receiver.
    • Avoid proximity to other electronic devices that emit electromagnetic waves such as WiFi routers or laptops when recording data.
    • Do not replace the antenna too often. SnapperGPS' antenna connector is rated for only 30 mating cycles. Frequent antenna replacements harm signal quality.
    • Do not place the board on a conductive surface. Do not place conducting materials directly on the board without isolation. (This includes antenna and battery.)
    • Make sure that the battery was sufficiently charged during the deployment. Ideally, a long deployment should start with a battery voltage of at least 4.1 V (SnapperGPS V1.0.0 and V1.0.1 with LiPo battery) or 3.0 V (SnapperGPS V2.0.0 with button batteries). You can confirm this by downloading your data as CSV or JSON and inspecting the battery field of the first record. A low battery voltage can be caused by a short, see previous note.
    • Check if you are operating in an area with high levels of GPS jamming, e.g., here.
    • Verify that your provided start location was within 10 kilometres of the actual start location.
    • Check that the clock of the device that was used for configuration is within 30 seconds of the actual time.
    • To estimate locations for your data, we obtain information about the positions of the navigation satellites at the time of you recording from an external source. If you uploaded your data close to the point in time when it was recorded, then the satellite data might occasionally be imprecise, which causes worse location estimates. Upload that data again tomorrow.
    • Verify that your batteries did not completely discharge, e.g., by downloading the data from your SnapperGPS receiver, which includes a record of the battery voltage.
    • Check if your SnappperGPS receiver got wet.
    • A SnapperGPS receiver V1.0.0 cannot record data for more than 10,901 locations and SnapperGPS receivers V1.0.1 and V2.0.0 have a limit of 21,824 locations. Ensure that these limits were not reached.
    • Be sure that the start and end time on the configuration page as well as on the upload page were correctly set.
    • Re-upload your data and set the Max. velocity to a smaller value. You can even try something like 0.01 m/s.
    • If your SnapperGPS receiver is connected to a host device and recognises it, then the green LED will permanently glow.
    • If you interact with your SnapperGPS receiver via the SnapperGPS website, then the red LED will glow in addition.
    • If you unplug your configured SnapperGPS receiver and its battery is not discharged, then the green LED will flash several times to indicate that it will record data soon.
    • If you unplug your unconfigured SnapperGPS receiver and its battery is not discharged, then the red LED will flash several times to indicate that it will fall into deep sleep mode.
    • If your configured SnapperGPS receiver is not connected to a host device and has not started to record data, then both, the red and the green LED, will flash every five seconds.
    • Whenever your SnapperGPS receiver captures a satellite signal snapshot, the green LED will flash once.
    • After your SnapperGPS receiver has captured its last satellite signal snapshot, the red LED will flash several times to indicate that it will fall into deep sleep mode.
    • The SnapperGPS app is fully functional in a browser like Microsoft Edge or Google Chrome. Strictly speaking, there is no need to download and install the app. The browser version even works offline as long as you do not clear your browser cache. However, you might find it more convenient to install the app. For this, open this website in Microsoft Edge or Google Chrome and proceed with one of the three following options, depending on which one is available to you:
    • A) If you see a pop-up Add SnapperGPS to Home screen, click on it.
    • B) If you have an icon App available. Install SnapperGPS in the right of your address bar, click on it.
    • C) Click on the three dots in the top-right corner of your browser. Then, click on Install app or on Apps first and then on Install SnapperGPS.
    • Each location estimate comes with an uncertainty estimate when downloaded as CSV or JSON.
    • The uncertainity estimate is a confidence radius in metres that is also shown on the map on the Download page as circle around the location estimate.
    • A small value represents high confidence, a high value represents low confidence, and no value indicates a very uncertain fix.
    • Originally, the confidence radius was fitted to be the one-sigma radius, i.e., there is a 68% chance that the true location is in the circle. However, current SnapperGPS receivers with a proper antenna perform much better, i.e., the chance is higher in practice.
Still having issues? Start a discussion or create an issue on Github.


  • SnapperGPS on GitHub, including more documentation.
  • Our snapshot GNSS location estimation algorithms on GitHub.
  • Exemplary GNSS data collected with SnapperGPS receivers in the public Oxford University Research Archive.
  • More exemplary GNSS data collected with SnapperGPS receivers in the public Oxford University Research Archive.
  • Flash your SnapperGPS receiver with custom firmware.
  • View accelerometer measurements from your SnapperGPS accelerometer daughterboard.



  • Jonas Beuchert. 2023. SnapperGPS: Collection of GNSS Signal Snapshots 2. University of Oxford, Oxford, UK. http://dx.doi.org/10.5287/ora-xq5b8xva7.
  • Jonas Beuchert, Amanda Matthes, and Alex Rogers. 2023. SnapperGPS: Open Hardware for Energy-Efficient, Low-Cost Wildlife Location Tracking with Snapshot GNSS. In Journal of Open Hardware, 7(1): 2, Pages 1–13. https://doi.org/10.5334/joh.48.



  • Amanda Matthes and Jonas Beuchert. 2021. Can we locate endangered sea turtles using twelve milliseconds of noisy satellite signals? In Inspired Research: News from the Department of Computer Science, University of Oxford. Oxford, UK, Issue 19 (Winter 2021), Pages 20-21. https://www.cs.ox.ac.uk/innovation/inspiredresearch/InspiredResearch-winter2021.pdf.
  • Jonas Beuchert and Alex Rogers. 2021. SnapperGPS: Algorithms for Energy-Efficient Low-Cost Location Estimation Using GNSS Signal Snapshots. In SenSys ’21: ACM Conference on Embedded Networked Sensor Systems, November, 2021, Coimbra, Portugal. ACM, New York, NY, USA, Pages 165-177. https://doi.org/10.1145/3485730.3485931.
  • Jonas Beuchert and Alex Rogers. 2021. SnapperGPS: Collection of GNSS Signal Snapshots. University of Oxford, Oxford, UK. https://doi.org/10.5287/bodleian:eXrp1xydM.


Jonas Beuchert and Alex Rogers work on SnapperGPS in the Department of Computer Science of the University of Oxford. Get in touch via theteam@snappergps.info.
Jonas Beuchert is funded by the EPSRC Centre for Doctoral Training in Autonomous Intelligent Machines and Systems and works on SnapperGPS as part of his doctoral studies. The implementation of SnapperGPS was co-funded by EPSRC IAA Technology Funds.