Newert

SDK · Development

Implement SDK connection and data reception in six steps

Move from package review and Bluetooth permission through discovery, connection, PPG and motion streaming, application storage, and real-world validation.

Development guide

Confirm the package and received-data scope first

Mobile

Flutter · Android/iOS

One public sample contains both Android and iOS projects.

Desktop

Python · Windows

The current ZIP contains CPython 3.9 Windows binaries. Linux needs confirmation.

Validation

Connection · samples · timeline

Before UI polish, verify missing samples, events, and PPG or IMU time alignment.

Who should use this guide

Android and iOS developers

Implement device connection and measurement with mobile permissions and application lifecycle in mind.

Windows developers

Implement connection and processing with the currently verified CPython 3.9 Windows example. Linux adoption needs separate confirmation.

Data engineers

Validate stream schemas, timing, events, storage integrity, and downstream transfer.

How to develop

Implement connection and validation in six steps

Follow version-specific function names but keep state transitions and data validation in this order.

Before you start · Match the distribution and runtime before adding code

The mobile runtime notes conflict and the desktop ZIP is incomplete, so verify the files you downloaded before integration.

01

Mobile sample

Match Flutter and Dart against the official VitalTrack-SDK repository and its pubspec. The README and pubspec list different minimum Dart versions.

02

Desktop package

Review the CPython 3.9 Windows binaries and imported PySide6, qasync, bleak, SciPy, and NumPy dependencies in the current ZIP.

03

Device and Bluetooth

Confirm that an EmoConnect or VitalTrack name is discoverable and prepare the required OS Bluetooth permissions.

04

Standard SDK and PRO

Both versions receive raw PPG and IMU signals. Choose EmoConnect PRO when your product needs a smart-filtered signal or HR metrics.

  1. STEP 1

    Match the downloaded package and runtime

    Build the Flutter sample containing Android and iOS projects. For desktop, start with the verified Windows CPython 3.9 example and ask Newert for the Linux distribution.

    • Record SDK commit or ZIP version and architecture
    • Review mobile pubspec or desktop dependencies
    • Request the Linux package and execution steps if needed
  2. STEP 2

    Configure Bluetooth and OS permissions

    Request Bluetooth and nearby-device permissions before discovery and handle denial, retry, and Bluetooth-off states in the UI.

    • Review permission by OS version
    • Explain denied permission
    • Handle Bluetooth-off state
  3. STEP 3

    Discover devices and manage connection state

    Filter supported devices and explicitly manage discovering, connecting, connected, disconnected, and reconnecting states.

    • Remove duplicate discoveries
    • Store the selected device identifier
    • Handle app exit, background, and reconnection
  4. STEP 4

    Receive PPG and motion streams separately

    Receive PPG, ACC, Gyro, and Mag values. Mobile documentation lists each stream at 50 Hz; confirm actual fields, units, and timestamp behavior in the version you use.

    • Confirm values and sample counts increase
    • Record ordering and buffer size
    • Separate UI updates from file storage
  5. STEP 5

    Implement event and session storage

    The current SDK examples do not automatically create a CSV. Your application connects participant codes, session boundaries, and study events to received data and stores them.

    • Exclude direct identifiers
    • Record application receive time and event time
    • Verify file integrity after normal end and interruption
  6. STEP 6

    Validate under real measurement conditions

    In short and long sessions, verify missing, duplicate, or reversed samples, PPG or IMU alignment, disconnections, and recovery.

    • Compare expected samples with actual rows
    • Compare events with actual task time
    • Check state and file integrity after reconnection

Download

Define the storage structure first

The SDK streams sensor values and does not automatically create a CSV. Use the structure sample to design application storage and downstream analysis.

Application storage CSV structure

This example places PPG, ACC, Gyro, Mag, and events on one timeline. It is not a file generated automatically by the SDK.

Included fields

Time · PPG · ACC x/y/z · Gyro x/y/z · Mag x/y/z · event

This structural sample is based on the EmoConnect app Raw CSV. It does not establish the SDK's actual fields, units, or timestamp semantics; confirm them in the version you use.

Download development CSV sample

Implementation output

Completion means data integrity, not only a working screen

Do not stop at a connected UI. Produce session files and reproducible logs that can move into real research.

Explicit connection state

Discovery, connection, measurement, disconnection, and reconnection agree in UI and logs.

Signal-specific streams

PPG, ACC, Gyro, and Mag remain separated and their received counts are visible in logs.

Session and event records

Participant code and study events stay connected to the measurement timeline.

Application-created file

Your storage logic produces a CSV or another file with verified headers, units, missing values, and encoding.

PRO filtered signal and HR metrics

EmoConnect PRO receives a smart-filtered signal and HR metrics in addition to raw signals.

Validation log

Versions, device, conditions, missing samples, and reconnection results are reproducible.

Example received PPG and IMU data

The example keeps PPG, ACC, Gyro, Mag, and study events together on the same time row.

Time (seconds)PPG (dB)ACC x (m/s²)ACC y (m/s²)ACC z (m/s²)Gyro x (°/s)Gyro y (°/s)Gyro z (°/s)Mag x (µT)Mag y (µT)Mag z (µT)event
0.0224119.000-0.1050.8589.727-0.022-0.011-0.010-50.531-7.3488.3980
0.0424121.918-0.1060.9079.721-0.030-0.024-0.010-50.363-7.0788.2980
0.0624124.837-0.1060.9569.716-0.038-0.037-0.011-50.195-6.8098.1970

Standard SDK and EmoConnect PRO

Connection and raw-signal reception are the same; PRO additionally receives a smart-filtered signal and HR metrics.

Device connection
Standard SDKDiscover and connect a supported device
EmoConnect PROSame
Raw PPG and IMU signals
Standard SDKAvailable
EmoConnect PROAvailable
Smart-filtered signal
Standard SDKNot provided
EmoConnect PROAvailable
HR metrics
Standard SDKNot provided
EmoConnect PROAvailable

Purchase, download, and adoption

Ask about the right product and adoption path

Tell us your environment and required data scope, and we will guide you to the appropriate product, download, and adoption path.

Contact SDK technical support

Continue with these guides