The pulse.loop uses Bluetooth LE to communicate with client devices. It uses as many standardised services as possible, and implements some extra services for internal debugging and configuration.
The specifications for the standardised services are specified by the Bluetooth SIG.
Here is a list of the SIG-defined services used by the pulse.loop:
| Service | UUID | Description |
|---|---|---|
| Battery | 0x180F |
Battery level |
| Current Time | 0x1805 |
Current time |
| Device Information | 0x180A |
Manufacturer, model, serial number, ... |
| Heart Rate | 0x180D |
Heart rate measurement, body sensor location |
| Pulse Oximeter | 0x1822 |
Pulse oximeter measurement |
We also use some custom services for internal debugging and configuration.
| Service | UUID | Description |
|---|---|---|
| Calibration | 0E87EDC7-757C-49BA-87A8-F1EA1053F4C1 |
[DEBUG ONLY] Calibration data. |
| Firmware upgrade | 0BA1B4AC-734A-4E75-AD22-8D5BBDEA5025 |
Firmware upgrade service. |
| Historic data | DE753059-8906-4F07-A192-12879BB84DA7 |
Historic data that can be downloaded by the user. |
| Optical frontend configuration | C8F276D4-E0DD-4660-8070-619FF734134B |
[DEBUG ONLY] Optical sensor configuration. |
| Results | 5BE2E901-D0EC-4A5F-9488-3C80CE223852 |
Heart rate measurements, Sp02 measurements, wrist presence and perfusion indices. |
| Sensor data | 272DF1F7-9D28-4B8C-86F6-30DB30ACE42C |
[DEBUG ONLY] Optical sensor data, IMU data, system status and parameters. |
| Settings | 821198C8-3036-4E14-B01C-364F2B20C603 |
Settings that can be changed by the user. |
| pulse.loop identifier | 68D68245-CFD8-4A1C-9858-B27ABC4C382E |
pulse.loop BLE API version. Used for detection. |
This service is used to detect if a device is a pulse.loop or not. It contains a single characteristic, which is a read-only string containing the BLE API version. This service is advertised in scan response data, so it is not necessary to connect to the device to detect it.
| Characteristic | Access | UUID | Description | FW | SW |
|---|---|---|---|---|---|
| Version | Read | 1852299D-AE64-4E4F-B915-CB37E7FD57C9 |
BLE API version. | Yes | Yes |
The settings service is used to change the settings of the pulse.loop. It exposes high-level settings that can be changed by the user.
| Characteristic | Access | UUID | Description |
|---|
The historic data service is used to download historic data from the pulse.loop.
| Characteristic | Access | UUID | Description |
|---|
The firmware upgrade service is used to upgrade the firmware of the pulse.loop. It exposes a special serial port over BLE that can be used to send firmware images to the pulse.loop.
| Characteristic | Access | UUID | Description |
|---|
Data from the optical frontend and other sensors.
| Characteristic | Access | Type | UUID | Description | FW | SW |
|---|---|---|---|---|---|---|
| Raw optical data | Read | Raw | 26CB3CCA-F22E-4179-8125-55874E9153AD |
The latest readings from the frontend [V]. | Yes | Yes |
| Filtered optical data | Read | Filtered | BDC0FC52-797B-4065-AABA-DC394F1DD0FD |
The DC and AC filtered data [A]. | Yes | Yes |
| Characteristic | Access | Type | UUID | Description | FW | SW |
|---|---|---|---|---|---|---|
| LED1 adc set point | Read/Write | f32 |
9B98BA9A-9EEA-40F6-87F4-53BF2BB19699 |
The set point of the readings when LED1 is active [V]. | Yes | Yes |
| LED1 adc working threshold | Read/Write | f32 |
41A91B62-9FB2-41E3-906A-E24697D938D5 |
The working threshold of LED1 [V]. | Yes | Yes |
| LED1 alpha | Read/Write | f32 |
A01B4911-9CA4-4E51-A484-C0E5E962FDA6 |
The skin reflectance parameter for LED1 [-]. | Yes | Yes |
| LED1 current max | Read/Write | f32 |
71F1573E-DB0D-4B52-9E9F-AA505719D41D |
The maximum current of LED1 [A]. | Yes | Yes |
| LED1 current min | Read/Write | f32 |
2043264C-C1A8-4A62-8FDE-525BE380AA13 |
The minimum current of LED1 [A]. | Yes | Yes |
| LED1 offset current max | Read/Write | f32 |
0428B369-BD92-4625-BEF3-55B9C054411E |
The maximum offset current of LED1 [A]. | Yes | Yes |
| LED1 offset current min | Read/Write | f32 |
914E65A0-F10D-4E35-9705-424FBE514594 |
The minimum offset current of LED1 [A]. | Yes | Yes |
| LED1 offset current set point | Read/Write | f32 |
BA6BFE73-1621-42CC-B792-AEE5BAAE57CD |
The set point of the offset current of LED1 [A]. | Yes | Yes |
| LED2 LED3 adc set point | Read/Write | f32 |
BA113050-05DC-4A44-B4EF-7DBF10E74171 |
The set point of the readings when LED2 and LED3 are active [V]. | Yes | Yes |
| LED2 LED3 adc working threshold | Read/Write | f32 |
43C5ECAD-63F4-42A8-A3AE-7F799FF6B01B |
The working threshold of LED2 and LED3 [V]. | Yes | Yes |
| LED2 LED3 alpha | Read/Write | f32 |
1E33ED6E-1EB1-4738-9BAA-6A617BECB801 |
The skin reflectance parameter for LED2 and LED3[-]. | Yes | Yes |
| LED2 LED3 current max | Read/Write | f32 |
2EB0E60C-B688-479A-AC80-D196F3146FD0 |
The maximum current of LED2 and LED3[A]. | Yes | Yes |
| LED2 LED3 current min | Read/Write | f32 |
9621CF82-87A9-4794-AB81-7BAC475574BD |
The minimum current of LED2 and LED3[A]. | Yes | Yes |
| LED2 LED3 offset current max | Read/Write | f32 |
6F2BB2FE-6DB8-4D3B-8AA6-5D4845CFBFA2 |
The maximum offset current of LED2 and LED3 [A]. | Yes | Yes |
| LED2 LED3 offset current min | Read/Write | f32 |
913C4C37-63E9-49C4-9944-782DD702D503 |
The minimum offset current of LED2 and LED3 [A]. | Yes | Yes |
| LED2 LED3 offset current set point | Read/Write | f32 |
FDBB0D89-33B6-40E0-B7B5-1C5E74D3FB05 |
The set point of the offset current of LED2 and LED3 [A]. | Yes | Yes |
Analog frontend parameter configuration for testing and algorithm development.
| Characteristic | Access | Type | UUID | Description | FW | SW |
|---|---|---|---|---|---|---|
| ADC averages | Read/Write | u8 |
7ADE19EA-2202-48E1-AFFB-4D8504024C37 |
The number of averages performed by the ADC [-]. | Yes | Yes |
| Ambient ADC conversion end | Read/Write | f32 |
9B6AF28C-9558-49ED-844B-06E7B8B0E6C3 |
The end time of ambient ADC conversion [s]. | Yes | Yes |
| Ambient ADC conversion start | Read/Write | f32 |
66DC5EDA-B89E-43D5-B940-13E29A468C77 |
The start time of ambient ADC conversion [s]. | Yes | Yes |
| Ambient ADC reset end | Read/Write | f32 |
E9AB33D4-DA9C-4424-851A-16CF66AA08C0 |
The end time of ambient ADC reset [s]. | Yes | Yes |
| Ambient ADC reset start | Read/Write | f32 |
FD7FAFE2-4464-4F8C-A55C-79E45FB916B3 |
The start time of ambient ADC reset [s]. | Yes | Yes |
| Ambient offset current | Read/Write | f32 |
4ED69FED-8261-4931-A8A4-CA67B406A73A |
The offset current of ambient [A]. | Yes | Yes |
| Ambient sample end | Read/Write | f32 |
83C29A09-B658-4316-A1FD-D8AD97C02F80 |
The end time of ambient sample [s]. | Yes | Yes |
| Ambient sample start | Read/Write | f32 |
C35EBCC5-BCA4-4716-90E3-37B94D9AD6FF |
The start time of ambient sample [s]. | Yes | Yes |
| Decimation factor | Read/Write | u8 |
4D5A0E9C-0164-4D65-8F2D-86741B820EEF |
The number of data samples to be averaged [-]. | Yes | Yes |
| Dynamic power-down end | Read/Write | f32 |
BC276997-792F-4391-9371-78F1C1038DB7 |
The end time of dynamic power-down [s]. | Yes | Yes |
| Dynamic power-down start | Read/Write | f32 |
0B68331C-B628-4D81-BBDB-47B79EA2430E |
The start time of dynamic power-down [s]. | Yes | Yes |
| LED1 ADC conversion end | Read/Write | f32 |
C455472B-4231-4EF7-A3BD-A1AE2676F9D2 |
The end time of LED1 ADC conversion [s]. | Yes | Yes |
| LED1 ADC conversion start | Read/Write | f32 |
ED9B9EE3-AAFE-4034-8C07-1D7F495288B1 |
The start time of LED1 ADC conversion [s]. | Yes | Yes |
| LED1 ADC reset end | Read/Write | f32 |
7049E8C6-A0CE-4380-8186-1B7CD34179ED |
The end time of LED1 ADC reset [s]. | Yes | Yes |
| LED1 ADC reset start | Read/Write | f32 |
C8B42A6D-ECFC-40E8-8E3C-F5876EE749A3 |
The start time of LED1 ADC reset [s]. | Yes | Yes |
| LED1 current | Read/Write | f32 |
A20B7943-5E1D-4053-8C4E-CD44463F460D |
The current of LED1 [A]. | Yes | Yes |
| LED1 lighting end | Read/Write | f32 |
9C678B37-F3AA-4B8C-AFD5-10B4694E49C7 |
The end time of LED1 illumination [s]. | Yes | Yes |
| LED1 lighting start | Read/Write | f32 |
F02C15DF-14F1-4872-BE99-33EE64F0E0B3 |
The start time of LED1 illumination [s]. | Yes | Yes |
| LED1 offset current | Read/Write | f32 |
C5C6B835-56A6-4FC5-81BF-7512595DF3BD |
The offset current of LED1 [A]. | Yes | Yes |
| LED1 sample end | Read/Write | f32 |
F60A8B03-FAB1-433D-9D9E-8722DF003329 |
The end time of LED1 sample [s]. | Yes | Yes |
| LED1 sample start | Read/Write | f32 |
FB219512-DC81-461A-B558-FE6E310E9333 |
The start time of LED1 sample [s]. | Yes | Yes |
| LED2 ADC conversion end | Read/Write | f32 |
40314C89-306E-47F0-AE1F-C5DDD8C0CDDD |
The end time of LED2 ADC conversion [s]. | Yes | Yes |
| LED2 ADC conversion start | Read/Write | f32 |
160CC306-3CA6-4BF5-AC0B-85443F3CFC6B |
The start time of LED2 ADC conversion [s]. | Yes | Yes |
| LED2 ADC reset end | Read/Write | f32 |
34D6F164-543F-49F4-B0F1-6E68DC4CEE6B |
The end time of LED2 ADC reset [s]. | Yes | Yes |
| LED2 ADC reset start | Read/Write | f32 |
E34424D5-68DA-467F-93FE-BE49F19FAB0E |
The start time of LED2 ADC reset [s]. | Yes | Yes |
| LED2 current | Read/Write | f32 |
29CA51A3-B33B-44FD-853C-00FE8827ADC4 |
The current of LED2 [A]. | Yes | Yes |
| LED2 lighting end | Read/Write | f32 |
B85968BA-FB52-46E8-81A5-0F837BF3D6EB |
The end time of LED2 illumination [s]. | Yes | Yes |
| LED2 lighting start | Read/Write | f32 |
F710D5DC-2655-42D6-97AA-7A5FDF0285C8 |
The start time of LED2 illumination [s]. | Yes | Yes |
| LED2 offset current | Read/Write | f32 |
1F23AD86-30CB-4AC2-AD23-226DA5B2EB0C |
The offset current of LED2 [A]. | Yes | Yes |
| LED2 sample end | Read/Write | f32 |
F752142C-5BFC-4274-9044-E81D3F2F274A |
The end time of LED2 sample [s]. | Yes | Yes |
| LED2 sample start | Read/Write | f32 |
38644B85-3D2E-4D31-9679-06C9EB6BAC2D |
The start time of LED2 sample [s]. | Yes | Yes |
| LED3 ADC conversion end | Read/Write | f32 |
7C2A9A6F-95EB-45ED-B7E1-BB290F7853ED |
The end time of LED3 ADC conversion [s]. | Yes | Yes |
| LED3 ADC conversion start | Read/Write | f32 |
C03D3143-E6B6-49AB-85FC-EEED3A43B530 |
The start time of LED3 ADC conversion [s]. | Yes | Yes |
| LED3 ADC reset end | Read/Write | f32 |
A7D441AA-C456-4CBF-A0B9-84DBF33934EF |
The end time of LED3 ADC reset [s]. | Yes | Yes |
| LED3 ADC reset start | Read/Write | f32 |
536D72C8-DFF0-4E38-93F7-7F376316EA8D |
The start time of LED3 ADC reset [s]. | Yes | Yes |
| LED3 current | Read/Write | f32 |
F7535ED9-CB9F-469A-817E-1635DC3B68B0 |
The current of LED3 [A]. | Yes | Yes |
| LED3 lighting end | Read/Write | f32 |
5B7F9859-092B-43D4-AC6B-AC9DD4742AB2 |
The end time of LED3 illumination [s]. | Yes | Yes |
| LED3 lighting start | Read/Write | f32 |
0B098015-110E-487E-AAE9-BEA1ED1F54A0 |
The start time of LED3 illumination [s]. | Yes | Yes |
| LED3 offset current | Read/Write | f32 |
41AE7B18-F5D7-4475-9E3F-49354F077CED |
The offset current of LED3 [A]. | Yes | Yes |
| LED3 sample end | Read/Write | f32 |
249782EC-004B-4A3D-9608-5143E69AB294 |
The end time of LED3 sample [s]. | Yes | Yes |
| LED3 sample start | Read/Write | f32 |
733C5AED-D3B3-4F65-8898-6EA37DA30F71 |
The start time of LED3 sample [s]. | Yes | Yes |
| TIA capacitor 1 | Read/Write | u8 |
08B3B8E9-D3AD-48EB-B93B-AF4D3695F05C |
The value of TIA capacitor 1 [CapacitorValue]. | Yes | Yes |
| TIA capacitor 2 | Read/Write | u8 |
740669DF-57D3-4147-87B4-DC302512F20A |
The value of TIA capacitor 2 [CapacitorValue]. | Yes | Yes |
| TIA resistor 1 | Read/Write | u8 |
81831E3A-917E-4252-9C16-42BA8FF3F47A |
The value of TIA resistor 1 [ResistorValue]. | Yes | Yes |
| TIA resistor 2 | Read/Write | u8 |
A3F694D1-C378-4124-BF56-468DFAFF14E6 |
The value of TIA resistor 2 [ResistorValue]. | Yes | Yes |
| Total window length | Read/Write | f32 |
B904BD23-6082-4507-8BD2-7333EF6A2726 |
The total length of the windows [s]. | Yes | Yes |
Heart rate, blood oxygen saturation, wrist presence and perfusion indices measurements.
| Characteristic | Access | Type | UUID | Description | FW | SW |
|---|---|---|---|---|---|---|
| Blood oxygen saturation | Read | f32 |
0776731C-A5F8-4B40-9500-E4F97F5958D9 |
The blood oxygen saturation measurements [%]. | Yes | Yes |
| Heart rate | Read | f32 |
D8CE0238-F60C-4C1D-908F-5554760AA1D6 |
The heart rate measurements [bpm]. | Yes | Yes |
| LED2 perfusion index [%] | Read | f32 |
32D616C9-5721-4BF0-B5F3-B709C45225EE |
The AC to DC ratio of LED2. | Yes | Yes |
| LED3 perfusion index [%] | Read | f32 |
C11839D6-50E7-4210-AD45-E44C5AB085AC |
The AC to DC ratio of LED3. | Yes | Yes |
| R | Read | f32 |
459CAB03-5240-4837-9742-B71A5D8112A3 |
The ratio between LED2 and LED3 perfusion indices | Yes | Yes |
| Wrist presence | Read | bool |
9439189D-C1C2-4970-BD64-B9F1932F159F |
A flag that indicates the wrist presence on the sensor. | Yes | Yes |