• Stars
    star
    137
  • Rank 266,121 (Top 6 %)
  • Language
    C
  • License
    Apache License 2.0
  • Created over 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Indoor localization based on the DecaWave DW1000.

PolyPoint

PolyPoint

PolyPoint is a system for using ultra-wideband RF time-of-flight ranging to perform indoor localization. It incorporates the DecaWave DW1000 for UWB packet transmission and timestamping into a solder-on module that provides node-to-node ranges over an I2C interface.

Name

The name PolyPoint comes from the use of many polygons and shapes in the prototype design and the desire to pinpoint where users are with the system.

Git Clone

When cloning this repository, be absolutely sure to do

git clone --recursive https://github.com/lab11/polypoint.git

so that you get the submodules as well. All of the supporting libraries and build tools are in submodules for the various hardware platforms used in this project.

Hardware

The PolyPoint system is composed of several hardware pieces. At the core is the TriPoint module which is a 1.25" on a side triangle that encompasses all of the core ranging hardware and software. TriPoint has castellated edges and can be soldered on to a carrier board, effectively as a ranging IC. TriTag is one such carrier board designed to be the tag in the ranging system. It includes the UWB antennas and a Bluetooth Low Energy radio plus a battery charging circuit. TriTag is able to provide ranges to a mobile phone application.

TriPoint

TriPoint includes the following components:

  • DecaWave DW1000 UWB radio
  • STM32F031G6U6 MCU
  • RF switch

The MCU contains all the necessary code to run the DW1000 and the ranging protocol.

TriTag

TriTag

TriTag includes:

  • The TriPoint module
  • 3 UWB antennas
  • nRF51822 BLE radio
  • 3.3 V LDO
  • Li-ion battery charger

TriTag is designed to be the tag to be localized in the system and connected to a smartphone.

TriDev

TriDev is a breakout and testing board for the TriPoint module. It contains the same BLE hardware as TriTag, but also adds an FTDI chip for issuing I2C commands over USB.

Software

PolyPoint contains many software layers that run at various levels of the system.

TriPoint

The core firmware that makes the drop-in TriPoint module work includes all of the logic to implement two way ToF ranging on top of the DecaWave DW1000 UWB radio. The firmware architecture supports multiple "applications", or ranging algorithms, that can be selected at runtime.

TriTag

The TriTag code implements a BLE application that uses the TriPoint module as an I2C device and prov a BLE service. It puts the TriTag hardware into TAG mode and provides ranges over a BLE characteristic.

Phone and BLE

The tools in the /phone directory interact with TriTag and read data across the BLE interface.


Academic Publications

The PolyPoint project has led to two academic publications, and an invited talk at HotWireless'16. If you are interested in the theory behind the ranging protocol, please check out our publications:

If you use PolyPoint or its derivatives, please use the following citation:

@inproceedings{kempke16surepoint,
	title = {{SurePoint}: Exploiting Ultra Wideband Flooding and Diversity to Provide Robust, Scalable, High-Fidelity Indoor Localization},
	booktitle = {Proceedings of the 14th ACM Conference on Embedded Networked Sensor Systems},
	series = {SenSys'16},
	year = {2016},
	month = {11},
	location = {Stanford, CA, USA},
	conference-url = {http://sensys.acm.org/2016/},
	author = {Kempke, Benjamin and Pannuto, Pat and Campbell, Bradford and Dutta, Prabal},
}

More Repositories

1

signpost

Exploring what happens when you put computers on sign posts.
CSS
89
star
2

nrf5x-base

Starting point and shared code for Nordic nRF5x BLE platforms.
C
89
star
3

eagle

Custom scripts and libraries for Eagle PCB
Python
61
star
4

powerblade

1 inยฒ AC power meter
Python
55
star
5

go-tuntap

Use Tun/Tap devices with Go
Go
50
star
6

vlc-localization

Indoor localization using LED lights and smartphones
Python
34
star
7

raspberrypi-cc2520

Code, hardware, and instructions to use the TI CC2520 with the Raspberry Pi.
Eagle
31
star
8

M-ulator

A highly extensible ARM {e,si}mulator
C
26
star
9

permamote

New generation >10-year lifetime sensor node
C
25
star
10

socitrack

A wearable platform for social interaction studies
C
20
star
11

gateway

Hub for the Lab11 gateway projects
JavaScript
20
star
12

dw1000-driver

Github repo for the DecaWave DW1000 UWB Transceiver SDK
C
20
star
13

blees

Bluetooth Low Energy Environmental Sensors
Eagle
19
star
14

summon

Browser for the Local Web of Things
JavaScript
18
star
15

atum

ยฝ inchยฒ sensor node based on the CC2538
Eagle
18
star
16

nrf52x-base

Starting point and shared code for Nordic nRF52x Thread/BLE platforms.
C
18
star
17

gap

802.15.4 and BLE cape for the BeagleBone Black
Eagle
15
star
18

hijack

Hardware and software for smartphone sensor peripherals using the audio jack interface.
Java
14
star
19

uSDR

A low-power, low-cost, highly-portable software defined radio platform.
Verilog
13
star
20

nrf5x-dfu-updater

Node.js script for nrf5x BLE DFU
JavaScript
12
star
21

KPLC-app-backend

Backend server and support for KPLC app
Python
10
star
22

LoraWAN-Gateway

LoraWAN gateway software for Raspberry Pi and Multitech MTAC-LORA
Shell
9
star
23

iot-gateway

Implementation of the gateway architecture described in "The Internet of Things Has a Gateway Problem".
Java
9
star
24

eink

BLE controlled e-ink display built around the nRF51822
Eagle
9
star
25

hail

An IoT development module that supports the Tock operating system.
Rust
8
star
26

stm32l0-base

General support files for using the STM32L0xx MCU
C
7
star
27

slocalization

High-Fidelity Localization of Slow Energy-Harvesting Tags
Python
7
star
28

otbr

A collection of scripts and services for an OpenThread border router
Shell
6
star
29

IntelEdisonGateway

A Intel edison based gateway
ANTLR
6
star
30

gatd

Versatile data collection service that supports real time streaming and data archival.
JavaScript
5
star
31

stm32f0-hal-base

General support files for using the STM32F0xx MCU
C
5
star
32

buckler

Development board for teaching embedded systems
C
5
star
33

esp32-apps

Applications for the ESP32
C
5
star
34

wearabouts

Semantic localization using fitbits
Python
5
star
35

SOMA-Shade-Control

Control the SOMA smart shades with HTTP.
JavaScript
5
star
36

fitbit_leaderboard

Compete to be the Fibit step champion!
JavaScript
5
star
37

monjolo

Energy-harvesting sensors that meter based on recharge rate.
Eagle
4
star
38

embeddedMFCC

Trying to run MFCCs on an embedded device
C
4
star
39

triumvi

Energy harvesting true power meter
ANTLR
3
star
40

stm32f0-base

General support files for using the STM32F0xx MCU
C
3
star
41

PlugWatch

Sensing power outages with custom hardware
C++
3
star
42

thread-dongle

A low-cost, thread compatible, IEEE 802.15.4 USB dongle
Shell
3
star
43

nucleum

ยฝ inchยฒ sensor node designed around the nRF51822. Based on the atum project.
Eagle
3
star
44

stm32l0xx-gcc-setup

GCC-Makefile template for the STM32L0xx series.
Makefile
3
star
45

emoncms-wattsup

Plugin that handles Watts Up? .net POST messages.
PHP
3
star
46

fast-square

UWB Localization system based on squarewave subcarrier modulation
Verilog
3
star
47

stm32l1xx-gcc-setup

GCC-Makefile template for the STM32L1xx series.
C
3
star
48

audiodaq

AudioDAQ: Turning the Mobile Phoneโ€™s Ubiquitous Headset Port into a Universal Data Acquisition Interface
Python
3
star
49

gecko

Custom indoor solar powered energy-harvesting sensor node capable of 1 packet per minute. Part of the Monjolo family.
C
2
star
50

thingspeak-scraper

Scraping the thingspeak public repo
Python
2
star
51

bluetooth-next

Linux for the BLE/6LoWPAN/802.15.4 subsystems
C
2
star
52

kicad

Support files for Kicad PCB.
Python
2
star
53

stm32f0xx-gcc-setup

GCC-Makefile template for the STM32F0xx series.
C
2
star
54

mindwave

Python
2
star
55

jtag-tagconnect

ARM JTAG to TagConnect adapter.
2
star
56

esp32-gateway

ESP32-Based Gateway for PowerBlade Deployments
C
2
star
57

opo

Opo is a human interaction sensor, able to characterize face to face interactions with 5 cm accuracy and 2 s temporal fidelity.
C
2
star
58

grid-watch

Grid watch is a system for monitoring the state of the power grid using just smart phones.
HTML
2
star
59

visualizations

Visualizations for projects from Lab11
HTML
2
star
60

CurrentSense

Current sensor board for measuring current draw in embedded systems.
HTML
2
star
61

soil-battery

Materials for soil battery manufacture and analysis
Python
2
star
62

watts-up

Code to interface with the Watts up? .net
Python
2
star
63

SensEye-2

Low Power Real-Time Gaze Detection
HTML
2
star
64

iM880-serial-comm

npm package for serial communication with iM880
JavaScript
2
star
65

signpost-software

This repository holds software for the signpost city-scale sensing project
C
2
star
66

ving

Vibratory communications
Eagle
1
star
67

labdoor

Python
1
star
68

OINK

The Open-INcentive-Kit
JavaScript
1
star
69

cinamin-beacon

The infinite-mini Bluetooth Low Energy beacon
Eagle
1
star
70

LoRa-comms

Development of LoRa communications for signpost project
Arduino
1
star
71

torch

Software-defined lighting
HTML
1
star
72

gemini

Energy-harvesting true power meter
nesC
1
star
73

usbreset

Node.js tool for resetting USB adapters
JavaScript
1
star
74

power-metadata-learning

Trying to learn device class based on a power trace. Josh and Neal's ML class project.
Python
1
star
75

alexa-skills

Applications for the Amazon Echo
JavaScript
1
star
76

shoes

Shoes!
Eagle
1
star
77

resound

High power energy-harvesting recording and replay.
Eagle
1
star
78

powerwatch-site-selection

Python
1
star
79

powerblade-data-investigations

Investigating PowerBlade data for calibration, unique waveform detection, and classification purposes
1
star
80

mesos-micro-agent

A minimal implementation of the Apache mesos agent intended be run on very resource constrained, non-*nix computers.
Rust
1
star
81

j2x

A URL redirect/shortener service running on Github Pages
HTML
1
star
82

audiBLE

Bluetooth Low Energy Audio Sensor
Eagle
1
star
83

hmesh

Energy-harvesting mesh networking
Eagle
1
star
84

monoxalyze

Eagle
1
star
85

pyVisa_Tek_MSO2000

script to control Tektronix MSO2000 series scope via USB
Python
1
star
86

mm3-nearfield

900 MHz mm-scale Near Field Radio
Python
1
star
87

nebula

Privacy Preserving Data Mule System
C
1
star
88

edg-sat-prototype

the EDG via SAT solver prototype
Haskell
1
star
89

live-update

Live updates for safety-critical systems
Jupyter Notebook
1
star
90

CoughNote

Detecting some coughs
KiCad Layout
1
star