Unofficial local BLE tooling for supported Polar devices.
Project description
polar-ble-tools
Independent Python tools for working with supported Polar wearable devices over Bluetooth Low Energy.
polar-ble-toolsis an unofficial community project. It is not affiliated with, endorsed by, sponsored by, or maintained by Polar Electro Oy.
Capabilities
- discover, pair, and connect devices through Linux BlueZ;
- issue PMD commands and manage offline recording;
- use PFTP to list, retrieve, and manage device files;
- retrieve raw
.RECrecordings with SHA-256 manifests and guarded cleanup; - retrieve passive
.BPBfiles and decode supported data with local schemas; - validate and apply first-time-use (FTU) data;
- generate and verify optional local schemas from a separately obtained SDK;
- locally decode supported
.RECfiles to validated JSONL with an optional SDK sidecar.
Installation
Device operations require Linux, BlueZ, and bluetoothctl. Python 3.11 or
newer is supported.
python -m pip install polar-ble-tools
polar-ble --help
Install the optional schema compiler only for SDK-assisted FTU encoding and BPB decoding:
python -m pip install "polar-ble-tools[sdk]"
polar-ble sdk install --accept-license
Quick start
Discover and pair a device:
polar-ble discover --scan-seconds 15 --name Polar
polar-ble pair --mac-address AA:BB:CC:DD:EE:FF --scan-seconds 15
List and collect raw recordings:
polar-ble raw --mac-address AA:BB:CC:DD:EE:FF list
polar-ble raw --mac-address AA:BB:CC:DD:EE:FF collect
Review a cleanup without deleting device files:
polar-ble raw --mac-address AA:BB:CC:DD:EE:FF cleanup --all --dry-run
See device setup, offline recording, and raw retrieval before performing device mutations.
Compatibility
Controlled hardware validation covers Polar Loop Gen 2 on Linux/BlueZ. Other devices exposing the required PMD and PFTP services may work but are not confirmed for this release. See compatibility for the verified capability matrix and limitations.
Optional SDK-assisted functionality
The package does not distribute the Polar BLE SDK, Polar SDK schema files, or artefacts generated from those files. Optional SDK-assisted functionality uses an SDK copy separately obtained and licensed by the user.
SDK download, inspection, generation, verification, activation, and removal are
explicit polar-ble sdk commands. Package installation and import never perform
those operations. See SDK integration.
REC decoding is optional and local-only. It requires a separately installed SDK and a user-built decoder; no SDK source or decoder binary is distributed:
polar-ble sdk decoder build
polar-ble rec status
polar-ble rec decode PPI0.REC --output PPI0.jsonl
See REC decoding for prerequisites, protocol, cache, security boundary, and limitations; see compatibility for the evidence-backed matrix.
Documentation and development
- Configuration and CLI
- CLI reference
- Python API reference
- Architecture
- Troubleshooting
- Contributor guide
- Development
- Release process
- 0.2.0 release notes
Licence and trademarks
Project-authored content is licensed under the Apache License 2.0. See NOTICE for attribution, trademark, and SDK-separation notices.
Polar and related product names are trademarks of Polar Electro Oy and are used solely to identify compatible devices.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file polar_ble_tools-0.2.0.tar.gz.
File metadata
- Download URL: polar_ble_tools-0.2.0.tar.gz
- Upload date:
- Size: 95.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7f610bf6e32fbdd2a5ad86badde5c3f3a6666a648108b68244e505edaa061c7
|
|
| MD5 |
264a222ef4d0a9a13332a372843d14a9
|
|
| BLAKE2b-256 |
041337ad84f890ca08efdbbd3881201e0218c3e5c653debbb8c3a7f19522c0e5
|
Provenance
The following attestation bundles were made for polar_ble_tools-0.2.0.tar.gz:
Publisher:
pypi-release.yml on zyf0717/polar-ble-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polar_ble_tools-0.2.0.tar.gz -
Subject digest:
e7f610bf6e32fbdd2a5ad86badde5c3f3a6666a648108b68244e505edaa061c7 - Sigstore transparency entry: 2256169665
- Sigstore integration time:
-
Permalink:
zyf0717/polar-ble-tools@149d20004f4e241833cd8be72d9fc4525fe19037 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/zyf0717
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-release.yml@149d20004f4e241833cd8be72d9fc4525fe19037 -
Trigger Event:
push
-
Statement type:
File details
Details for the file polar_ble_tools-0.2.0-py3-none-any.whl.
File metadata
- Download URL: polar_ble_tools-0.2.0-py3-none-any.whl
- Upload date:
- Size: 123.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bb36cc94c8c55b57d2b9ac03c30636d8be9dfde8a1171c3207dc4adef018764
|
|
| MD5 |
65a0f2caf3e818884fe0e282b7db5918
|
|
| BLAKE2b-256 |
b4dfcec18bf204436817956730b02f9cba660b2025ffdc27775780d2b40e356c
|
Provenance
The following attestation bundles were made for polar_ble_tools-0.2.0-py3-none-any.whl:
Publisher:
pypi-release.yml on zyf0717/polar-ble-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polar_ble_tools-0.2.0-py3-none-any.whl -
Subject digest:
0bb36cc94c8c55b57d2b9ac03c30636d8be9dfde8a1171c3207dc4adef018764 - Sigstore transparency entry: 2256169668
- Sigstore integration time:
-
Permalink:
zyf0717/polar-ble-tools@149d20004f4e241833cd8be72d9fc4525fe19037 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/zyf0717
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-release.yml@149d20004f4e241833cd8be72d9fc4525fe19037 -
Trigger Event:
push
-
Statement type: