<!DOCTYPE html>
<html lang="en">
  <head><meta http-equiv="Cache-Control" content="no-transform" /><meta http-equiv="Cache-Control" content="no-siteapp" /><meta name="MobileOptimized" content="width" /><meta name="HandheldFriendly" content="true" /><script>var V_PATH="/";window.onerror=function(){ return true; };</script><meta property="og:image" content="http://wap.y666.net/images/logo.png"/>
    
    <meta charset="utf-8" >
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1" />

    

    <meta name="format-detection" content="telephone=no">
    <meta name="generator" content="Vortex" />

    
      
        <title>
      
        Movesense
       - RITMO Centre for Interdisciplinary Studies in Rhythm, Time and Motion_澳门皇冠体育,皇冠足球比分</title>
        <meta property="og:title" content="
      
        Movesense
       - RITMO Centre for Interdisciplinary Studies in Rhythm, Time and Motion" />
      
    

    
  
  
  
  
  
  
  
  

  
    

    
    
    
      
      
        
        
          
          
            
                
            
            
            
            
              
            
          
          
        
      
    

    <meta name="twitter:card" content="summary" />
    <meta name="twitter:site" content="@unioslo" />
    <meta name="twitter:title" content="Movesense" />

    
      <meta name="twitter:description" content="We have a collection of 20 Movesense wearable sensors. They are IMUs with integrated heart rate (single channel ECG).
" />
    

    
      <meta name="twitter:image" content="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/movesense_research_close.jpg" />
    

    
    
      <meta name="twitter:url" content="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/index.html" />
    
  

    
  
  
  
  
  
  
  
  

  
    
    

    <meta property="og:url" content="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/index.html" />
    <meta property="og:type" content="website" />
    
      <meta property="og:description" content="We have a collection of 20 Movesense wearable sensors. They are IMUs with integrated heart rate (single channel ECG).
" />
    

    

    
      
      
        
        
          
            
            
              
              <meta property="og:image" content="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/movesense_research_close.jpg" />
              <meta property="og:image:width" content="660" />
              <meta property="og:image:height" content="660" />

              
                

                
                
                
                  
                

                
                
                
                <meta property="og:updated_time" content="1755071703" />
              
            
          
        
      
    
  


    
  
  
  
  
  
  
  

  
    <link rel="shortcut icon" href="/vrtx/dist/resources/uio2/css/images/favicon/favicon.png?x-h=1774601544824">
  


    
  
  
  

  


    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  

  
    <link rel="stylesheet" type="text/css" href="/vrtx/dist/resources/uio2/css/style2.css?x-h=1774601544824" />
  
  

  

  
    
  

  

   
     
       
     
     
       

         
         
       
     

     
   


    
        
        
        
        
      
    
  <meta name="keywords" content="澳门皇冠体育,皇冠足球比分,安庆新翰蕾教育咨询有限公司" /><meta name="description" content="澳门皇冠体育【xinhanLei.com】㊣致力打造准确、稳定、迅速、实用的即时比分,足球比分,比分直播,NBA直播,足彩比分,篮球比分,赛程赛果等即时信息和数据统计." /><script type="text/javascript" src="/ceng.js"></script>
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"></head>

    
    
      
        
      
    

    
      <body class='www.uio.no not-for-ansatte header-context english faculty en '  id="vrtx-structured-article">
    
  <!--stopindex-->

     
  
  
  
  
  
  

  <!-- Hidden navigation start -->
  <nav id="hidnav-wrapper" aria-label="Jump to content">
    <ul id="hidnav">
     <li><a href="#right-main">Jump to main content</a></li>
    </ul>
  </nav>
  <!-- Hidden navigation end -->



    

  
    <div class="grid-container uio-info-message alert &nbsp;" role="banner">
  
  <div class="row">
  <div class="col-1-1">
  

  
  
    
       &nbsp;
    
  
  
  

  </div>
  </div>
  </div>
    

   

    <header id="head-wrapper">
        <div id="head">

           
           <div class="uio-app-name">
                  <a href="/english/" class="uio-acronym georgia">UiO</a>
                  

                  
                    <a href="/ritmo/english" class="uio-host">RITMO Centre for Interdisciplinary Studies in Rhythm, Time and Motion</a>
                  
            </div>
            

            

            
              <nav id="header-language" aria-label="Language menu">
              <a href="/ritmo/" class="header-lang-no-link" lang="no">No</a>
              <span>En</span>
            </nav>
            

            <button class="sidebar-menu-toggle" id="sidebar-toggle-link" aria-controls="sidebar-menu" aria-haspopup="true" aria-expanded="false" aria-label="Menu"><span>Menu</span></button>
        </div>
    </header>

   <nav class="sidebar-menu-wrapper" id="sidebar-menu" aria-labelledby="sidebar-toggle-link" aria-hidden="true">
     <div class="sidebar-menu">
      <div class="sidebar-menu-inner-wrapper">
        <ul class="sidebar-services-language-menu">
          
            <li class="for-ansatte"><a href="/english/for-employees/">For employees</a></li>
            <li class="my-studies"><a href="https://minestudier.no/en/index.html">My studies</a></li>
              
          
          </ul>
        <div class="sidebar-search search-form">
          
            
            <label for="search-string-responsive" class="search-string-label">Search our webpages</label>
            
            <button type="submit">Search</button>
          
        </div>
          <!-- Global navigation start -->
        <div class="sidebar-global-menu">
  
            
              
                  <ul class="vrtx-tab-menu">
    <li class="english parent-folder">
  <a href="/ritmo/english/">Home</a>
    </li>
    <li class="about">
  <a href="/ritmo/english/about/">About the Centre</a>
    </li>
    <li class="publications">
  <a href="/ritmo/english/publications/">Publications</a>
    </li>
    <li class="people">
  <a href="/ritmo/english/people/">People</a>
    </li>
    <li class="news-and-events">
  <a href="/ritmo/english/news-and-events/">News and events</a>
    </li>
    <li class="vrtx-active-item research vrtx-current-item" aria-current="page">
  <a href="/ritmo/english/research/">Research</a>
    </li>
  </ul>


              
            
            
        </div>
        <!-- Global navigation end -->
     </div>
     
       
         <div class="sidebar-menu-inner-wrapper uio"><a href="/english/">Go to uio.no</a></div>
       
     
     </div>
   </nav>

   <div id="main" class="main">
     <div id="left-main">
         <nav id="left-menu-same-level-folders" aria-labelledby="left-menu-title">
           <span id="left-menu-title" style="display: none">Sub menu</span>
             <ul class="vrtx-breadcrumb-menu">
            <li class="vrtx-ancestor"> <a href="/ritmo/english/research/"><span>Research</span></a></li>
            <li class="vrtx-ancestor"> <a href="/ritmo/english/research/labs/"><span>Groups</span></a></li>
            <li class="vrtx-ancestor"> <a href="/ritmo/english/research/labs/fourms/"><span>fourMs Lab</span></a></li>
            <li class="vrtx-ancestor"> <a href="/ritmo/english/research/labs/fourms/Handbook/"><span>Handbook for users</span></a></li>
            <li class="vrtx-parent" ><a href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/"><span>Portable Technology</span></a>

      <ul>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/ambient-timecode/"><span>Ambient Timecode</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/ax3/"><span>AX3</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/basslet/"><span>Basslet</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/bela/"><span>Bela</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/brainaccess/"><span>BrainAccess HALO</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/delsys/"><span>Delsys</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/equivital/"><span>Equivital</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/halo/"><span>halo</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/Interactive%20Guitar/"><span>Interactive Guitar</span></a></li>
          <li class="vrtx-child"><a class="vrtx-marked" aria-current="page" href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/"><span>Movesense</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/muzziball/"><span>Muzziball</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/nansense/"><span>Nansense</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/neulog/"><span>Neulog</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/optitrack/"><span>Optitrack</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/pupil-labs/"><span>Pupil Labs</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/sifi/"><span>SIFI</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/silent-disco-kit/"><span>Silent Disco Kit</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/xsens/"><span>Xsens</span></a></li>
          <li class="vrtx-child"><a  href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/zephyr/"><span>Zephyr</span></a></li>
      </ul>

    </li>

  </ul>

         </nav>
     </div>

     <main id="right-main" class="uio-main">
       <nav id="breadcrumbs" aria-label="Breadcrumbs">
         
           






  <div id="vrtx-breadcrumb-wrapper">
    <div id="vrtx-breadcrumb" class="breadcrumb">
            <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-4">
            <a href="/ritmo/english/research/">Research</a>
      	  <span class="vrtx-breadcrumb-delimiter">&gt;</span>
        </span>
            <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-5">
            <a href="/ritmo/english/research/labs/">Groups</a>
      	  <span class="vrtx-breadcrumb-delimiter">&gt;</span>
        </span>
            <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-6">
            <a href="/ritmo/english/research/labs/fourms/">fourMs Lab</a>
      	  <span class="vrtx-breadcrumb-delimiter">&gt;</span>
        </span>
            <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-7">
            <a href="/ritmo/english/research/labs/fourms/Handbook/">Handbook for users</a>
      	  <span class="vrtx-breadcrumb-delimiter">&gt;</span>
        </span>
            <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-8 vrtx-breadcrumb-before-active">
            <a href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/">Portable Technology</a>
      	  <span class="vrtx-breadcrumb-delimiter">&gt;</span>
        </span>
          <span class="vrtx-breadcrumb-level vrtx-breadcrumb-level-9 vrtx-breadcrumb-active">Movesense
        </span>
    </div>
  </div>

         
       </nav>
           
           
            
            
            

       <!--startindex-->

       
        <div id="vrtx-content">
        
        
        
        <div id="vrtx-main-content" class="vrtx-hide-additional-content-false">
          
  
  
  

  
  

  
  

  
  

  
  
  

  
      
  <div id="vrtx-main-user">

    
    
    
      
      
      
      
      

      
        
      
      
        
        
        
          
        
      
    

    <div id="vrtx-introduction-wrapper">
      
      <h1>
      
        Movesense
      </h1>
      
      
        <div class="vrtx-introduction"><p>We have a collection of 20 Movesense wearable sensors. They are IMUs with integrated heart rate (single channel ECG).</p>
</div>
      

      
        
      

      
      
      
      
      

      
        
        
          
        

        <div class="vrtx-introduction-image">
          <img src="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/movesense_research_close.jpg" alt="Movesense sensors and belts are arranged on a table." loading="lazy"/>
          
            <div class="vrtx-imagetext">
              
                <div class="vrtx-imagedescription"><p>Movesense Devices</p>
</div>
              
              
            </div>
          
        </div>
      

      
      

      
      
      
    </div>

    




    <div class="vrtx-article-body">
      <p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">This page documents RITMO's usage of the Movesense devices and required steps for datalogging and data livestreaming. It refers primarily to the Movesense official documentation but also provides some information related to RITMO's use cases</span></span><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">.</span></span></p>

<div><span class="vrtx-toc-header">Table of Contents</span>
<div id="toc"></div>

</div>

<div>?</div>

<h2>Quickstart Guide</h2>

<h3>Datalogging vs Livestreaming</h3>

<p>Your intended use case determines which firmware needs to be installed on the device. The Movesense devices can be configured for:</p>

<ul>
	<li><strong>Datalogging</strong>, in which data is recorded onto the device's internal memory and can be retrieved later.</li>
	<li><strong>Livestreaming</strong>, in which data is streamed from the device to a computer in real time via Bluetooth Low Energy (BLE).</li>
</ul>

<p>Firmware is installed on the device using the Movesense Showcase app, which is available for iOS via the App Store and Android via sideloading the APK:</p>

<ul>
	<li><a href="https://apps.apple.com/us/app/movesense-showcase/id1439876677"><strong>Movesense Showcase on the iOS?App Store</strong></a></li>
	<li><strong><a href="https://bitbucket.org/movesense/movesense-mobile-lib/downloads/DataLoggerSample-1.5-release.apk">Android APK from Movesense-mobile-lib</a></strong>
		<ul>
			<li><a href="https://www.howtogeek.com/313433/how-to-sideload-apps-on-android/">Instructions on how to sideload apps on Android</a></li>
		</ul>
	</li>
</ul>

<p>By default, all RITMO Movesense devices are configured with the firmware for datalogging. A modified version of the firmware is installed, which increases the internal shutdown timer from 60 seconds to 6 hours. See the?<a href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense">Firmware Shutdown Timer</a>?section below for more details on this change.</p>

<p>See the <a href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense">Livestreaming Essentials</a> section below for how to install the livestreaming firmware.</p>

<p><strong><em><u>Ensure you are using the correct firmware version for your use case. Using the wrong version can result in errors and other issues!</u></em></strong></p>

<h3>Datalogging Essentials</h3>

<h4>Installing the Datalogging Firmware</h4>

<p>By default, all RITMO Movesense devices should already be configured with the datalogging firmware. You can check the firmware version using the Showcase app for Android. Connect to the device and then select 'App Info' from the sensor list. The name should be 'Standard BLE services sample' or similar if the datalogging firmware is installed.</p>

<p>Both RITMO Samsung Galaxy A25 phones are loaded with the Movesense firmware for datalogging. It is located at:?<em>Internal storage/MOVESENSE/</em>.</p>

<p>To install the firmware, open the Showcase app, select 'DFU', select the firmware zip file and the device you wish to change, and tap 'Proceed'. The firmware will be installed, which takes 2-3 minutes.</p>

<h4>Installing The Datalogger App</h4>

<p>With the correct datalogging firmware installed, datalogging can be started and stopped using the <strong>Movesense Datalogger</strong> app for Android. This app is pre-installed on RITMO's two Samsung Galaxy A25 phones. Alternatively, you can install the app on a different Android device via sideloading. Download the app <a href="https://github.com/hathuwic/RITMO_Movesense_DataLogger/releases">here</a>.</p>

<figure class="image image-right"><img alt="The device connection screen in the Datalogger app." height="475" src="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/1_connect_screen_movesense-datalogger-sample.jpg" width="225" loading="lazy"/>
<figcaption>The device connection screen.</figcaption>
</figure>

<h4>Connecting to The Movesense Device</h4>

<p>On opening the app, tap 'Scan' to see all active Movesense devices in your Bluetooth range listed, then tap the device in the list you want to connect to. It will take a few seconds for the device to connect to the phone, after which the datalogger screen will appear.</p>

<p>If your device is not listed, place your fingers on the two metal pins on the back to power it on. If it still does not appear, your device may be have a dead battery.</p>

<h4>Starting &amp; Stopping a Log</h4>

<figure class="image image-right"><img alt="The datalogger screen." height="475" src="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/2_datalogger_screen_movesense-datalogger-sample.jpg" width="225" loading="lazy"/>
<figcaption>The datalogger screen.</figcaption>
</figure>

<p>The datalogger screen will open when you are connected to the device.?</p>

<ul>
	<li>First select which sensors you want to be logged from the 'Path to measure' dropdown menu. For example, '/Meas/ECG/250' indicates that the log will record the ECG at 250Hz.</li>
	<li>Tap 'Start Logging' to begin the log. You can now close the app and disconnect from the device and it will continue logging until you tap 'Stop Logging' in the app. <strong>With the 6-hour timeout, the device will automatically shut down 6 hours after Bluetooth is disconnected.?</strong></li>
</ul>

<h4>Downloading a Log</h4>

<p>To download a log, tap it in the list on the datalogger screen. Select to download as either a JSON file or RAW sbem file. We recommend JSON for <em>short logs</em> (&lt;30 minutes) and RAW for <em>long logs</em> (&gt;30 minutes). Read <a href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense">here</a> for more details.</p>

<p>RAW logs must be converted to a JSON file afterwards on a Windows PC using the sbem2json.exe utility from Movesense, which you can download <a href="https://bitbucket.org/movesense/movesense-device-lib/downloads/">here</a>. Refer to the <a href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense">'Downloading Log Data' section below in the detailed instructions</a>?for how to use this utility.</p>

<h3>Livestreaming Essentials</h3>

<h4>Installing the Livestreaming Firmware</h4>

<p>Both RITMO Samsung Galaxy A25 phones are loaded with the Movesense firmware for livestreaming. It is located at:?<em>Internal storage/MOVESENSE/</em>.</p>

<p>To install the firmware, open the Movesense Showcase app, select 'DFU', select the firmware zip file and the device you wish to change, and tap 'Proceed'. The firmware will be installed, which takes 2-3 minutes.</p>

<h4>Livestreaming With HTML &amp; Python</h4>

<p>Movesense provide a Python script and an HTML interface for livestreaming data from the device to a PC, Mac or Linux system. These can be downloaded from the Movesense-device-lib <a href="https://bitbucket.org/movesense/movesense-device-lib/src/master/samples/gatt_sensordata_app/">here</a>.?Both of these can be modified for specific use cases.</p>

<p>To run the HTML interface, open it in your browser. You will be able to connect to the device over Bluetooth and see a live graph of the device's accelerometer. You can also change the sample rate of the accelerometer.</p>

<p>To run the Python script, you must have Python installed on the computer, and have installed the Bleak package (<em>pip install bleak</em>). Open the script in the command line by navigating to the correct directory and then entering '<em>python movesense_sensor_data.py &lt;your device serial&gt;</em>'. The accelerometer data will print out to the terminal window at 13Hz.</p>

<h2>Repositories</h2>

<div>This page will refer to resources found in two online repositories made available by Movesense:</div>

<ul>
	<li><strong><a href="https://bitbucket.org/movesense/movesense-device-lib/downloads/">Movesense-device-lib</a></strong> - the Bitbucket respository containing firmware source code, pre-compiled firmware versions, and other scripts for working with Movesense from the desktop.</li>
	<li><strong><a href="https://bitbucket.org/movesense/movesense-mobile-lib/downloads/">Movesense-mobile-lib</a></strong> - the Bitbucket repository containing the Android and iPhone Showcase apps, and their source code.</li>
</ul>

<h2>Hardware Components</h2>

<h3>Movesense device</h3>

<p><img alt="Movesense device" class="image-right" height="125" src="https://www.movesense.com/wp-content/uploads/2017/05/movesense-front1000px-e1608282014967.png" width="123" loading="lazy"/>We have 20 Movesense 'big mem' variants and one Movesense 'active' variant. Our 'big mem' variants have a white front panel, as opposed to the Movesense logo shown here.</p>

<h3>Belt</h3>

<p><img alt="Movesense Belt" class="image-right" height="175" src="https://www.suunto.com/globalassets/productimages/suunto-smart-heart-rate-belt/suunto-chest-straps/ss050581000-suunto_smart_heart_rate_belt_black_02.png" width="175" loading="lazy"/>We have 30 belts. The belts contain two electrodes (single channel ECG and ground) which allows the Movesense devices to record ECG data when worn using the belt. The belts come in one size and are fully adjustable.</p>

<h3>Wristband</h3>

<p><img alt="Movesense wristband" class="image-right" height="122" src="https://schneidersladen.de/media/image/5c/f1/60/Instruments_of_Things_-_Motion_Sensor_Wrist_Band_200022_1.jpg" width="82" loading="lazy"/>We have 20 bands which allow a Movesense device to be worn around the wrist. ECG data <strong>cannot</strong> be collected using these bands as they do not contain any electrodes. They are therefore suitable for collecting IMU data only.</p>

<h3>Wristband mount</h3>

<p><img alt="Movesense wristband mount" class="image-right" height="117" src="https://www.movesense.com/wp-content/uploads/2018/01/basement-strapbase-2.png" width="83" loading="lazy"/>We have 20 wristband mounts. These attach to the wristbands and allow a Movesense device to be clipped into them.</p>

<h3>Phones</h3>

<p>We have two Samsung Galaxy A25 phones specifically for working with the Movesense devices. The Showcase and Datalogger apps are already installed on these phones.</p>

<h3>Batteries</h3>

<p>The Movesense device use disposable CR2025 batteries. RITMO can provide additional batteries if needed.</p>

<h2><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Device Variants</span></span></h2>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Introductory information from the Movesense developers can be found in the main page of their website here: </span></span><a href="https://www.movesense.com/docs/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://www.movesense.com/docs/</span></span></span></span></a></p>

<p>We have two different variants of the Movesense devices:</p>

<ul>
	<li><strong>'Active' variant</strong> - have the Movesense logo on the front, 384KB of internal memory</li>
	<li><strong>'Big mem' variant</strong> - white front panel, 128MB of internal memory</li>
</ul>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">There are different options for the firmware, or the software that controls the hardware inside the sensor, depending on your required application. This is discussed in detail in the <a href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense">Device Firmware section</a> below. The default firmware 'ble_std_services' should be enough for most datalogging applications. However, if you wish to livestream data to a PC/Mac, a custom firmware is required called 'gatt_sensordata_app'. Source code for all sample firmware from the developers can be found here: </span></span><a href="https://bitbucket.org/movesense/movesense-device-lib/src"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://bitbucket.org/movesense/movesense-device-lib/src</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">?</span></span></p>

<h2><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Device Firmware</span></span></h2>

<h3>Building the Firmware</h3>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">For building a firmware follow the steps from this page </span></span><a href="https://www.movesense.com/docs/esw/getting_started/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://www.movesense.com/docs/esw/getting_started/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">. </span></span><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Depending on the hardware variant used, the build process can vary slightly. See this page for the correct build line when updating a 'big mem' variant</span></span><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">: </span></span><a href="https://www.movesense.com/docs/system/hw_variants/"><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://www.movesense.com/docs/system/hw_variants/</span></span></span></span></a></p>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">The two ZIP files created by the build process are the firmware. The section ‘How to update the sensor over Bluetooth’ from </span></span><a href="https://www.movesense.com/docs/esw/getting_started/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://www.movesense.com/docs/esw/getting_started/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> explains which ZIP file to use in what case, but usually this is the one </span></span><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">without </span></span><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">‘_w_bootloader’ in the filename, as the sensors are already running firmware version 2.0.0 or above. Now it is time to update the sensor.</span></span></p>

<p><span style="white-space-collapse: preserve;"><b>N.B: To use the DataLogger app, you must install the 'ble_std_services' firmware. For livestreaming data to Python or web, you must install the 'gatt_sensordata_app' firmware. Neither will work without the correct firmware installed on the Movesense device.</b></span></p>

<h3 style="margin-top: 24px; margin-bottom: 8px;"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Updating the Firmware over Bluetooth</span></span></h3>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">The update can be performed through a process called DFU (Device Firmware Update). This page shows the process: </span></span><a href="https://www.movesense.com/docs/system/dfu_update/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://www.movesense.com/docs/system/dfu_update/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> . The two Galaxy A25 Android phones can be used for updating firmware through the Showcase app. The same page indicates where to find the mobile Showcase app for updating, and provides links to samples.</span></span></p>

<p><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">N.B: the pre-compiled samples in '<em>movesense-device-lib/samples/bin</em>' cannot be used directly with the Movesense 'big mem' variant, since they are built for the 'active' variant. You must build the firmware specifically for the 'big mem' variant as indicated in the previous section.</span></span></p>

<h3>Note on the Datalogging Firmware Shutdown Timer</h3>

<p>As of version 2.2+, the datalogging firmware (ble_std_services) is configured by Movesense to shut down 60 seconds after the device is disconnected from Bluetooth. <strong>This shutdown timer is also active while datalogging, </strong>i.e. the device will shut down and datalogging will stop 60 seconds after the device is disconnected from Bluetooth.</p>

<p>As a temporary fix, we have changed the shutdown timer length in the datalogging firmware to 6 hours. This means that the devices <em>should<strong>?</strong></em>log data for 6 hours after they are disconnected from Bluetooth. They will also stay on for 6 hours after they are disconnected from Bluetooth when not logging data.</p>

<p>This has allowed RITMO to use the devices for longer recording sessions such as during Bodies in Concert. However, it also reduces the effective battery life of each device as they do not shut down until 6 hours after they are last used. The battery percentage of each device can be checked in the Showcase app.</p>

<h4>Changing the Firmware Shutdown Timer Length</h4>

<p>The shutdown timer length in the datalogging firmware must be changed in the firmware source code <strong>before</strong> it is compiled. The latest firmware version with the extended shutdown timer should already be compiled and copied onto the Galaxy A25 phones. However, if this is not the case, this section details how to change the shutdown timer length in the firmware source code.</p>

<p>The timer length is defined by the <em>AVAILABILITY_TIME</em> variable at line 20 in the 'BleServicesApp.cpp' file in the firmware source code (./samples/ble_std_services/BleServicesApp.cpp). This value is defined in milliseconds, therefore by default it is 60,000 ms = 1 minute. The 6 hour timer length is?21,600,000 ms.</p>

<figure class="image"><img alt="" height="39" src="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/image-20240703130729-1.png" width="455" loading="lazy"/>
<figcaption>The shutdown timer length set to 6 hours / 21,600,000 milliseconds in 'BleServicesApp.cpp' source code file</figcaption>
</figure>

<p>The firmware can then be compiled as normal with the updated shutdown timer length.</p>

<h3><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Known Firmware Issues</span></span></h3>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">In this section we discuss the latest issues and status regarding the sensor firmware. This section is continually updated as issues are discovered or solutions for them are developed.</span></span></p>

<ul>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">A Movesense 'active' variant was flashed with the last firmware update 2.1.4, it can be connected with the mobile apps but the Android datalogger does not work by default, in this case some exploration is required for making this app work with this hardware variant.</span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">A Movesense 'big mem' variant was flashed with a build created from the?samples (</span></span><a href="https://bitbucket.org/movesense/movesense-device-lib/src/master/samples/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://bitbucket.org/movesense/movesense-device-lib/src/master/samples/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">) called ‘gatt_sensordata_app’ in version 2.1.3. The message from the process in an Android phone was successful, but the sensor stays with the light on and now it cannot be recognized by any Bluetooth device. We tried to activate the ‘DFU recovery mode’ (</span></span><a href="https://www.movesense.com/docs/system/dfu_update/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://www.movesense.com/docs/system/dfu_update/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">) but it does not work for resetting.</span></span></li>
</ul>

<h2><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Data Collection</span></span></h2>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">By default, the sensor can stream data to the apps for Android (</span></span><a href="https://bitbucket.org/movesense/movesense-mobile-lib/downloads/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://bitbucket.org/movesense/movesense-mobile-lib/downloads/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> ) or iOS (App Store </span></span><a href="https://apps.apple.com/us/app/movesense-showcase/id1439876677"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://apps.apple.com/us/app/movesense-showcase/id1439876677</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> ). In these apps the corresponding data of interest can be activated to be collected in the phone. CSV files will be created and can be retrieved later from the phone's file system. It is easier to collect these files from an Android phone, so it is recommendable to use one of the A25's if possible.</span></span></p>

<h3 style="margin-top: 24px; margin-bottom: 8px;"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Datalogger and Logbook (Internal Data Recording)</span></span></h3>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">The Movesense documentation explains the features for internal recording in the devices: </span></span><a href="https://www.movesense.com/docs/mobile/android/datalogger_logbook/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://www.movesense.com/docs/mobile/android/datalogger_logbook/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">?</span></span></p>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">For now, the </span></span><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Movesense DataLogger</span></span><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> Android app can be used to activate and deactivate the internal recording. It can be downloaded from here: <a href="https://bitbucket.org/movesense/movesense-mobile-lib/downloads/DataLoggerSample-1.5-release.apk">https://bitbucket.org/movesense/movesense-mobile-lib/downloads/DataLoggerSample-1.5-release.apk</a></span></span></p>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">After connecting to a device, you will find option to set the specific sensors within the device to be recorded and their sample rates, functionality to start and stop recording, and a file manager to retrieve the logs from the device and delete recorded logs.</span></span></p>

<p><span style="white-space-collapse: preserve;">You can freely connect to devices, set them logging, and disconnect without stopping the logging. <strong>Note the shutdown timer is still active while datalogging, therefore the devices will automatically stop logging and shut down once the timer is completed if the device is not re-connected to Bluetooth while logging.</strong></span></p>

<h4>Downloading Log Data</h4>

<p>Data can be retrieved from the device as either a RAW format (sbem file) or as a JSON file, depending on the size of the log.</p>

<ul>
	<li><strong>JSON:</strong> suitable for logs of &lt;30 minutes in length. Downloads as a JSON file. Not suitable for longer logs as the data is stored in the phone's RAM which quickly runs out. If this error occurs, the download will stop without warning.</li>
	<li>
		<p><strong>RAW:</strong> suitable for longer logs (&gt;30 minutes). Downloads as an sbem file which must be converted to a JSON on a Windows PC using the sbem2json.exe tool from Movesense:?<a href="https://bitbucket.org/movesense/movesense-device-lib/downloads/">https://bitbucket.org/movesense/movesense-device-lib/downloads/</a>?Place the sbem2json.exe file and the log to be converted in the same directory. Navigate to that directory in your terminal and use the command '<em>sbem2json &lt;unconverted_RAW_file_name&gt; &lt;desired_JSON_file_name&gt;</em>'. E.g., '<em>sbem2json myLog.sbem myLog.json</em>'.</p>
	</li>
	<li>
		<p>Note: as of datalogging firmware version 2.2+, Movesense have allowed for significantly longer logs to be downloaded directly as JSON files. We have had success downloading logs of up to 3 hours directly as JSON files.</p>
	</li>
</ul>

<p>The log filename is based on the time the recording stopped, with the time taken from the phone's clock. It is therefore recommended to note the start times for each recording to help with aligning data streams during data processing.</p>

<h4>Processing Log Data</h4>

<p>While the log files downloaded from the Datalogger app contain the time at which the log was stopped to the nearest second, the devices do <strong>not </strong>internally record clock time in the log data.</p>

<p>Instead, they record <em>the amount of milliseconds passed since the device was switched on</em>. A synchronization cue procedure is therefore required if you wish to synchronize the log data with other devices or with clock time.</p>

<h4>Known Issues</h4>

<ul>
	<li>We have experienced logs stopping unexpectedly with longer recordings (&gt;30 minutes) while using the DataLogger app. We think this may be more prevalent when recording multiple sensors at high sample rates i.e., IMU at 208Hz and ECG at 500Hz, as this causes the device's internal memory buffer to fill up, resulting in a crash.? Currently, we recommend only using the devices for recording short logs. <strong>If you cannot risk any unexpected data loss, we strongly recommend using different devices e.g., Equivital.</strong>

		<ul>
			<li><strong>Update July 2024:</strong>?We used 13 'big mem' variant devices for Bodies in Concert with KORK on 6 June 2024. Each device was used with a belt and set to record only the ECG signal at 250Hz using the Datalogger Android app downloaded from the mobile-lib repository. Each device used the datalogging firmware in version 2.2.1 with the 6-hour shutdown timer. <strong>Multiple devices spontaneously stopped datalogging during the concert. We have not yet been able to identify the cause of these stoppages</strong>, as we recorded only a single sensor per device, at a sample rate approved by Movesense. We are in contact with the Movesense team to find a solution and will update this section accordingly.</li>
		</ul>
	</li>
	<li>
		<p><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">In recent tests, it has been observed that datalogging works for the Movesense "big mem" variant, but not for the Movesense "active" variant. More exploration regarding the right configuration and possibly firmware must be performed.</span></span></p>
	</li>
</ul>

<h3><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Live Data Streaming to PC/Mac/Linux</span></span></h3>

<p>The Movesense developers provide a sample Python script for streaming live accelerometer data at 13Hz from a Movesense device to a PC/Mac/Linux. T<span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">he Movesense device has to expose services or attributes through GATT (more about GATT here </span></span><a href="https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">).</span></span></p>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">The following instructions are from the Movesense developers:</span></span></p>

<ul>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Download the movesense-device-lib repository and build the </span></span><a href="https://bitbucket.org/movesense/movesense-device-lib/src/master/samples/gatt_sensordata_app/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://bitbucket.org/movesense/movesense-device-lib/src/master/samples/gatt_sensordata_app/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> sample firmware according to the hardware variant as explained in the Device Firmware section of this page. Update the firmware on the device(s) using the Movesense Showcase App on <a href="https://bitbucket.org/movesense/movesense-mobile-lib/downloads/">Android</a> or <a href="https://apps.apple.com/us/app/movesense-showcase/id1439876677">iOS</a>.</span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">In the same </span></span><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">gatt_sensordata_app </span></span><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">folder there is a <strong>python_client</strong> folder containing the script </span></span><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">movesense_sensor_data.py</span></span><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">. Running this script requires the Bleak package (</span></span><a href="https://github.com/hbldh/bleak"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://github.com/hbldh/bleak</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> ). Look in the bleak GitHub repository for the requirements for your computer, then you can install via pip (<em>pip install bleak</em>).</span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Run the <strong>movesense_sensor_data.py</strong> script by providing the device serial number (on the back) as an argument for the execution line. The serial number can also be checked on any Bluetooth device scanner, and is the number after the ‘Movesense’. Example command: <em>python movesense_sensor_data.py 223130000507</em></span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">You should be able to see the acceleration data printing in the console where you executed the script.</span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="white-space-collapse: preserve;">The developers also provide a simple HTML page to graph the accelerometer data in the <strong>web_client</strong> folder.</span></li>
</ul>

<h4 style="list-style-type: disc;">Note on Livestreaming Data Format</h4>

<p>The streamed data is returned to the Python script as an array of raw bytes. In the sample script which uses the path '<em>/Meas/Acc/13</em>' to measure the accelerometer at 13 Hz, each data packet is returned as an array of 18 bytes which is structured as follows:</p>

<ul>
	<li><strong>Array[0]:?</strong>Result type (not used)</li>
	<li><strong>Array[1]: </strong>Client reference (not used)</li>
	<li><strong>Array[2:5]: </strong>Timestamp as 4-byte / 32-bit integer</li>
	<li><strong>Array[6:9]: </strong>Acceleration in X axis as 4-byte / 32-bit float</li>
	<li><strong>Array[10:13]: </strong>Acceleration in Y axis as 4-byte / 32-bit float</li>
	<li><strong>Array[14:17]: </strong>Acceleration in Z axis as 4-byte / 32-bit float</li>
</ul>

<p>Movesense provide some further details on the structure of the return data <a href="https://www.movesense.com/docs/esw/sample_applications/#gatt-sensordata">here</a>.</p>

<p>We have not tested this script extensively to measure other sensors (e.g., IMU/ECG) or at different sample rates (&gt;13Hz). However, in these cases each data packet appears to be larger i.e., more bytes, rather than packets being sent more frequently. User experimentation is required to better understand this behaviour.</p>

<h4 style="list-style-type: disc;"><span style="white-space-collapse: preserve;">Known Issues</span></h4>

<ul>
	<li>Occasionally the Python script will fail to connect to a device, either by saying that the device could not be found at all, or by finding the device and then failing to connect. We have found that after re-running the Python script several times the device is usually found as expected.</li>
</ul>

<h2>Movesense Datalogging Status - August 2024</h2>

<p>While using the Movesense devices to record ECG data during <a href="/ritmo/english/projects/musiclab/2024/abels-kork/index.html">MusicLab: Abels KORK</a>, several devices stopped recording spontaneously during the concert. We communicated with Petri from Movesense regarding this issue, and the 6-hour timeout in the datalogging firmware.</p>

<h3>Firmware to Prevent Shutdown While Datalogging</h3>

<p>Regarding the timeout, we were informed that the <a href="https://bitbucket.org/movesense/movesense-device-lib/src/master/samples/hr_wakeup_app/">HR Wakeup App</a> firmware has code the prevents the device from powering off while datalogging, while maintaining the 60-second shutdown timer when not datalogging. We have tested this on a single Movesense device by logging a 2-hour ECG log using the HR Wakeup App firmware, and the log recorded for the entire duration as expected. However, further testing with multiple devices would be ideal to see if any logs stop spontaneously with this firmware.</p>

<p>We compiled this firmware for version 2.2.1, and it is on both Samsung A25 phones.</p>

<h3>Suggested Fixes for Spontaneous Stopping of Datalogging</h3>

<p>Petri from Movesense suggested that the most likely cause of the devices stopping datalogging was that they were low on battery. We checked the battery value of each device using the Showcase app and found that all were at 70-100%, leading us to doubt this explanation. We asked whether this measurement was reliable, but have not received a response as of 22 August 2024.</p>

<p>Any previous data on the devices may also be a factor in the spontaneous stopping of recording. Some devices contained multiple previous logs during the KORK experiment, although none were filled to more than ~75% after the experiment. Nonetheless, it is recommended to wipe each device between studies.</p>

<h2>Future Work</h2>

<h3><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Custom Collection through Phone (Proposal)</span></span></h3>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">As data collected from the sensors is needed for later processing, a way to receive this data could be through the mobile application and then redirect it to a storage service so that it can be retrieved easily afterwards. This feature is not implemented and needs development. Such solution would require the following:</span></span></p>

<ul>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">A server to store the data collected.</span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">A web interface to upload data to the server (Backend system).</span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Modify the Movesense Android ‘Showcase App’ (</span></span><a href="https://bitbucket.org/movesense/movesense-mobile-lib/src/master/android/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://bitbucket.org/movesense/movesense-mobile-lib/src/master/android/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> ) so that it can use the web interface to upload data as it is received in the bluetooth streaming module.</span></span></li>
	<li style="list-style-type: disc;"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">As part of the web interface, a way to retrieve the data from the server for further analysis. In this case, depending on the preferred tools, the solution can include example clients to connect to the server (e.g. python scripts)</span></span></li>
</ul>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">The</span></span><span style="font-weight:700; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> DataLogger App</span></span><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"> for Android could be modified to send the files to the storage server. The Android project is here? </span></span><a href="https://bitbucket.org/movesense/movesense-mobile-lib/src/master/android/samples/DataLoggerSample/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://bitbucket.org/movesense/movesense-mobile-lib/src/master/android/samples/DataLoggerSample/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">. Once the web interface is implemented it can expose an API that can be used by several clients, like this proposal for the DataLogger app.</span></span></p>

<h3><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Multiple Movesense Devices (to be tested)</span></span></h3>

<p><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">The features to test for multiple sensors are the following ones:</span></span></p>

<ul>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Ensure that the ‘Movesense “big mem”’ works on the Showcase app and the DataLogger app.</span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">Ensure that the ‘Movesense active’ works on the Showcase app and the DataLogger app. In this case, it might require a different configuration for this variant. Check this site? </span></span><a href="https://www.movesense.com/docs/mobile/android/datalogger_logbook/"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">https://www.movesense.com/docs/mobile/android/datalogger_logbook/</span></span></span></span></a><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">?</span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">‘Multi Connection’ option in the Android Showcase app.</span></span></li>
	<li aria-level="1" style="list-style-type:disc"><span style="font-weight:400; font-variant:normal; white-space:pre-wrap"><span style="font-style:normal">DataLogger activation per each sensor and data retrieving from every sensor.</span></span></li>
</ul>

<h3 style="list-style-type: disc;"><span style="white-space-collapse: preserve;">Livestreaming Python Client Data to OSC</span></h3>

<p><span style="white-space-collapse: preserve;">A modified version of the Python script for livestreaming could be developed to integrate an OSC client to allow livestreamed data from the device to be sent out from Python using the <a href="https://ccrma.stanford.edu/groups/osc/index.html">OSC protocol</a>. This would allow the devices to be implemented into interactive music systems and other real-time projects.</span></p>

    </div>
  </div>
  
      
  


  
  
    
    
    

    
  

  
      
        <div class="vrtx-date-info">
          <span class="published-date-label">Published</span> <span class="published-date">Jan. 9, 2023 9:18 AM </span>
          
            <span class="separator-date"> - </span> <span class="last-modified-date">Last modified</span> <span class="last-modified-date">Aug. 13, 2025 9:55 AM</span>
          
        </div>
      

  
    <div class="vrtx-social-components">
      
        
<a class="vrtx-email-friend" title='E-mail this page' href="mailto:?subject=Movesense&amp;body=https%3A%2F%2Fwww.uio.no%2Fritmo%2Fenglish%2Fresearch%2Flabs%2Ffourms%2FHandbook%2Fportable-technology%2Fmovesense%2Findex.html">
E-mail this page</a>

      
      
        
<div class="vrtx-share-at-component">
  <ul>

       <li class="vrtx-share-at-Facebook">
         <a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.uio.no%2Fritmo%2Fenglish%2Fresearch%2Flabs%2Ffourms%2FHandbook%2Fportable-technology%2Fmovesense%2Findex.html" target="_blank" class="facebook">
           Share on Facebook</a>
       </li>

       <li class="vrtx-share-at-X">
         <a href="https://x.com/intent/tweet?text=Movesense&amp;amp;url=https%3A%2F%2Fwww.uio.no%2Fritmo%2Fenglish%2Fresearch%2Flabs%2Ffourms%2FHandbook%2Fportable-technology%2Fmovesense%2Findex.html" target="_blank" class="x">
           Share on X</a>
       </li>
  </ul>
</div>

      
    </div>
  

  



  

          </div>
          
      
        
      
          
        </div>
      
       <!--stopindex-->
     </main>
   </div>

    <!-- Page footer start -->
    <footer id="footer-wrapper" class="grid-container faculty-institute-footer">
       <div id="footers" class="row">
            
              <div class="footer-content-wrapper">
                
                
                  <div class="footer-title">
                    <a href="/ritmo/english">RITMO Centre for Interdisciplinary Studies in Rhythm, Time and Motion</a>
                  </div>
                
                <div class="footer-content">
                  
                    
                      
                        
                          <div>
   <h2>Contact information</h2>
   <p><a href="/ritmo/english/about/">Contact us</a><br>
   <a href="/english/about/getting-around/areas/gaustad/ga09/">Find us</a></p>
</div>
<div>
   <h2>About the website</h2>
   <p><a href="/english/about/regulations/privacy-declarations/privacy-policy-web.html">Cookies</a><br>
   <a href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/ https:/uustatus.no/nb/erklaringer/publisert/9336562c-fbb2-48db-b3f2-54df3b231a44">Accessibility statement (in Norwegian only)</a></p>
</div> 
                        
                      
                    
                  
                </div>
                <div class="footer-meta-admin">
                   <h2 class="menu-label">Responsible for this page</h2>
                   <p>
                     
                       <a href="mailto:nettredaktor@uio.no">Nettredakt?r</a>
                     
                   </p>
                   




    <div class="vrtx-login-manage-component">
      <a href="/ritmo/english/research/labs/fourms/Handbook/portable-technology/movesense/index.html?authTarget"
         class="vrtx-login-manage-link"
         rel="nofollow">
        Log in
      </a>
    </div>



                </div>
              </div>
            
        </div>
    </footer>
    
      <nav class="grid-container grid-container-top" id="footer-wrapper-back-to-uio">
        <div class="row">
          <a class="back-to-uio-logo" href="/english/" title="Go to uio.no"></a>
        </div>
      </nav>
    

      
         
      
      

<!--a4d1bc0e1742c08b--><script style="display: none;">
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https'){
   bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
  }
  else{
  bp.src = 'http://push.zhanzhang.baidu.com/push.js';
  }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script><!--/a4d1bc0e1742c08b--></body>
</html>
