Finds paired sensors
Discovers paired Bluetooth LE devices that expose the standard GATT Heart Rate service.
Windows WPF Bluetooth to OSC bridge
Reads BPM from a paired heart-rate sensor.
Sends VRChat OSC avatar parameters.
A focused desktop utility for sending heart-rate driven avatar state into VRChat.
Discovers paired Bluetooth LE devices that expose the standard GATT Heart Rate service.
Outputs OSC messages to 127.0.0.1:{port}, using VRChat's default receive port by default.
Generates sample BPM values so you can check avatar parameters before connecting a real sensor.
Set up Windows, VRChat, and your avatar parameters before starting the bridge.
Enable Use test mode in the app or launch with --test to send generated BPM values.
The app sends both default parameters to 127.0.0.1:9000. Enter only the parameter name in the app; the OSC prefix is added when sending.
| Setting | Default OSC address | Type | Value |
|---|---|---|---|
| Int BPM parameter | /avatar/parameters/HR |
int |
Current BPM |
| Float BPM parameter | /avatar/parameters/HRPercent |
float |
Normalized BPM from 0.0 to 1.0 |
The default normalization range is 80 BPM to 160 BPM, so 80 maps to 0.0 and 160 maps to 1.0.
Use a Windows machine with Bluetooth support and a VRChat avatar prepared for OSC avatar parameters.
Settings are saved under the current Windows user profile.
%LOCALAPPDATA%\HR-OSC-VRChat\settings.json
Activity logs are written as rotating log files.
%LOCALAPPDATA%\HR-OSC-VRChat\logs\activity-*.log
Most setup issues come from Bluetooth pairing, OSC being disabled, or avatar parameter names and types not matching.
Pair the heart-rate monitor in Windows first. The app discovers paired Bluetooth LE devices that expose the Heart Rate service.
Check that OSC is enabled in VRChat, the app is sending to the same port VRChat is listening on, and your avatar parameters match the configured names and types.
Verify that the avatar has OSC parameters with the same names and compatible types. An app setting of HR sends to /avatar/parameters/HR.
Use Reconnect Sensor to reconnect manually. Automatic recovery can reconnect after repeated sensor errors, and verbose Bluetooth diagnostics can write more detail to the activity log file.
The VRChat OSC side is likely configured correctly. Check Windows Bluetooth pairing, sensor battery, sensor contact, and whether another app is already connected to the monitor.