Skip to content

jacquayj/zen-signal

Repository files navigation

ZenSignal

Real-time biosignal monitoring for Polar H10 heart rate sensors.

image

Download

📥 Download Latest Release

Pre-built binaries available for:

  • 🍎 macOS (Universal, Apple Silicon, Intel)
  • 🪟 Windows 10/11 (64-bit)
  • 🐧 Linux (64-bit)

Or build from source below.

Features

  • Bluetooth Device Discovery - Scan and connect to nearby Polar devices
  • Live Data Visualization - Real-time charts for ECG, heart rate, RR intervals, and accelerometer data
  • Connection Management - Easy connect/disconnect with visual feedback
  • Modern UI - Clean interface built with Iced

Platform Support

ZenSignal is fully cross-platform and supports:

  • Windows 10/11 - Uses Windows Bluetooth LE APIs
  • macOS - Native CoreBluetooth support
  • Linux - BlueZ D-Bus integration

Platform-Specific Requirements

macOS

  • macOS Big Sur (11) or later
  • Bluetooth permission required: Go to System Settings → Privacy & Security → Bluetooth and enable for your terminal application

Windows

  • Windows 10 version 1703 (Creators Update) or later
  • Bluetooth LE adapter
  • No additional permissions required

Linux

  • BlueZ 5.44 or later
  • D-Bus (usually pre-installed)
  • User must be in the bluetooth group: sudo usermod -a -G bluetooth $USER
  • May require additional permissions: sudo setcap cap_net_raw+ep target/debug/zen-signal

Requirements

  • Rust 1.70+
  • Bluetooth LE adapter
  • Polar H10 heart rate sensor
  • Platform-specific dependencies (see above)

Building

Quick Start (All Platforms)

# Clone the repository
git clone https://github.com/jacquayj/zen-signal.git
cd zen-signal

# Build and run
cargo run --release

For detailed build instructions and creating releases, see BUILDING_AND_RELEASES.md.

Linux-Specific Setup

If you encounter Bluetooth permission issues:

# Add your user to the bluetooth group
sudo usermod -a -G bluetooth $USER

# Log out and back in, then build
cargo build --release

# Grant network capabilities (required for BLE scanning)
sudo setcap cap_net_raw+ep target/release/zen-signal

# Run the application
./target/release/zen-signal

Usage

cargo run
  1. Click "Scan for Devices" to discover nearby Polar sensors
  2. Select your device from the list
  3. Click "Connect" to start streaming data
  4. View real-time biosignal charts
  5. Click "Disconnect" to stop

Architecture

  • Backend: Arctic library for Polar Bluetooth communication
  • Frontend: Iced GUI framework
  • Plotting: Plotters for real-time chart rendering
  • Async Runtime: Tokio for connection management

License

MIT

About

Desktop UI: Polar H10 ECG -> Stress

Resources

License

Stars

Watchers

Forks

Packages

No packages published