Open Nav

Breathing Rate

22

Avg. breath rate

Measured 2 days ago

Coughts

83

Coughing episodes

Last 7 days

Calories

2.1K

Fat burned

2 days ago

Resting Heart Rate

85

Beats per minute

Normal Range

Bodyweight Workout

280

Burpees

Top reps this week

Calories

2.1K

Fat burned

2 days ago

SpO2

94%

Saturation

Measured 10h ago

Heart Rate Variability

34

ms

Measured 2h ago

Compatible with Aidlab, Aidmed One and Pulsoximeter.

Ship health-grade products faster with Aidlab

The Aidlab SDK facilitates the integration and utilization of data like heart rate, respiration, skin temperature, as well as activity, mood, and stress levels with all devices supporting Bluetooth 4.0+

Get Aidlab SDKRead Docs

Focus on the fun part, let us handle the rest

Aidlab SDK lets you dive deep inside programming and juggling with health and fitness data almost immediately. Integrate your app with Aidlab, Aidmed One, and Pulsoximeter and start building your own projects.

  • iOS bindings
  • Android bindings
  • Python bindings
  • Unity bindings
  • Flutter bindings
  • REST API
  • Easy installation
  • Well-documented code
  • Real-time streaming
  • Data export
  • Raw data output
  • Accurate readings
import UIKit
import Aidlab

class HomeViewController: UIViewController, DeviceDelegate {
    private let aidlabManager = AidlabManager(delegate: self)

    override func viewDidLoad() {
        super.viewDidLoad()
        aidlabManager.scan()
    }

    func didDiscover(_ device: Device) {
        device.connect(delegate: self)
    }

    func didConnect(_ device: Device) {
        device.collect(dataTypes: [.respirationRate], dataTypesToStore: [])
    }

    func didReceiveRespirationRate(_ device: Device, timestamp: UInt64, value: UInt32) {
        respirationLabel?.text = "\(value)"
    }
}

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.aidlab.sdk.*
import java.util.EnumSet

class MainActivity: AppCompatActivity(), DeviceDelegate, AidlabManagerDelegate {
    private lateinit var aidlabManager: AidlabManager

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        aidlabManager = AidlabManager(this, this)
        aidlabManager.scan()
    }

    override fun didDiscover(device: Device, rssi: Int) {
        device.connect(this)
    }

    override fun didConnect(device: Device) {
        device.collect(
            EnumSet.of(DataType.RESPIRATION_RATE),
            EnumSet.noneOf(DataType::class.java)
        )
    }

    override fun didReceiveRespirationRate(device: Device, timestamp: Long, value: Int) {
        respirationRateTextView?.text = value.toString()
    }
}

import 'package:aidlab_sdk/aidlab_sdk.dart';

class HomePageState extends State<HomePage> with WidgetsBindingObserver implements AidlabManagerDelegate, DeviceDelegate {
    late AidlabManager aidlabManager;

    @override
    void initState() {
        super.initState();
        aidlabManager = AidlabManager(this);
        aidlabManager.scan();
    }

    @override
    void didDiscover(Device device, int rssi) {
        device.connect(this);
    }

    @override
    void didConnect(Device device) {
        device.collect([DataType.RESPIRATION_RATE], []);
    }

    @override
    void didReceiveRespirationRate(Device device, int timestamp, int value) {
        setState(() => _respirationRate = value);
    }

    int _respirationRate = 0;
}

import asyncio
from aidlab import AidlabManager, DataType, DeviceDelegate

class MainManager(DeviceDelegate):
    async def run(self):
        devices = await AidlabManager().scan()
        if len(devices) > 0:
            await devices[0].connect(self)
            while True:
                await asyncio.sleep(1)

    async def did_connect(self, device):
            await device.collect([DataType.RESPIRATION], [])

    def did_receive_respiration(self, device, timestamp: int, value: float):
            pass

asyncio.run(MainManager().run())

using UnityEngine;

public class MainLoop : MonoBehaviour, AidlabDelegate {

    void Start() {

        aidlab = new Aidlab(this);
    }

    void Update() {

        aidlab.Update();

        var cube = GameObject.Find("Cube");
        Vector3 position = cube.transform.position;
        position.y = aidlab.getCurrentRespirationSample();
        cube.transform.position = position;
    }

    private Aidlab aidlab;
}

Create your first project with Aidlab SDK

Start tinkering with the most advanced assistant by reading materials we have prepared for you.See other examples on our GitHub

.

Get the most up-to-date SDK for variety of platforms.

Download SDK

Learn how to develop apps with Aidlab SDK.

Documentation

Check out the latest engineering news and guidelines.

Learn More

What can you do with Aidlab SDK?

Create your family's health center. Use Aidlab SDK in your health research. Integrate it with other IoT devices. Learn how to develop your first app for iOS, Android and more platforms.

Made with Aidlab SDK
Platform possibilitiesPlatform possibilities

Users say

In my opinion, building health, fitness or IoT related projects is really difficult and Aidlab SDK gives us tools to make a fast start for everyone. It's amazing that you no longer have to be a Steve Wozniak or John Carmack to create great stuff.

Wojtek Kokorzycki, Head of Hackerspace 3City

Wojtek Kokorzycki

Aidlab SDK is playing a vital role in creating an IoT-oriented culture at our coding courses. It helps our students to dive into development really fast and smooth. They have an opportunity to interact with wireless communication or data analysis, staying close to the hardware.

Marcin Młyński, CEO at CODE:ME coding courses

Marcin Młyński

Popular Articles

Aidlab Sensors

Measurements range, accuracy, and example output of Aidlab's sensors.

Learn More
Person Sleeping with Aidlab

Using raw motion data to build a Basic Sleep Detector in Python.

Read Tutorial
Collecting ECG

Collecting ECG on iOS in real-time with Aidlab.

Learn More

Aidlab™ is a registered trademark. Copyright © 2025