bivital
bivital is the official Python library for the BI-Vital data workflow.
It helps you organize, preprocess, and manage measurement projects, series, and raw data collected via BI-Vital systems.
🚀 Features
- Project structure setup
- Series and data import
- Label management
- Command-line tool (
bvtool) for fast interaction - Optional Jupyter workflow extras (
[notebook]) - Bluetooth (BLE) API and CLI support
📦 Installation
Requires Python ≥ 3.10
(3.11/3.12 recommended)
Stable release (PyPI)
pip install bivital
With notebook extras
pip install "bivital[notebook]"
From source (local checkout)
# in the repo root
pip install .
# or in editable/development mode (plus notebook extras)
pip install -e ".[notebook]"
🛠 Usage
Command-Line Interface (CLI)
bvtool -h
bvtool project -p PATH -n NAME
bvtool series -p PATH -n NAME
bvtool data -p PATH -s pc
bvtool label -p PATH
bvtool commander
bvtool time sync
bvtool time calibrate
Recordings
bvtool recording convert log00.bin -o log00.csv
bvtool recording convert log00.bin
bvtool recording view log00.bin log01.bin log02.csv
bvtool recording view log00.bin 20260723_124839.csv
The recording viewer is hosted at
bivital.eu; decoding and plotting
happen locally in the browser. The Python command starts a small localhost adapter
which passes command-line files to the hosted viewer. CSV recordings are converted
in the browser to the same internal binary representation used for BIN recordings.
Without -o, recording convert opens a sparse millisecond terminal table.
One app annotation .csv can be added globally; loading another replaces it.
The viewer starts with a 30-second detail range, pre-aggregates the full
overview while indexing and provides two point cursors for Δt and Δy.
Choose Set A or Set B, then click anywhere in a detail plot to place it.
BLE (via bvtool)
# Scan BI-Vital devices
bvtool ble scan
# Read one value (short device token from name is supported)
bvtool ble read --address <XXXX> battery_level
# Write one value
bvtool ble write --address <XXXX> led_color green
# Stream one or multiple values
bvtool ble stream --address <XXXX> heart_rate.bpm
bvtool ble stream --address <XXXX> heart_rate.bpm,motion_raw.acc_ms2
Python (minimal check)
import bivital
print("bivital version:", getattr(bivital, "__version__", "unknown"))
📂 Example Project Structure
BiVitalProject/
├── Series1/
│ └── MAC_01/
│ └── log_01.csv
└── Series2/
└── ...
💬 Support & Contributing
- Issues & feature requests: https://gitlab.ub.uni-bielefeld.de/bi-vital-open-source/py_bivital/-/issues
- Homepage: https://bivital.eu/
Contributions are welcome—please open an issue to discuss changes first.
📜 License
MIT © University Bielefeld
Release files for bivital 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bivital-0.1.9.tar.gz | 2.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bivital-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.1 MB
Release files / bivital-0.1.9.tar.gz
| Download URL | bivital-0.1.9.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
52a9545ad79d40bf5d59ade43913689150279b4242131e417db8a89c1dadb303
|
|
BLAKE2b-256 checksum How to use checksums |
c268792196a4b70866f41e381576f5454628064e3dfa3d291766d591eeed5032
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / bivital-0.1.9-py3-none-any.whl
| Download URL | bivital-0.1.9-py3-none-any.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
69af560fa79cdf24eb1eeac4f9e2c59dc456d2519ee7a10f45d152a12942ac78
|
|
BLAKE2b-256 checksum How to use checksums |
d76eb5e2670aa81706d605114809dee5e7a7117d26b541618fbb51467e1f4e0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|