WHOOP 4.0 strap reverse engineering. Whoomp! There It Is
Live at https://jogolden.github.io/whoomp/ !!
This uses the Web Bluetooth API which is not supported on some browsers.
Most of the interesting functionality is in the whoop.js module. This connects, setups event handlers, and implements commands.
Before I started on the website, I created some python scripts. My process was basically reverse engineer Android app, get latest firmware, extract firmware, analyze firmware, rebuild everything in python using the bleak library.
whoop.pybasic cli interface for dealing with the whooppacket.pypacket structure class and enumsparser.pythis will parse the historical data packetsplot.pythis can plot historical data dumpshrv.pythis will do some hrv analysis on historical data dumps
I am looking for people to help expand this project. I promise to not be strict and accept pull requests!
Where can you help?
- Heart rate analysis, clean up data
- HRV analysis, frequency and time domain, give a score
- Look at whats happening during sleep
- More graphs!
- Add 'time' labels and navigation on GUI
- Parse historical data on website
- Create an efficient and standard format for historical data
- Load historical data into the website
Any other ideas? Create an issue!
TODO: document firmware, update format, extraction, analysis of binaries, hardware schematic, battery pack updater, etc.
