At the end of 2021 we got an orbitrack - and immediately wasn't happy about its in-built computer: not only it has poor visibility and no colors - but also its heart rate monitor works only when you keep hands on the bike's handlebar, it has no contacts on vertical moving parts.
So we replaced it (in fact, did that a couple of weeks before the war hit, so shooting a video took just a bit longer than we anticipated)
We took advantage of uECG project we are working on - so heart rate measurement is handled by the device, and ESP32 only receives its data via BLE. The project code is rather modular so a different heart rate sensor can be connected there instead (although characteristics UUID and parsing function should be changed for that, as well as advertiser filter), or it can be used without heart rate sensor at all - but then it won't be as useful.
The main value of that project is that it shows current heart zone as a color (area between resting heart rate and maximum heart rate is divided into areas and zone defines your training mode), so you can run at optimal load for your goal.
Connection to orbitrack's speed sensor is very simple: sensor is just a switch that is open/closed at different parts of the revolution, from the amount of state changes you can estimate revolution time - and that can be translated into speed in several ways (I'm translating it to bike speed, it can be translated into running speed as well - but orbitrack's load is more similar to cycling than to running, even though not equal to either of those).
Calories measurement is rather arbitrary - I found some formulas for calculating orbitrack calories rate online and just hope they are reasonably fitting, no idea how true they actually are.