Prifina for Developers
  • Docs
  • Getting Data
  • Support
  • Slack
  • Blog
  • Prifina.com

Artificial Movesense Data for Software Development

10/3/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Movesense dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are fifty-one types of data objects: AccConfig, AccData, AccInfo, AdvSettings, AdvState, AppInfo, BleConfig, BondList, BondingSettings, CalibrationData, CalibrationMatrix, DebugLogConfig, DebugLogResult, DebugMessage, DebugMessageConfig, DeviceInfo, ECGConfig, ECGData, ECGInfo, EepromData, EepromInfo, FaultInfo, GyroConfig, GyroData, GyroInfo, HRData, HRInfo, IMU6Data, IMU6MData, IMU9Data, IMUConfig, IMUInfo, LedState, Leds, MagnConfig, MagnData, MagnInfo, Memory, ModuleStatus, PeerChange, PeerList, ProductData, ResetReason, ScanResult, State, StateChange, StepsDone, SystemModeStatus, TempInfo, TemperatureValue, VisualIndState.

Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

Movesense is an open development platform for wearables and sensor products for fitness and health. They offer two types of sensors: Movesense Active and Movesense Medical. These technologies contain data from several sensors:
  • Accelerometer
  • Gyroscope
  • Magnetic Orientation
  • Temperature Sensor
  • ECG Sensor
The main difference between the Active and Medical sensors is that the Medical Sensor has been adjusted to adhere to its EU Certification as a Class IIa medical device. A great deal of developer resources is granted to those who wish to utilize the sensor for various purposes, such as data analysis, dedicated apps and services, etc. The ultimate aim of these sensors is to be used as an all-encompassing wearable technology that third party developers can utilize in their applications, as opposed to those developers having to create their own.

Approach used

Movesense provides an API to download and upload data to each Movesense module, provider and application. These APIs can be inspected through either the API reference or a more detailed view can be seen on their BitBucket. By combining the two resources, data objects could be constructed and then converted into JSON format to create a mockup file. A simple data model of these objects can be seen below. This mockup file makes up the movesense-data package.
Acc Data Objects: AccConfig, AccData, AccInfo
Ble Data Objects: BleConfig, AdvState, AdvSettings, ScanResult, PeerList, PeerChange, BondSettings, BondList
Debug Data Objects: DebugLogConfig, DebugLogResult, DebugMessage, DebugMessageConfig, FaultInfo, ResetReason
ECG Data Objects: ECGConfig, ECGData, ECGInfo
Eeprom Data Objects: EepromData, EepromInfo
Gyro Data Objects: GyroConfig, GyroData, GyroInfo
HR Data Objects: HRData, HRInfo
IMU Data Objects: IMUInfo, IMUConfig, IMU9Data, IMU6MData, IMU6Data
Ind Data Objects: VisualIndState
Info Data Objects: AppInfo, DeviceInfo, ModuleStatus
LED Data Objects: Leds, LedState
MAGN Data Objects: MagnConfig, MagnData, MagnInfo
Manufactoring Data Objects: CalibrationData, CalibrationMatrix, ProductData, StepsData
Memory Data Objects: Memory
Mode Data Objects: SystemModeStatus
State Data Objects: StateChange
Temperature Data Objects: TemperatureValue, TempInfo
The Above Images are grouped into the files that can be seen in the package. The captions can correspond to the images top to bottom. 
The movesense-mockup package imports the file above and goes through each attribute generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the SystemModeStatus object:
Static SystemModeStatus Object

    
​Artificial SystemModeStatus Object

    

Use case ideas

  • Health and wellness apps
  • Diet Apps
  • Behavioral apps that nudge people to change their habits or lifestyle
  • Utilizing Movesense data with other data sources (e.g., sleep data, mobility data, social media data, financial data, or open data sources such as weather or traffic, etc.).
  • Etc.

Explore entirely new use cases

  • Monitoring Fitness/Fatigue Levels during activities
  • HeartRate Monitoring
  • Get insights by correlating data from different data sources 
  • Etc.

Ideas to combine with some other data sources

  • Using 23andMe or Ancestry data to get insights or recommendations to adjust personal habits to prevent certain conditions from occurring or treat certain conditions,
  • Construct a life-like Avatar of the user based on user-generated health and wellness data, social media profiles and other data,
  • If the user has been struggling completing a workout or exercise, the application could recommend taking a rest day or adjusting the exercise for their current level. Similarly, the user isn’t struggling with the workouts, the application could recommend skipping rest days or adjusting the workouts for better gains
  • Based on historical activity levels, the use of a dietary application could be used to recommend food and drinks to increase their performance, if the user is showing significant 

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

General considerations:
  • A lot of the data fakers currently do not provide new data, only returns static strings. Faker methods need to be expanded.
  • Better utilization of the ‘utils’ package

Specific considerations:
  • ProductData
    • Provide better methods that can fake the specific product data requested
  • SystemModeStatus
    • Provide reasonable changes in the system mode. One mode may be impossible to lead into another, this needs to be known and changed. 
With Prifina developers can use the Dynamic Data Libraries natively in the App Studio to build direct to consumer apps where individuals can run them with their own user-held data.
Join our Slack community; Liberty. Equality. Data. to brainstorm and collaborate with other app developers, designers, and our team.

    Categories

    All
    23andme
    Ancestry
    Apple
    Dynamic Data
    Fitbit
    Google
    Ios
    Movesense
    Open Source
    Oura
    Peloton
    Polar
    Runkeeper
    Sensor BNO055
    Spotify
    Strava
    Twitch
    Uber
    Use Case
    Veri
    Whoop
    Withings

    RSS Feed

© 2023 PRIFINA INC. ​
Terms of Service
Privacy Policy
About Prifina
  • Docs
  • Getting Data
  • Support
  • Slack
  • Blog
  • Prifina.com