{"id":20885362,"url":"https://github.com/lab11/polypoint","last_synced_at":"2025-10-13T06:38:07.353Z","repository":{"id":29516493,"uuid":"33054882","full_name":"lab11/polypoint","owner":"lab11","description":"Indoor localization based on the DecaWave DW1000.","archived":false,"fork":false,"pushed_at":"2019-06-03T23:37:09.000Z","size":33956,"stargazers_count":134,"open_issues_count":7,"forks_count":51,"subscribers_count":36,"default_branch":"master","last_synced_at":"2024-04-14T04:45:09.318Z","etag":null,"topics":["ble","hardware","localization","open-hardware","open-source","range","ultra-wideband","university-project"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lab11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-28T23:51:28.000Z","updated_at":"2024-03-19T06:09:06.000Z","dependencies_parsed_at":"2022-09-03T20:31:55.265Z","dependency_job_id":null,"html_url":"https://github.com/lab11/polypoint","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fpolypoint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fpolypoint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fpolypoint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fpolypoint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lab11","download_url":"https://codeload.github.com/lab11/polypoint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225148872,"owners_count":17428430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ble","hardware","localization","open-hardware","open-source","range","ultra-wideband","university-project"],"created_at":"2024-11-18T08:13:18.543Z","updated_at":"2025-10-13T06:38:02.334Z","avatar_url":"https://github.com/lab11.png","language":"C","readme":"PolyPoint\n=========\n\n\u003cimg src=\"https://raw.githubusercontent.com/lab11/polypoint/master/media/polypoint_logo_a.png\" alt=\"PolyPoint\" width=\"20%\" align=\"left\"\u003e\n\nPolyPoint is a system for using ultra-wideband RF time-of-flight ranging to perform indoor localization.\nIt incorporates the DecaWave DW1000 for UWB packet transmission and timestamping\ninto a solder-on module that provides node-to-node ranges over an I2C interface.\n\n\n\nName\n----\n\nThe name PolyPoint comes from the use of many polygons and shapes in the prototype design and the\ndesire to pinpoint where users are with the system.\n\n\nGit Clone\n---------\n\nWhen cloning this repository, be absolutely sure to do\n\n    git clone --recursive https://github.com/lab11/polypoint.git\n    \nso that you get the submodules as well. All of the supporting\nlibraries and build tools are in submodules for the various\nhardware platforms used in this project.\n\n\nHardware\n--------\n\nThe PolyPoint system is composed of several hardware pieces. At the core is the\nTriPoint module which is a 1.25\" on a side triangle that encompasses all of the\ncore ranging hardware and software. TriPoint has castellated edges and can be\nsoldered on to a carrier board, effectively as a ranging IC. TriTag is one such\ncarrier board designed to be the tag in the ranging system. It includes the\nUWB antennas and a Bluetooth Low Energy radio plus a battery charging circuit.\nTriTag is able to provide ranges to a mobile phone application.\n\n### TriPoint\n\nTriPoint includes the following components:\n\n- DecaWave DW1000 UWB radio\n- STM32F031G6U6 MCU\n- RF switch\n\nThe MCU contains all the necessary code to run the DW1000 and the ranging\nprotocol.\n\n### TriTag\n\n\n  \u003cimg src=\"https://raw.githubusercontent.com/lab11/polypoint/master/media/tritag_blue_1000x889.jpg\" alt=\"TriTag\" width=\"20%;\" align=\"right\"\u003e\n\n\nTriTag includes:\n\n- The TriPoint module\n- 3 UWB antennas\n- nRF51822 BLE radio\n- 3.3 V LDO\n- Li-ion battery charger\n\nTriTag is designed to be the tag to be localized in the system and connected\nto a smartphone.\n\n\n### TriDev\n\nTriDev is a breakout and testing board for the TriPoint module.\nIt contains the same BLE hardware as TriTag, but also adds an FTDI\nchip for issuing I2C commands over USB.\n\n\nSoftware\n--------\n\nPolyPoint contains many software layers that run at various levels of\nthe system.\n\n#### TriPoint\n\nThe core firmware that makes the drop-in TriPoint module work\nincludes all of the logic to implement two way ToF ranging\non top of the DecaWave DW1000 UWB radio. The firmware architecture\nsupports multiple \"applications\", or ranging algorithms, that can\nbe selected at runtime.\n\n#### TriTag\n\nThe TriTag code implements a BLE application\nthat uses the TriPoint module as an I2C device and prov\na BLE service. It puts the TriTag hardware into TAG mode\nand provides ranges over a BLE characteristic. \n\n#### Phone and BLE\n\nThe tools in the `/phone` directory interact with TriTag and read data\nacross the BLE interface.\n\n----\n\n## Academic Publications\n\nThe PolyPoint project has led to two academic publications, and an invited talk at HotWireless'16.\nIf you are interested in the theory behind the ranging protocol, please check out our publications:\n\n - **[SurePoint: Exploiting Ultra Wideband Flooding and Diversity to Provide Robust, Scalable, High-Fidelity Indoor Localization.](http://lab11.eecs.berkeley.edu/content/pubs/kempke16surepoint.pdf)** Benjamin Kempke, Pat Pannuto, Bradford Campbell, and Prabal Dutta. Proceedings of the 14th ACM Conference on Embedded Networked Sensor Systems (SenSys’16).\n - **[PolyPoint: Guiding Indoor Quadrotors with Ultra-Wideband Localization.](http://lab11.eecs.berkeley.edu/content/pubs/kempke15polypoint.pdf)** Benjamin Kempke, Pat Pannuto, and Prabal Dutta. 2015 ACM Workshop on Hot Topics in Wireless (HotWireless’15).\n \nIf you use PolyPoint or its derivatives, please use the following citation:\n\n```bibtex\n@inproceedings{kempke16surepoint,\n\ttitle = {{SurePoint}: Exploiting Ultra Wideband Flooding and Diversity to Provide Robust, Scalable, High-Fidelity Indoor Localization},\n\tbooktitle = {Proceedings of the 14th ACM Conference on Embedded Networked Sensor Systems},\n\tseries = {SenSys'16},\n\tyear = {2016},\n\tmonth = {11},\n\tlocation = {Stanford, CA, USA},\n\tconference-url = {http://sensys.acm.org/2016/},\n\tauthor = {Kempke, Benjamin and Pannuto, Pat and Campbell, Bradford and Dutta, Prabal},\n}\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flab11%2Fpolypoint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flab11%2Fpolypoint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flab11%2Fpolypoint/lists"}