alt text

User Manual

The MX sensor is an inertial measurement unit (IMU), it combines a MEMS accelerometer, gyro and magnetometer. The sensor has a Bluetooth compatible radio that can be used for configuration and real-time streaming. The sensor also features 4GB of memory for recording data. Additionally, the MX includes a barometric pressure sensor and temperature sensor which can be used to give context to the movement data. The MX has been designed as a platform for gathering movement data in either lab or at-home environments.

Orientation Diagram

alt text

Device Specifications


Item Value Notes
Weight 18g .
Size 40 x 30 x 9.8mm excluding attachments
Water Ingress 1.5m tested for 30 mins submersion
Particle Ingress 0.1micron opperation tested after exposure
Opperating temp 0-65˚C in humidity < 65% (non-condensing)

Sensor Details

Variable Values
Accelerometer - Rate: 12,50,100,200,400,800Hz
- Range: ±2,4,8,16g
- Resolution: 16bit
Gyroscope - Rate: 12,50,100,200,400,800Hz
- Range: 250,500,2000deg/s
- Resolution: 16bit
Magnetometer - Rate: 10Hz
- Range: ±4800uT
- Resolution: 14bit
Pressure - Rate: 1,10Hz
- Range: 300-1100hPa
- Resolution: ±0.12hPa (equiv. 1m)
Temp - Rate: 1,10Hz
- Range: -40-80˚C
- Resolution: ±0.1˚C

Sensor Overview

alt text

The MX sensor is contructed from multiple components. Below is an detailed breakdown:

Item Desc Notes        
1. Outer Puck Casing Non-shatter Polycarbonate        
2. Li-Polymer Battery See battery life details        
3. Memory 4GB Non-volatile        
4. Micro Controller 32bit ARM M4 Cortex        
5. Environment Sensor Baromettric Pressure and Temperature        
6. Movement Sensor 3-Axis Acc + Gyro + Mag: (9-Axis IMU)        
7. LED Array Code Descriptions   2. Gold Plated USB Connector Rated for 10,000 connections
8. Lid Non-shatter Polycarbonate        
9. Bluetooth Compatible Radio Wireless configuration + Streaming        
10. Real Time Clock Quartz stabilised ±0.864sec drift/day        
11. Gold Plated USB Connector Rated for 10,000 connections        

Casing Construction

The material choices have been made to make sure the sensor is rugged and hard wearing; it has been designed for the toughest of environments. The case-parts are laser welded together to give a water-resistant and dust resistant enclosure. For details on cleaning the device please see the Looking After Your Device section.

Movement Sensor

The MX sensor has an integrated IMU which allows it to gather synchronised accelerometer, gyroscope and magnetometer data. The MX also has a hardware Motion Engine which allows for highly accurate Orientation estimates to be made in the form of Quaternions. In Raw Data collection modes, each part of the MX can be configured manually. The following sections now give an overview of each IMU component:


The accelerometer has a variable sensitivity to allow it to be used in many applications. The selectable ranges are ±2 g, ±4 g, ±8 g (g is the acceleration due to gravity or ). The user should experiment with these ranges to trade off sensitivity against dynamic range.

Accelerations outside the selected dynamic range result in saturation (“clipping”) of the recorded acceleration. The dynamic range of the accelerometer has no effect on the battery life or memory constraints. Table 2 shows a typical use case for each of the available sensitivities.

Sensitivity Example Use Case
±2g Fine movements such as resting
±4g Mild activities such as posture transitions
±8g Moderate activities such walking
±16g Intense activities such as sprinting & jumping

NOTE: Fixed analysis profiles such as GaitKeeper and ActivityScope automaticaly select the most appropriate settings.


The gyro has a configurable sensitivity to allow it to be used in a wide range of applications. The gyro measures angular velocity (ω in ˚/second) of the item or body part is attached to. As the gyro has a fixed number of bits over its range, the sensitivity should be as low as possible without clipping so that the most information is captured about the object/body part.

NOTE: Analyses such as GaitKeeper and ActivityScope automaticaly select the most appropriate settings.


The magnetometer has a configurable range to allow it to be used in a wide range of applications. For an example application note on using the magnetometer in conjunction with a accelerometer to achieve a digital compass, please consult this application note

Altimeter Sensor

The pressure is expressed as a signed 32bit integer in Pascal’s (SI unit). Conversion from Pascal’s to altitude is a complicated process involving thermodynamic and physical models to account for the changes in density and pressure through the atmosphere. However, a simple conversion can be accomplished assuming typical conditions to reasonably accurately determine a change in altitude from a given reference point at which the pressure is known ($P_0$). The conversion is explained here and can be summarised as:

where is the change in height, is the pressure in Pascal’s and is the pressure at the origin (e.g. Sea level).

where is the universal gas constant ( ), is origins temperature (in ˚C), is gravity ( ) and M is the molar mass of air (all SI units). Typically at STP (standard temperature and pressure).

Since there is an approximate exponential relationship at moderate altitudes, a simple exponential function can be used as described on page 16 of the barometric pressure sensors datasheet . This approximation uses the faster pow(x,y) function from the standard C library math.h and can be implemented to yield the height in cm using the following example.

#include <math.h>

long CalculateAltitudeCm(long pressure, long pressure_sea_level) 
    long altitude = 0;

    float temp1,temp2;

    temp1 = ((float)pressure)/((float)pressure_sea_level);

    temp2 = powf(temp1,0.19029495718363462); /*double*/

    temp1 = (float)4433000*(1-temp2); /*note extra zeros are for cm*/   altitude = ((temp1 >= 0)?(long)(temp1+0.5):(long)(temp1-0.5));  
    return altitude; 

Temperature Sensor

The temperature sensor on the MX is PCB mounted and thus must NOT be used to measure skin or air temperature. The values from this sensor are used to calibrate other sensors that are related to temperature and are reported for transparency and completeness.

Teperature is measured in units of 0.1˚C. To convert into Centigrade, use the collowing equation:

Bluetooth Radio

The Bluetooth compatible radio in the MX is used for configuring the device and streaming data during supervised collections. For full details on how to use interface over Bluetooth, please refer to the API documentation.

In typical indoor scenarios, the expected range will be ~30m line of sight. This range can be decreased if the MX is used in environments with lots of other radio devices OR there are large metal objects obstructing the transmission.

NOTE: For best results, please refrain from mounting the MX on or near metal objects.


The MX has a built in 4GB NAND Flash memory chip to store the sensor data. This type of memory has a limited lifespan of 100,000 read/write cycles and over time will begin to develop “wear”. The MX has an inbuilt function to ensure the memory is “wear levelled”, this ensures the general condition of the memory wear remains constant over the entire range. The memory is typically used to store the raw binary data from the sensors as this offers the optimal data compression, error detection and error recovery. Most errors will be single bit errors (e.g. affecting a single sensor samples) and can in some cases can be ignored. The MX handles errors with an inbuilt ECC (error correction codes) and Block Management (bad memory blocks are marked and not-used for storage). These features are automaticaly enabled and make the MX “best in class” for applications where data integrity is important.

The download of data from the MX is over USB and typical read speeds of 1MB/sec can be expected. In practice this translates to: - Download time of 1 week accelerometer data @100Hz (ActivityScope profile) is ~30 sec - Download time of 1 hour IMU data @200Hz (GaitKeeper profile) is ~5 sec

NOTE: All VetSens defined profiles ActivityScope and GaitKeeper profiles have error correction enabled as standard.

Real Time Clock

The MX has a built in, real-time clock (RTC) and calendar which provides the time base for the recorded data. The clock is typically reset when the device is configured (but the precision at the time of reset cannot be guaranteed). Over time this internal clock will drift slightly. For single device applications, that can tolerate a drift of 10 parts-per-million (0.864 seconds per day) no action is needed. However, when using multiple devices for a single capture session, aligning the data sets from several sources can become difficult. To overcome this, you can add an easily identifiable signal (e.g. hand claps at the start and end of capture), and tools are available to help synchronize this to an external clock or between devices.

NOTE: In GaitKeeper profile, device synchronisation is handled automaticaly

Looking after the MX Sensor


The MX has a high energy density lithium polymer cell which is used as the power source whilst gathering data. The battery is rated at 500 recharge cycles; battery empty to battery full. Battery charging is via a high performance charge controller that permits a full recharge of the battery within ~90minutes.

The battery level is recorded alongside other sensor data and is stored milli-volts and the fully charged voltage of lithium polymer cells at 25˚C is 4.2V or 4200mV (the discharge curve of lithium batteries is non-linear and it is not possible to linearly approximate the percentage of capacity remaining). After 3.3V (3300mV) the battery is nearly depleted (see below) and the voltage will drop rapidly, this could result in a device reset and an unexpected loss of communication; by this point the user should be recharging the device.

For approximations of battery life in various modes of opperation, please see the battery life table

LED codes

The MX has 5 LEDS. These are used for communicating: - Battery Charge - USB connectivity - Bluetooth Connectivity - Opperating Mode - Status and Errors

Below is a comprehensive table of LED states

Illustration Desc Notes  
bootloader Bootloader Mode. LED 5 8Hz Cyan flash Used for updateing firmware. Do not disconnect during update  
bt_txfer BT Data. LED 5 8Hz Blue flash Transfering Data  
bt_connected BT Connected. LED 5 4Hz Blue flash Ready to txfer data  
bt_discoverable BT Discoverable. 2Hz Blue flash LED 5 Ready for pairing  
err_bt BT Error. LED 1 Solid Red and LED 5 8Hz Blue flash Problem with BT module. Update Firmware  
err_mem Memory Error. LED 1 Solid Red and LED 5 8Hz Magenta flash Problem with memory. Re-format  
err_sensor Sensor Error. LED 1 Solid Red and LED 5 8Hz Yellow flash Problem with sensor. Reset or Update Firmware  
err_other Other Error. LED 1 Solid Red and LED 5 8Hz Red flash Raise support ticket  
err_multi Multiple Error. LED 1 Solid Red and LED 5 8Hz flash Error Colour Handle individualy  
precharge Precharge Battery below 5%. LED 1 8Hz flash Red Could take upto 60 seconds to exit pre-charge
charge_20 Charging 20%. LED 1 solid, LED 2 4Hz flash LED 2 will fade in-out if USB data connection  
charge_40 Charging 40%. LED 1 and 2 solid, LED 3 4Hz flash LED 3 will fade in-out if USB data connection  
charge_60 Charging 60%. LED 1-3 solid, LED 4 4Hz flash LED 4 will fade in-out if USB data connection  
charge_80 Charging 80%. LED 1-4 solid, LED 5 4Hz flash LED 5 will fade in-out if USB data connection  
charge_100 Charging 100%. LED 1-4 solid, LED 5 4Hz flash LED 5 will fade in-out if USB data connection  

Using the MX Sleeve

The MX sensor comes with a rubber sleeve that is designed as an attachment mechanism for a range of applications. The sleeve is designed to receive the MX in a fixed orientation as shown below.


The sleeve is designed to have a strap or belt threaded through it as shown below.



Axis Alignment

The following illustrations indicate the orientation of the accelerometer,gyro and magnetometer.


NOTE: The axis flip of the z-axis and rotation of the x and y-axis between sensors.

When mounting the device or processing data collected by the device, a note of the sensor orientation should be noted and if multiple data sets are being gathered, the data collection protocol should include a device orientation.

NOTE: In managed profiles such as ActivityScope and GaitKeeper, axis alignment is automaticaly managed.

Working with binary files

The MX sensor collects data in binary format called OMX. This format is requires special software to decode and will not open with typical data processing software. Documentation of the file format and tools for decoding it are available in the Developer Resource site.

Working with streamed data

The MX is capable of streaming data over Bluetoth protocol. A receiving application can either display the received data, or log it to a file (or both). The sensor data is transmitted in raw binary using slip encoding (RFC 1055), this allows the framing of the data to be extracted. Documentation of the encoding scheme and tools for decoding it are available on the Developer Resource site.

Battery Life

Battery life of the MX sensor is complex to estimate and is predominantly affected by: - Sample rates - Sensors in use (e.g gyro or acc+gyro) - Radio

The following is a (non-definative) list of use-modes and associated battery life:

Mode Current (uA) Battery life Notes
Base Current 100 100 days Standby life
Logging Acc @100Hz 75    
Logging Acc @200Hz 265    
Logging Pres @1Hz 10    
Logging Mag @10Hz 150    
Logging Gyr @100Hz 6150    
Logging Gyr @200Hz 6250    
Acc @100Hz
Gyr @100Hz
Mag @10Hz
Pres @1Hz
6485 1.5days Full IMU Logging
Acc @200Hz
Gyr @200Hz
Mag @10Hz
Pres @1Hz
7425 1.3days Full IMU Logging
Acc @100Hz
Mag @10Hz
Pres @1Hz
335 30days  
BT Dicsoverable 30000    
BT Communication 65000    
Streaming + Logging:
Acc @100Hz
Mag @10Hz
Pres @1Hz
65335 4 hours  
Streaming + Logging:
Acc @100Hz
Gyr @100Hz
Mag @10Hz
Pres @1Hz
71485 3 hours  


Serial Number

Each MX sensor comes marked with its Serial Number on the exterior casing. The Serial Number format is a 16-character (alphanumeric) code. It contains information about:

  • Hardware Version (H)
  • Batch Number (B)
  • Model Number (M)
  • Serial Number (S)

Format is as follows:


For example:


Would be decoded as:

  • Hardware Version = 001
  • Batch Number = 01A
  • Model Number = MX
  • Serial Number = 00123456

The serial number is designed to be forwards compliant with the FDA regulations. The FDA stipulates all devices must have a Device ID (DID) and Product ID (PID). Usually the FDA can issue Device ID (see here The Product ID should carry information about; Batch the device was manufactured in, Serial number of specific device, Expiration date of a device, Date device was manufactured The item termed the Serial Number will form part of the Product ID.

On the outside of the case, the Serial Number is marked in both a human and machine readable formats.


Each MX sensor carries a manufacturer warranty against defects in materials and workmanship. For full terms and conditions of the warranty, please see the Warranty section of the VetSens website here.



The sensor has been CE certified after the following satisfactory tests.

Item Value
EN 61000-4-6 Conducted RF immunity
EN 61000-4-3 Radiated RF immunity
EN 61000-4-4 Immunity to fast low-transient bursts
EN 61000-4-5 Immunity to slow high-energy transients (surges)
EN 61000-4-2 Immunity to electrostatic discharge
EN 61000-4-8 Power frequency magnetic immunity
EN 61000-4-11 Voltage dips and interruptions
EN 55022 Radiated emissions
EN 55022 Conducted emissions


The MX contains transmitter module with FCC ID QOQBT121 with Bluetooth declaration ID D027374.

This device complies with Part 15 of the FCC Rules. Operation is subject to the following two conditions: 1. This device may not cause harmful interference, and 2. This device must accept any interference received, including interference that may cause undesired operation.

Any changes or modifications not expressly approved by Bluegiga Technologies could void the user’s authority to operate the equipment.

FCC RF Radiation Exposure Statement

This equipment complies with FCC radiation exposure limits set forth for an uncontrolled environment. End users must follow the specific operating instructions for satisfying RF exposure compliance. This transmitter meets both portable and mobile limits as demonstrated in the RF Exposure Analysis. This transmitter must not be co-located or operating in conjunction with any other antenna or transmitter except in accordance with FCC multi-transmitter product procedures. As long as the condition above is met, further transmitter testing will not be required. However, the OEM integrator is still responsible for testing their end-product for any additional compliance requirements required with this module installed (for example, digital device emissions, PC peripheral requirements, etc.).


This MX contains a radio transmitter (IC 5123A-BGTBT121)

The transmitted has been approved by Industry Canada to operate with the embedded chip antenna. Other antenna types are strictly prohibited for use with this device.

This device complies with Industry Canada’s license-exempt RSS standards. Operation is subject to the following two conditions: 1. This device may not cause interference; and 2. This device must accept any interference, including interference that may cause undesired operation of the device

RF Exposure Statement

Exception from routine SAR evaluation limits are given in RSS-102 Issue5. BT121 meets the given requirements when the minimum separation distance to human body is less than equal to 20 mm. RF exposure or SAR evaluation is not required when the separation distance is 20 mm or more. If the separation distance is less than 20 mm the user is responsible for evaluating the SAR.

MIC Japan

The MX contains a radio transmitter certified for use in Janpa with certification number 209-J00171


Translation: “This equipment contains specified radio equipment that has been certified to the Technical Regulation Conformity Certification under the Radio Law.”

South Korea

The MX contains a transmitter with certification ID MSIP-CRM-BGT-BT121