
Pinpoint timebase
lab11/polypoint
Indoor localization based on the DecaWave DW1000.

Indoor localization based on the DecaWave DW1000.
Pinpoint core is an open-source printed circuit board by lab11, from the lab11/polypoint repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 58.4 × 50 mm with 111 parts on 108 nets.
It is built around the SN65MLVD207D, AOZ1282CI and FT231XS-R, with the PCA9545AD, 93LC56B and FT4232HL among its other parts. Its parts include 50 resistors, 35 capacitors, 16 ICs, 5 connectors and 1 diode. It belongs with the radio and wireless boards of this library.
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.
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.
When cloning this repository, be absolutely sure to do
git clone --recursive https://github.com/lab11/polypoint.gitso 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.
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 includes the following components:
The MCU contains all the necessary code to run the DW1000 and the ranging protocol.
TriTag includes:
TriTag is designed to be the tag to be localized in the system and connected to a smartphone.
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.
PolyPoint contains many software layers that run at various levels of the system.
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.
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.
The tools in the /phone directory interact with TriTag and read data
across the BLE interface.
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},
}| Qty | Value | Footprint | References |
|---|---|---|---|
| 18 | 0.1uF | Capacitors_SMD:C_0402 | C10, C11, C12, C13, C14, C15, C16, C17, C18, C20, C21, C22, C23, C24, C28, C30 +2 |
| 16 | 1K | Resistors_SMD:R_0402 | R29, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44 |
| 8 | 290 | Resistors_SMD:R_0402 | R45, R46, R47, R48, R49, R50, R51, R52 |
| 8 | DNP | Resistors_SMD:R_0402 | R14, R15, R16, R19, R22, R23, R25, R27 |
| 7 | C_Small | Capacitors_SMD:C_0402 | C32, C33, C34, C35, C36, C37, C38 |
| 5 | 10K | Resistors_SMD:R_0402 | R4, R7, R8, R9, R21 |
| 5 | 4.7uF | Capacitors_SMD:C_0805 | C1, C2, C19, C27, C29 |
| 4 | P82B96-PP | Housings_SSOP:TSSOP-8_3x3mm_Pitch0.65mm | U12, U13, U15, U17 |
| 4 | SN65MLVD207D | Housings_SOIC:SOIC-14_3.9x8.7mm_Pitch1.27mm | U5, U6, U8, U10 |
| 3 | CONN_02X18 | polypoint:PCIx_36pos | P2, P3, P4 |
| 2 | 10 | Resistors_SMD:R_0402 | R17, R18 |
| 2 | 100 | Resistors_SMD:R_0402 | R10, R11 |
| 2 | 27 | Resistors_SMD:R_0402 | R12, R13 |
| 2 | 30pF | Capacitors_SMD:C_0402 | C25, C26 |
| 2 | 47pF | Capacitors_SMD:C_0402 | C7, C8 |
| 2 | FILTER | Capacitors_SMD:C_0402 | FB1, FB2 |
| 2 | R_Small | Resistors_SMD:R_0402 | R24, R28 |
| 1 | 0 | Resistors_SMD:R_0402 | R1 |
| 1 | 10uF | Capacitors_SMD:C_0805 | C3 |
| 1 | 12K/1% | Resistors_SMD:R_0402 | R20 |
| 1 | 15.8K | Resistors_SMD:R_0402 | R3 |
| 1 | 22uH | polypoint:INDUCTOR_6.0mm_6.0mm | L1 |
| 1 | 2K | Resistors_SMD:R_0402 | R26 |
| 1 | 49.9K | Resistors_SMD:R_0402 | R2 |
| 1 | 93LC56B | Housings_SOT-23_SOT-143_TSOT-6:SOT-23-6 | U9 |
| 1 | AOZ1282CI | Housings_SOT-23_SOT-143_TSOT-6:SOT-23-6 | U1 |
| 1 | CONN_02X18 | polypoint:PCIx_36pos_Card_Edge | P1 |
| 1 | CRYSTAL_SMD_4 | polypoint:XTAL_2.50mm_2.00mm_4PAD | X1 |
| 1 | D_Schottky_Small | Diodes_SMD:SOD-323 | D1 |
| 1 | FT231XS | polypoint:SSOP-20_6.0x8.7mm_Pitch0.65mm | U4 |
| 1 | FT4232 | Housings_QFP:LQFP-64_10x10mm_Pitch0.5mm | U7 |
| 1 | ICS574 | Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm | U11 |
| 1 | INTEL_EDISON | polypoint:INTEL_EDISON | U3 |
| 1 | PCA9545A | Housings_SSOP:TSSOP-20_4.4x6.5mm_Pitch0.65mm | U14 |
| 1 | SN74AVCH8T245 | Housings_SSOP:TSSOP-24_4.4x7.8mm_Pitch0.65mm | U16 |
| 1 | USB_B | polypoint:USB_Micro-B_Vert | P13 |
It measures 58.4 × 50 mm and has 2 copper layers, 1.6 mm thick.
111 parts, built around the SN65MLVD207D, AOZ1282CI, FT231XS-R and PCA9545AD. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the lab11/polypoint repository on GitHub, at the commit this page was made from: the board is pcb/pinpoint/pinpoint_core/pinpoint_core.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

lab11/polypoint
Indoor localization based on the DecaWave DW1000.



lab11/polypoint
Indoor localization based on the DecaWave DW1000.

lab11/polypoint
Indoor localization based on the DecaWave DW1000.







phuid/laser_projector
this script installs all the dependencies of my programs and sets up the RaspberryPi to start all the programs on boot using pm2.

petermaerki/puenterswis_heizung_2023_git
Puenterswis Heizungsersatz, Steuerung Anlage mit Oekofen Kaskade Pellematic Maxi PESK
