Tech - CORE Developer Information
Do you want to add CORE support into your product, solution, or platform? We try to make the integration of CORE as simple as possible, and we are here to help support you and your projects.
We have adopted and pioneered open protocols to make CORE and future products that support core body temperature seamless to integrate.
CORE uses open standard profiles to communicate to a variety of devices. Support for CORE comes in two methods:
- Live data via ANT+ or BLE open profiles
- FIT and other file parsing for data analysis
Fast Overview for Developers
CORE supports the new CoreTemp ANT+ open standard. The full specification is available on thisisant.com > with the specific document on the CoreTemp ANT+ profile:
Developer > resources download > documents > Member Early Release We can also make it available upon request. Please, contact us if you have trouble accessing the profile. |
CORE uses the standard GATT Health Thermometer Profile. Additionally, CORE supports the Battery profile as well as a ‘manufacture specific page’ that adds the additional information found in the ANT+ CoreTemp profile, which can be accessed here. |
Data from most devices is stored in FIT or equivalent files. The core_temperature is included in the standard FIT SDK standardizing how to record and parse current and future products in a compatible format. More information on the FIT SDK can be found in the Garmin Developer Docs. |
Find an example code for ANT+ and BLE here: www.github.com/corebodytemp |
Live transmitted data
A few features are exposed in the profiles that make CORE more usable.
core_temperature: this is the fundamental value that should be recorded into the FIT or other files using the Native numbers defined in the FIT sdk. Core_temperature is transmitted as a 16-bit interger representing the temperature in Celsius with two decimal points – divide the read value by 100 to get the correct value.
Auto pairing heart rate monitors: CORE used for sports is more accurate if used with a heart rate monitor. If the display device/watch/bike computer uses a heart rate monitor, that same device can be paired with CORE to improve accuracy.
If the CORE profile supports a heart rate monitor and is not paired – it is recommended to send the heart rate monitor id to the CORE device to allow for pairing to the correct device.
CORE also supports querying the current heart rate monitor id, and if it does not match the display device, it can be changed.
When the CORE sensor uses heart rate, the value of 16 should be added to the core_data_quality field to represent that the heart rate signal is being used.
skin_temperature: skin temperature is an optional parameter supported by CORE. Many coaches and athletes are now doing advanced analysis with skin_temperature, so recording this value in the FIT file or other file formats is recommended.
The value is transmitted as a 12-bit interger. To get the correct value, divide the transmitted value by 20, giving an accuracy of 0.05.
core_data_quality: data quality is relevant for weighting the data received. If the data_quality is low or poor, the value should be trusted less.
When recording core_data_quality – write out the transmitted value. If the heart rate is used, add 16 to data quality to show that the sports algorithm is used.
core_reserved: at this time, it is recommended to read the live value and record them in the FIT file or other corresponding files. This feature is currently being developed further and will have very useful information in the near future.
Recorded data
All values are recorded in Celsius. The displaying application should be responsible for converting the units if so required.
Recording data into the fit and other files
For consistency, please use the standard names and native numbers used in the FIT SDK. core_temperature and avg_core_temperature, min_ core_temperature, max_ core_temperature for lap and session all have native fields id’s that are recommended to use.
skin_temperature, core_reserved, and core_data_quality do not have FIT native numbers, so the exact names should be used to be parsed correctly by the different cloud platforms. Below is a table outlining the recommended formats for writing or parsing in your project.
Keep us in the loop and let us help!
Please keep us informed of your projects and progress. We are here not only to support you and make integration as seamless as possible – but also interested in helping promote awareness through our channels.
For further information, please contact us here.