A simple (kind of jank) solution for capturing and streaming heartrate to VRChat or other osc applications without lizard middle-men
This is a DIY hardware project. It requires soldering, 3D printing, and at least a basic knowledge of working with VRChat systems
You'll have to get your paws a little dirty building some rudimentary hardware to get this up and running.
I'd recommend using an ESP32 WROOM dev board (like this one) and a MAX30102 pulse oximeter (like this one)
Please note: whatever board you use must have onboard Wifi and support for Arduino Core.
To connect the pulse oximeter to the board, connect/solder these pins:
MAX30102 | ESP32 GPIO |
---|---|
VIN/VCC | 3.3V |
GND | GND |
SDA | 21 |
SDL | 22 |
Then you'll need to install Arduino IDE 2 or Arduino Cli and the ESP32 board extension, then configure your wifi SSID, password, and the ip address of the server in Firmware.ino
, then flash to the board. Once you power the board on, it should connect to wifi, then search for the server (Read the serial output).
I'm also planning to design a 3d-printable case which mounts a battery pack and uses elastic bands to attach the device to your upper arm or wrist. I'm lazy and CAD is hard, so maybe I'll get to it.. ?
Just download a build of the server from releases and run it from a cmd before starting VRChat.
Make sure to include the --port= and --address= parameters
If you're already using/would rather use VRCOSC, there's also a module included in the releases as a dll. Just follow the VRCOSC instructions for importing a module.
Parameter | Type | Notes |
---|---|---|
Plasma/Enable |
bool | Writeable; toggled to enable/disable updating of bpm |
Plasma/Online |
bool | Readonly; shows connection status of server |
Plasma/BPM |
int | Readonly; heartrate in bpm |