Step 4: Choose connected devices
What we are building
A small, explicit device allowlist for the tutorial. The SDK catalog is the source of truth for supported models, measurement types, product artwork, image credits, and any manual links it publishes.
What you should already have
- The Expo project and English locale.
- A product scope that collects blood pressure, heart rate when supplied by the BP2, and body weight.
The implementation
The current supported-device catalog contains these entries:
| Catalog entry | Catalog ID | Runtime declaration | Measurements used here |
|---|---|---|---|
| Viatom BP2 | catalog-viatom-bp2 | IntegratedDevices.BP2 | Blood pressure and ECG; heart rate when the reading includes it |
| Viatom F4 / LeScale | catalog-viatom-f4-lescale | IntegratedDevices.F4 | Body weight |
Add src/features/bluetooth/accepted-devices.ts:
import { IntegratedDevices } from "@ovok/native/bt-management";
export const acceptedDevices = [
IntegratedDevices.BP2,
IntegratedDevices.F4,
] as const;
These are two different identifiers: the catalog ID is metadata for finding the catalog entry; IntegratedDevices.BP2 and IntegratedDevices.F4 are the runtime declarations passed to BTProvider. Do not substitute the catalog IDs into acceptedDevices.
Open the full supported-device catalog to review the catalog's current images and credits, supported measurements, and any available device instructions. The catalog can change independently of this tutorial.
Important Ovok decisions
- BP2 reports blood pressure and ECG as distinct normalized measurements. The app stores both; an ECG result may include a waveform, duration, heart rate, and a device-reported diagnostic label.
- BP2's normalized blood-pressure result can include
heartRate. Do not rename that field in the API payload; the patient UI may label it “Pulse”. - The F4 / LeScale contributes
bodyWeightin kilograms. The measurement save API expects kilograms and does not convert pounds. - Read the instructions supplied with the exact device model. Do not copy manufacturer instructions or artwork into your app unless you have rights to do so.
Expected result
The app has one stable accepted-device array containing BP2 and F4. The catalog shows the correct measurement types and current links for each supported entry.
Common errors and troubleshooting
- A device appears in the catalog but cannot be passed to Bluetooth: check the entry's
acceptedDevicesvalue and use the SDK runtime enum, not the catalog ID. - The BP2 ECG card has no waveform: confirm the result includes
diagramPointsand a positiveduration; the screen cannot render a waveform without valid samples and timing. - Weight has the wrong unit: confirm the app displays and saves kilograms; add an explicit unit conversion only if your product receives a different unit from another supported source.
Next step
Continue to step 5: initialise Ovok and Bluetooth.