Android SDK Change Log
All notable changes to this project will be documented in this file.
[1.1.28] - 2026-03-16
DFU SDK
Changed
- New FW 7.97
- Battery charging states improvements.
- Wearing detection improvements specially for FP6.
- A minor improvement on Respiration rate: Added a procedure to improve the quality of estimations based on the amplitude of the PPG pulses.
- A minor improvement on NIBP: Reset all buffers for multiple patients onboarding
- Battery alerts: remove code 114
[1.1.27] - 2026-02-25
Data SDK
Fixed
- NIBP measurement listener doesn't return the right measurement after 1 set of measurements (reported by Anthony)
Added
- Added configuration for NIBP summary
DataSDK Config changed, added:
nibpSlotsIntervalSecs. Must be minimum 30 minutes: 30 60 60class Config( val logger: SdkLogger? = null, val dataScheduler: Scheduler? = null, val callbackScheduler: Scheduler? = null, val slotsIntervalSecs: Int = MIN_SLOT_INTERVAL_SECS, val ppg2ThresholdFileSize: Int = 500 * 1024, val bioZThresholdFileSize: Int = 30 * 1024, val accThresholdFileSize: Int = 30 * 1024, val automaticReconnectIfNeededIntervalMinutes: Int = 15, // 15 minutes minimum val licenceKey: String? = null, val nibpSlotsIntervalSecs: Int = MIN_NIBP_SLOT_INTERVAL_SECS ) : SdkConfig
[1.1.26] - 2026-02-03
Data SDK
Updated
- NIBP External Cuff Measurement
Modified support for NIBP cuff measurements using external (non-Corsano) cuffs This feature will exclusively be available for Prolaio after execution of special agreement with Corsano Improved database recording behavior for external cuff measurements
Sample app
Updated
- Unpair improvement on swipe in the Recent Devices list
[1.1.25] - 2025-12-09
- Library upgrade to support 16 kB page sizes
- Gradle 8.6.1 -> 8.8.0
- Realm 10.15.1 -> 10.19.0
- Philips sleep library PhilipsVSOLib_vFXC_1.4.2.35-2f46796-hotfix_Release
- com.android.tools:r8:8.6.17 -> 8.13.17
[1.1.24] - 2025-11-21
Data SDK
Added
- Battery error detection in MetricActivity data. When dectected, the battery value will be replaced by one of the error codes, listed here
Fixed
- Sleep monitoring crash if corrupted data has been accumulated
Updated
- Log size increase for monitoring plan 11 with 5min sample rate
DFU SDK
Changed
- FW 7.65 Sp02 improvements:
- Sp02 improvements: improving plan 5min with dynamic sporadic monitoring of vitals
- Battery: minor improvements on battery level monitoring
- Improved filtering of vital signs values based on the activity level
[1.1.23] - 2025-10-09
Data SDK
Added
- Support for NIBP cuff measurement with an external cuff (non-Corsano)
- In
NibpCalibrationManageradded functions: startMeasurementWithExternalCuffsendMeasurementFromExternalCuffshouldDoAnotherMeasurement
Removed
- Obsolete fields
MetricActivity:nibpSystolicLongTerm,nibpDiastolicLongTerm,nibpSystolicCombine,nibpDiastolicCombine
Sample app
Added
- Support for NIBP cuff measurement with an external cuff (non-Corsano) UI
- Main Fragment:
MainDataNibpExternalCalibrationFragment - Secondary Fragments:
NibpExternalPage1FragmentNibpExternalPage2FragmentNibpExternalPage3FragmentNibpExternalPage4FragmentNibpExternalPage5FragmentNibpExternalPage6FragmentNibpExternalPage7FragmentNibpExternalPageDoneFragment
[1.1.22] - 2025-09-29
DFU SDK
Changed
- FW 7.48 Sp02 improvements: use of 2 channels for Sp02 calculation
[1.1.21] - 2025-09-08
Data SDK
Fixed
- In some situations the data download is stuck (Doccla report), only restarts after killing the app
- Bugfix - data stream doesn't report callback while disconnection from stream timeout
[1.1.20] - 2025-08-13
Data SDK
Added
- Sp02 spot measurement
- Manager:
SpotMeasurementManager - Repository:
SpotMeasurementRepository
- Manager:
Deprecated
- Log export
CorsanoSdk.getLogs(context, docFile)replace withDataSdk.getInstance().getManager().getLogs(context, docFile)
DFU SDK
Changed
- FW 7.34 Sp02 improvements with 1/5min sample rate
[1.1.19] - 2025-06-27
DFU SDK
Changed
- FW 7.23 wearing detection improved
[1.1.17] - 2025-06-20
Data SDK
Fixed
- Bugfix PPG parsing for 19 bits PPG
[1.1.15] - 2025-06-06
Data SDK
Fixed
- Bugfix crash during automatic sync (reported by
Prolaio / Kartik)
- Fixed
java.lang.RuntimeException: Watch disconnected - Fixed
java.lang.IllegalStateException: Unhandled write completion
- Fixed
[1.1.14] - 2025-06-06
Data SDK
Fixed
- CSV Export error
duplicate entry - Emography delete error
has no property timestamp
DFU SDK
Changed
- FW 7.20 wearing detection duration improved
[1.1.12] - 2025-05-28
Data SDK
Added
BleCommandFactory.awaitCommandV2- Bugfix crash when a command is sent but the device disconnects right after it (reported by
Prolaio / Kartik)
- Fixed
java.lang.RuntimeException: Watch disconnected - Fixed
java.lang.IllegalStateException: Unhandled write completion
- Fixed
- Return status:
Result.success()Result.failure(t: Throwable)if one of those 2 errors occurs
- Bugfix crash when a command is sent but the device disconnects right after it (reported by
Prolaio / Kartik)
[1.1.11] - 2025-05-23
Data SDK
Changed
- Bugfix EmoGraphy is not syncing
[1.1.10] - 2025-05-16
DFU SDK
Changed
- FW 7.14 (official version) with wearing detection
[1.1.8] - 2025-05-07 Beta version for Doccla
Data SDK
Added
Wearing optimization:
Description here
- Start
DataSdk.getInstance().getManager()?.getWearingOptimizationManager()?.start(bleDevice) - Stop
DataSdk.getInstance().getManager()?.getWearingOptimizationManager()?.stop(bleDevice). - Listener
WearingOptimizationListener
DFU SDK
Changed
- FW 7.10 (beta version) with wearing detection
[1.1.7] - 2025-04-28
- Improved SDK logging: added more detailed logs and increased log retention to 5 days.
Data SDK
Added
- Temperature Raw (extended temperature data):
- Synchronized and saved in the database via
MetricTemperatureRawandMetricTemperatureRawRepository. - Exportable to CSV using the
exportData(function withExportType.TEMPERATURE_RAW.
- Synchronized and saved in the database via
BLE SDK
Added
- Temperature Raw (extended temperature data):
- Enabled or disabled on the bracelet via SET commands (
SetTemperatureRawPlan). - Status retrieval supported via GET command (
GetTemperatureRawPlan).
- Enabled or disabled on the bracelet via SET commands (
DFU SDK
Changed
- Updated startDfu function:
- Added support for firmware version 6.87 when specifying versions (
fun startDfu(address: String, hardwareId: Int, specificVersion: FirmwareVersion)).
- Added support for firmware version 6.87 when specifying versions (
Sample App
Fixed
- Fixed crash on disconnection:
java.lang.RuntimeException: Watch disconnectedjava.lang.RuntimeException: BLE write failed- Issue resolved in
DeviceImpl.kt.
[1.1.5] - 2025-03-04
Data SDK
- Added function for summary DB
suspend fun getByTimestampRange(startTimestamp: Long, endTimestamp: Long): Result<List<T>?>
BLE SDK
Added
- LED test on/off new version
LedTestWatchRequestV2(val ledNumber: Int, val blinking: Boolean, val durationSecs: Int)
DFU SDK
Changed
- FW 287-2B: 6.87
[1.1.4] - 2025-03-05 CORRUPTED VERSION, no not use
Data SDK
- Added fields in
MetricActivity:var nibpSystolic: Int? = null, var nibpDiastolic: Int? = null, var nibpSystolicLongTerm: Int? = null, var nibpDiastolicLongTerm: Int? = null, var nibpSystolicCombine: Int? = null, var nibpDiastolicCombine: Int? = null, var cardiacArrest: Int? = null, var activityCount: Int? = null, var isCharging: Boolean? = null
Added NIBP feature
Added fields in
MetricActivity:var nibpSystolic: Int? = null, var nibpDiastolic: Int? = null, var nibpSystolicLongTerm: Int? = null, var nibpDiastolicLongTerm: Int? = null, var nibpSystolicCombine: Int? = null, var nibpDiastolicCombine: Int? = null, var cardiacArrest: Int? = null, var activityCount: Int? = null, var isCharging: Boolean? = nullAdded Sample Rate 1/30 min
enum class SampleRate(val rateSecs: Int, val friendlyName: String) { THIRTY_SECS(30, "1/30 secs"), ONE_MIN(60, "1/minute"), FIVE_MIN(5 * 60, "1/5 minutes"), THIRTY_MIN(30 * 60, "1/30 minutes") }Added Sample Rate type NIBP:
VitalParameterWithSamplingRateType.NIBPDatabase - Added Blood Pressure summary with 2h slots:
MetricBloodPressureSummaryBlood pressure summary:
BloodPressureSummaryRepository
DFU SDK
Changed
- FW 287-2B: 6.76
[1.1.2] - 2025-02-09
Data SDK
- Device info shared with Corsano during sync (Serial number, last sync date)
[1.0.0] - 2025-02-09
- Corrupted version, deployment error
[0.9.25] - 2025-02-08
Data SDK
- Export improvements
[0.9.24] - 2025-02-08
Data SDK
- Added export function
fun exportData( fileTypes: List<ExportType>, context: Context, documentFile: DocumentFile, from: Long, to: Long, onDone: () -> Unit, onError: (Throwable) -> Unit )
[0.9.23] - 2025-02-07
Data SDK
- Added licence key to SDK initialisation
DataSdk.Config( slotsIntervalSecs = 10 * 60, ppg2ThresholdFileSize = 500 * 1024, bioZThresholdFileSize = 30 * 1024, accThresholdFileSize = 30 * 1024, licenceKey = "my_key" // update your licence key here, if you need a key, please contact mbortot@corsano.com )More info: https://developer.corsano.com/android/intro/getting_started/#licence-key
DFU SDK
Changed
- FW 287-2B: 6.65
- Add more FW version to the DFU with specific version (5.39, 5.54, 5.72, 5.82):
corsanoDfu.startDfu(args.address, args.hardwareId, FirmwareVersion(5,39)
[0.9.21] - 2025-01-21
Data SDK
Added
- Sleep method to clear all
dataSdkManager?.sleepProcessUpdater?.resetAll(bleDevice.address)will clear all files stored waiting for sleep processing
Changed
- Sleep process improvements to handle big amount of data (Kartik's feedback), avoid crash on data overload
- Sample rate - apply common config and only propose 1/min 1/30secs 1/5min
SetVitalParameterSamplingRateRequest(ACTIVITY, 60)changed toSetVitalParameterSamplingRateRequest(ACTIVITY, SampleRate.ONE_MIN)
DFU SDK
Changed
- FW 287-2B: 6.45
[0.9.20] - 2024-10-18
Data SDK
Added
- PPG2 parser with Red and Infra Red PPG
- Sample App CSV generation after parsing PPG2
createPpg2Csv(
Changed
- Structure
Ppg2WiffSlotModelwith themetricTypefor the PPG color ParseListener
[0.9.18] - 2024-10-04
Data SDK
Fixed
- ECG parsing produce same timestamps for each chunks of ECG
Added
- Timer to display running ECG, and automatic stop after 50 seconds
DFU SDK
Changed
- FW 287-2B: 5.82
[0.9.17] - 2024-10-02
Data SDK
Fixed
- Methods don't run callback when there are no result:
MetricTemperatureRepositoryandMetricActivityRepositorymethodsgetLastgetByTimestampRangegetAll
[0.9.13] - 2024-09-09
BLE SDK
Added
- Custom sampling rate setting for Activity, Pulse Rate, Respiration Rate, SpO2,
Temperature. Requests:
SetVitalParameterSamplingRateRequestandGetVitalParameterSamplingRateRequest
DFU SDK
Changed
- FW 287-2B: 5.72
[0.9.12] - 2024-08-29
Data SDK
Changed
- ACC parser fix timestamp issue reported by Kartik
[0.9.11] - 2024-08-26
Data SDK
Changed
- ACC parser fix chunks with a sample of 31 instead of 32 reported by Kartik
[0.9.10] - 2024-08-08
DFU SDK
Added
- Start DFU to a specific FW version (only available for 5.39 at the moment):
corsanoDfu.startDfu(args.address, args.hardwareId, FirmwareVersion(5,39) - New FW 5.54
[0.9.9] - 2024-05-01
Data SDK
Added
- Battery notification, comes when the bracelet is put on or taken off the
charger
Notification.ChargingEventPing. To subscribe:BleSdk.getInstance().getDevice(address).observeNotifications {
[0.9.8] - 2024-04-23
Data SDK
Changed
- Unpair improvements, remove link to download worker
stopAlladded parameter Deprecated:abstract fun stopAll(address: String, onSuccess: (() -> Unit)?, onError: ((Throwable) -> Unit)?)Use:abstract fun stopAll(context: Context, address: String, onSuccess: (() -> Unit)?, onError: ((Throwable) -> Unit)?)
DFU SDK
- FW 5.39 B2: temperature and Sp02 improvements
[0.9.7] - 2024-04-11
Data SDK
Fixed
- Bugfix crash (reported by Kartik) when call
getBraceletCapacityand the bracelet disconnected during the processUncaught exception in thread main java.lang.RuntimeException: Watch disconnected
The functiongetBraceletCapacitywill return an error and no crash will occur.
Changed
- Added parameter
onErrorfunctiongetBraceletCapacityfun getBraceletCapacity( bleDevice: BleDevice, hardwareId: HardwareId, onDone: (Double) -> Unit, onError: (Throwable) -> Unit )
Added
suspend fun getBraceletCapacitySuspend( bleDevice: BleDevice, hardwareId: HardwareId ): Result<Double>
[0.9.6-SNAPSHOT] - 2024-04-05
- FW 5.37
- Improved logs to investigate crash with empty watch ble address
- Improved logs to investigate ACC gap
[0.9.5] - 2024-03-19
BLE SDK
- Bugfix sync process stops when disconnection in some cases. Add timeout and reconnect after Timeout Exception
[0.9.4] - 2024-03-11
BLE SDK
- Bugfix Timeout Exception on stream timeout stops the sync process. Device will be disconnected.
[0.9.3] - 2024-03-08
DFU SDK
- FW 5.35 B2: bugfix Ping coming too regularly, sync happening too much
[0.9.2] - 2024-03-05
BLE SDK
- Bugfix Timeout Exception during sync - forbid command request during stream, commands will be executed when the BLE stack is free
Data SDK
- Sleep - fix status STARTED is sent prematurely
DFU SDK
- FW 5.34 for Nima only, test to investigate the Ping issue (every 18 seconds sometimes)
[0.9.1] - 2024-03-01
Data SDK
- Sync notification: silence sound
- Configuration rename
automaticDownloadIntervalMinutestoautomaticReconnectIfNeededIntervalMinutes
DFU SDK
- B2 new FW: 5.32 extensive logging for Ping debugging
[0.9.0] - 2024-02-23
Data SDK
- Bugfix crash OutOfMemory when downloaded a large amount of PPG1 on B1 bracelets
- Bugfix sync stops in the morning when sleep processes
- Bugfix syncing is stuck and does not restart Coroutine Cancel exception
- Bugfix bracelet was unpairs but SDK tries to reconnect anyway
DFU SDK
- B2 new FW: 5.28
Sample App
- Add data clean up function example
dataCleanUp() - WatchFragment: improvements in handling connection state from the bracelet. Handle BLE on/off, and change in bracelet connection
[0.8.22] - 2024-02-12
- Bugfix crash for Android OS <= 12 java.lang.IllegalStateException: Not implemented at androidx.work.CoroutineWorker.getForegroundInfo$suspendImpl(CoroutineWorker.kt:100)
[0.8.21] - 2024-02-02
- Gradle upgrade 8.2.2 / Kotlin 1.9.22
Data SDK
- Sync improvements
- Configuration automaticDownloadIntervalMinutes minimum of 15 minutes, restriction by Android Worker of min interval of 15 minutes
DFU SDK
- FW 5.23 for B2 -> Bugfix RealTimePing coming with data when bracelet not worn
[0.8.19] - 2024-01-18
Data SDK
- Memory protection: read and write to the DB chunk by chunk to limit memory load when a full bracelet syncs
- Memory protection: Summary generation, force minimum of slotIntervalSecs = 60 seconds. Avoid mass generation of slots when < 60 seconds
- ACC parsing improvement: fix gap issue
- Move com.corsano.sdk.ble.parser. -> com.corsano.sdk.data.download.parsing.
[0.8.17] - 2024-01-02
Data SDK
- RR-interval: filter broken values coming from the Firmware
[0.8.16] - 2023-12-22
BLE SDK
- Add Log transfer from the bracelet to understand disconnection issue.
- Transfer of the Log file from the bracelet to a .txt file. Save of 2 days of data maximum
- User profile: add Skin Type
Data SDK
- Add function
DataSdk.getInstance().getDownloadManager().stopAll(to stop download subscriptions and automatic processes when unpairing - ACC parsing: bugfix 7-8 seconds of gap every 30 minutes
- Sleep process: fix crash on start of processing
DFU SDK
- FW 5.18 for B2
[0.8.15] - 2023-11-30
- Libs upgrade Gradle 8.1.2 -> 8.1.4 and Kotlin 1.9.10 -> 1.9.20
Data SDK
- FileTransfer - reduce max size of 100kB per file transfer to custom max per file type and Android version (example PPG2 50bB for Android >= 12 but 40kB for Android 10,11 and 30kB for Android 8,9
DFU SDK
- FW 5.0 for B2
[0.8.14] - 2023-11-14
Data SDK
- Add logs to investigate sync timeout
[0.8.13] - 2023-11-07
Data SDK
- Sleep process same for each plan, remove specificities for HOSPITAL_RAW
- Acc parsing fix listener function
onFileFinished(file)not triggered
[0.8.12] - 2023-10-20
Data SDK
- SDK initialization is set but download happens every 15 minutes
[0.8.11] - 2023-10-20
Data SDK
- Bugfix trigger download doesn't ignore filtered files
[0.8.10] - 2023-10-17
BLE/DATA/DFU/SAMPLE
- Android 14 compatibility
[0.8.9] - 2023-10-16
Data SDK
- Trigger data download with a filter on
files
downloadManager?.triggerDownload(address, hardwareId, plan = it, listOf(FileOnWatch.PPG2)) - Bugfix automatic file transfer is not doing anything
BLE SDK ACC parsing
Added
ACC parsing:
Parser
dataSdkManager?.accWiffFileParser?.run(accFiles.toList(), parsingListener)RealTime Notification (B2 only):
Enable
SetRealTimePingEnableRequest(true)Get
GetRealTimeEnabledRequest()
[0.8.8] - 2023-10-03
- Deployment update
[0.8.7] - 2023-09-28
Sample App.
Added
- Stress tab for B2 bracelet: display of stress data
- Add pairing step: user action required before pairing (B1: push pusher button, B2: put bracelet
on/off the charger)
WatchScanVerifyFragment
Data SDK.
Fixed
- Bugfix sleep is not processed for plan HOSPITAL_MULTICOLOR
- Log improvements, add logs
BLE SDK.
Added
- New function:
startScanForPusherEvent(macAddress: String, listener)to detect a bracelet with the proper action before pairing (B1: push pusher button, B2: put bracelet on/off the charger)
Fixed
- Bugfix Timeout SleepFileTransfer when less than 200 bytes on bracelet
[0.8.6] - 2023-08-21
DATA/BLE/DFU SDK
Changed
- Dependencies upgrade
- Compile Android SDK version to 33
[0.8.5] - 2023-08-17
Data SDK.
Fixed
- Bugfix metric activity listener not triggered
- Added
manager.metricTemperatureUpdatedlistener on new raw data temperature inserted - Capacity calculation improvement
DFU SDK
Changed
- Update of firmware version for the bracelet
- V2 to 4.51
- V1 to 4.20
[0.8.4] - 2023-04-13
Data SDK.
Fixed
- Bugfix ECG paring returns file not found exception
BLE SDK. New commands
Added
- New bracelet command:
Led1TestWatchRequestturns ON the LED 1 of the bracelet - New bracelet command:
Led2TestWatchRequestturns ON the LED 2 of the bracelet
[0.8.3] - 2023-03-03
BLE SDK PPG2 and ECG parsing
Added
- PPG2 parsing:
- Parser
dataSdkManager?.ppg2WiffFileParser?.run(ppg2Files.toList(), parsingListener) - Lister
ParserListener - ECG parsing:
Parser
fun parseEcgMeasurement(context: Context, ecg: EcgMeasurementModel, parsingListener: EcgParserListener?)
- Lister
EcgParserListener
[0.8.2] - 2023-02-24
Data SDK ECG refactoring
Added
- New DB class for ECG measurements:
EcgMeasurementModel::class - Get Bracelet capacity
dataSdkManager?.getBraceletCapacity(bleDevice, hardwareId) {
Updated
- ECG Manager. Remove device mac address in parameter in:
- Replace
DataSdk.getInstance().getManager().getEcgManager().deleteAllEcg(bleDevice.address, {byDataSdk.getInstance().getManager().getEcgManager().deleteAllEcg { - Replace
DataSdk.getInstance().getManager().getEcgManager().deleteEcgInRange(bleDevice.address, startTime, endTime,byDataSdk.getInstance().getManager().getEcgManager().deleteEcgInRange(startTime, endTime, { - Replace
DataSdk.getInstance().getManager().getEcgManager().isEcgRunning(bleDevice.address) { isEcgRunning ->byDataSdk.getInstance().getManager().getEcgManager().isEcgRunning() { isEcgRunning ->
- Replace
- ECG export. Move functions to ECG manager
Get exportable ECG
ReplacedataSdkManager?.rawFileRepository?.getExportabledWiffFiles(address, RawFileType.ECG, {ByDataSdk.getInstance().getManager().getEcgManager().getExportableEcgs {Export wiff files
ReplacedataSdkManager?.wiffFileExporter?.exportWiffFiles(address, RawFileType.ECG,docFilebyDataSdk.getInstance().getManager().getEcgManager().exportWiffFiles(docFileMove wiff files to another app directory
ReplacedataSdkManager?.wiffFileExporter?.exportWiffFilesToAppDirectory(address, RawFileType.ECG, directory,byDataSdk.getInstance().getManager().getEcgManager().exportWiffFilesToAppDirectory(context, directory,
[0.8.1] - 2023-02-13
Data SDK.
Added
- Function to merge the .part.wiff files from PPG2 or ACC or BioZ no matter if the minimum file size
for a .wiff has been reached
- Example:
dataSdkManager?.ppg2WiffFileUpdater?.mergeChunkFilesForce(address, { model ->
- Example:
[0.8.0] - 2023-02-10
Data SDK.
Fixed
- Bugfix ACC / BioZ .wiff file not generated (.part.will not merged)
Added
- Add listener for .wiff file generation. Will be trigger when a file is created
DataSdk.getInstance()?.wiffFileUpdated?.addListener(fullWiffFileListener)
BLE SDK. New commands
Added
- New bracelet command:
EraseAllRequestdeletes all data on the bracelet - New bracelet command:
ResetWatchRequestbracelet restart - New bracelet command:
ShutdownWatchRequestbracelet turns off, will be back on once put on the charger - New bracelet command:
GetBraceletStatusRequestgive the wearing, charging status, etc of the bracelet - File capacity. Use request
GetFileSizeRequest(FileOnWatch.xxxx)and use the functiongetCapacity(hardwareId)
Changed
- Firmware version simply format in GetFwVersion
CORE SDK
Add SDK log & export
Added
- Generate log file with SDK technical logs, valid for 2 days
- Export of the files to a local folder
DFU SDK. Sleep improvements
Changed
- Update of firmware version for the bracelet
- V2 to 4.19
[0.7.10] - 2022-12-09
Data SDK. Sleep improvements
- Bugfix continuous sleep end of sessions not generated
- Trigger of the sleep processing more often and more efficiently:
- Continuous sleep (Plan 5 Hospital) is processed after 250 steps + 2min, or 2 min after a click on the "Process now button"
- Normal sleep (other plans) is processed when the bracelet returns a status "FINISHED". The " FINISHED" status is triggered when the bracelet detect that the user should be awake.
Changed - Add DevicePlan in parameter of the sync and some file downloads
Sync
DataSdk.getInstance().getDownloadManager().subscribeDeviceForDownload(address: String, hardwareId: HardwareId, plan: DevicePlanAutomatic sync process, add parameter plan: DevicePlan
DataSdk.getInstance().getDownloadManager().triggerDownload(address: String, hardwareId: HardwareId, plan: DevicePlan)Sync process, add parameter plan: DevicePlanSleep
DataSdk.getInstance().getManager().sleepProcessUpdater.schedule(device: BleDevice, plan: DevicePlan)Sleep process, add parameter plan: DevicePlanDataSdk.getInstance().getManager().sleepProcessUpdater.sendStopSleep(bleDevice: BleDevice)Stop sleep in the SleepProcessUpdater
- Activity
ActivityFileDownloader(manager, address, plan)add parameter plan: DevicePlan
BLE SDK. Sleep improvements
Added
- New bracelet command: CommandId.APP_CMD_GET_SESSION_STATUS gives the sleep status for normal sleep (not continuous), used in the main sync
Changed
- Update of firmware version for the bracelet
- V1 to 4.15
- V2 to 3.94
[0.7.9] - 2022-09-01
Data SDK. Sleep improvements
- Bugfix sleep session not identified for complex sleep (from 4am to 2pm for example)
- Update of the Philips Sleep Library to version 1.4.1.21-2a7dd16.6dbbddf
[0.7.8] - 2022-08-26
Data SDK. ACC XYZ (with FW 3.99)
- Update of the PPG file, sync compatibility with protocol V3 with ACC XYZ
DFU SDK. New FW versions
Changed
- Update of firmware version for the bracelet
- V1 to 3.99
- V2 to 3.69
- Pairing without passkey if
- FW B1 >= 3.98
- FW B2 >= 3.61
[0.7.7] - 2022-08-22
[0.7.6] - 2022-07-29
Data SDK. Bugfix sleep process on Android 12
Fixed
- Crash of sleep processing on Android >= 12
Changed
- Delete of ProcessSleepService replace with dataSdkManager?.sleepProcessUpdater?.schedule(bleDevice.address)
Sample App. Add stop sleep button
Added
- Stop sleep button, this send the stop sleep to the bracelet (sleep is automatically stopped after 250 steps in the morning, this command is practical when the 250 steps are not done yet)
[0.7.5] - 2022-06-14
DFU SDK. New FW version
Changed
- Update of firmware version for the bracelet V2 to 3.56
[0.7.4] - 2022-07-06
Data SDK. Respiration rate
Changed
- Respiration rate always zero
Sample App.
Changed
- Activity tab, Sp02 summary button added
- Activity tab, Raw temperature button added
- Activity tab, added information in the display of the activity / temperature / respiration rate
[0.7.3] - 2022-06-15
Data SDK. ECG
Changed
- Bugfix methods not externals
[0.7.2] - 2022-06-01
Data SDK. ECG
Added
DataSdk.getInstance().getManager().getEcgManager()ECG Manager: start / stop ECG Measurement- ECG synchronisation
- ECG export of .wiff, 1 .wiff per ECG Measurement
BLE SDK.
Added
StartEcgMeasurementBLE commandStopEcgMeasurementBLE command
DFU SDK. New FW version
Changed
- Update of firmware version for the bracelet V2 to 3.24
[0.7.1] - 2021-05-16
Data SDK. Sleep process automatically
Added
dataSdkManager?.wiffFileExporter?.exportWiffFilesToAppDirectoryExport function of the .wiff files (Raw measurements PPG2 / Acc / BioZ) to the external app folder
DFU SDK. New FW version
Changed
- Update of firmware version for the bracelet V2 to 3.18
[0.7.0] - 2022-04-22
Data SDK. Adding new APIs:
- range queries for more flexibility
- new download API.
Added
-MetricRepository.getByTimestampRange() for more flexibility
DataDownloadManager– interface that provides new methods for downloading all dataDataSdk.getDownloadManager()- method to get instance ofDataDownloadManagerautomaticDownloadIntervalMinutes– anDataSdk.Configparameter that determines how often to pull data from subscribed devices.- New dependency
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2 - New dependency
androidx.work:work-runtime-ktx:2.7.1 - New dependency
androidx.datastore:datastore-preferences:1.0 - New dependency
androidx.lifecycle:lifecycle-process:2.4.1
Deprecated
MetricRepository.getByTimestamp()deprecated in favor ofMetricRepository.getByTimestampRange()Manager.registerDeviceForAutomaticFileTransfer()deprecated in favor ofDataDownloadManagerManager.unregisterDeviceForAutomaticFileTransfer()deprecated in favor ofDataDownloadManager
BLE SDK.
Fixed
- Fixed issue when automatic reconnect hasn't been triggered in some cases.
[0.6.4.1] - 2021-02-024
BLE SDK. Bedtime / risetime
Added
- Bracelet V2: Get / Set Accelerometer plan: Continuous / Bedtime-Risetime / Disable
- Bracelet V2: Get / Set EmoGraphy & Bioz plans: Continuous / Bedtime-Risetime / Disable
- Bracelet V2: Sync of the Accelerometer file
- Bracelet V2: Sync of the EmoGraphy file
- Profile: Gender / wrist / date of birth added (Get Profile and Set Profile)
Changed
- Bracelet V2: Accelerometer / EmoGraphy / Bioz files synced to .wiff file with a minimum of 20kB
- Bracelet V2: PPG2 files synced to .wiff file with a minimum of 500kB
Data SDK. Sleep process automatically
Added
- Export function of the .wiff files locally (Raw measurements PPG2 / Acc / EmoGraphy / BioZ)
- Exported .wiff files deleted
DFU SDK. New FW version
Changed
- Update of firmware version for the bracelet V1 to 3.87
[0.6.3] - 2021-02-01
BLE SDK. Bedtime / risetime
Added
- Get / Set commands for bedtime and risetime
Data SDK. Sleep process automatically
Changed
- Sleep process triggered in the automatic file transfer after 250 steps
- Sleep summary with 1 minute slots
- rename of some variables to match iOS naming
DFU SDK. New FW version
Changed
- Update of firmware version for the bracelet V2 to 2.23 and V1 to 3.83
[0.6.2] - 2021-01-18
BLE SDK. Bracelet plan update
Changed
- Bracelet battery too short, change of default plan to avoid battery high consumption
[0.6.1] - 2021-01-14
Data SDK. Fixes Sp02 and respiration rate
Fixed
- Respiration rate quality always 0
- Stress summary (SpO2) not generated
Sample App. Scan screen redirects to the DFU screen when a device needs a recovery
[0.6.0] - 2022-01-11
BLE SDK. Added sync of the stress file, SpO2
Added
- Sync of the Stress file for B2 in the automatic file transfer
- Parse new data B2: SpO2
Data SDK. Added Stress, and change all summaries to have a 1 minute interval
- 1 minute interval
- Steps slots have energy expenditure, speed (m/s) and activity type
- Add Stress summary, and stress metrics
- Added SpO2 summary
DFU SDK.
Added
- FW 2.9 for B2
- Added method to get the latest firmware version
fun getLatestFirmwareVersion(hardwareId: Int): FirmwareVersion - Added method to get if a DFU is needed
fun needDfu(hardwareId: Int, currentVersion: FirmwareVersion): Boolean
[0.5.1] - 2021-12-14
BLE SDK. Added time commands to the bracelet
Added
- Added method to set the time on the bracelet
bleDevice.enqueueCommand(request = SetTimeRequest(), - Added method to get the time on the bracelet
bleDevice.enqueueCommand(request = GetTimeRequest(),
Sample App. Scan screen redirects to the DFU screen when a device needs a recovery
Changed
- Redirection to the DFU screen for device of type
record.scanType.needsRecovery - Rename of scan data
data.pusherPressedtodata.advertisementData?.isPusherPressed
[0.5] - 2021-12-01
Data SDK. Added support for Automatic File Transfer based on the ping.
Added
- Enable automatic file transfer based on the ping. Can be
enabled
DataSdk.Manager.registerDeviceForAutomaticFileTransfer() - Added method to unregister automatic file
transfer
DataSdk.Manager.unregisterDeviceForAutomaticFileTransfer()
Changed
- Rename of internal package
ble.internal.notificaitontoble.internal.notification - Private methods in
Managerare unified and simplified.
[0.4] - 2021-11-29
BLE SDK. Added support for new commands in the latest watch firmware.
Added
- Commands for controlling workout mode, as well as live notifications that contain current stats.
- Commands for downloading and erasing PPG2 and ECG files (as binary data).
- Added support for Android 12 (new Bluetooth permissions).
- Added support for 287-2B:
- Starting and stopping ECG, BIOZ and PPG2 measurement.
- DFU
Changed
- Updated format of Activity and Workout file according to specs.
- DFU needs HardwareId to update with the correct firmware.
Deprecated
- BleSdk.getWatch() and BleSdk.getWatch() deprecated in favor of
getDevice()andremoveDevice(). - DataSdk.getSummaryManager() deprecated in favor of
getManager().
Fixed
- Issue where disconnect of one of multiple devices would cause crash due to abnormal cancellation of running commands.
[0.3] - 2021-06-07
Data SDK. Added functionality for the Data SDK to retrieve and process Sleep data.
Added
- Sample app shows usage of Data SDK and how to retrieve and process sleep.
[0.2] - 2021-05-25
Initial release DATA SDK. Added functionality for the Data SDK to retrieve and process Activity, HRV and PPG data.
Added
- Sample app shows usage of Data SDK and how to retrieve summaries.
[0.1] - 2021-05-18
Initial release BLE SDK.
Added
- Sample app shows usage of BLE SDK and how to connect BLE Device.