SENSOR MAESTROS SFM2 User manual

www.sensormaestros.com
1 | Page
SFM2User Manual V1.0.0
SFM2Sensor Fusion Module User Manual
The SFM2 is the smallest form-factor and lowest
power wireless 9 DOF Sensor Fusion Module with
optional Pressure, Temperature and Humidty sensors.
The SFM2 offers both a Bluetooth Low Energy and a
USB/COM port interface. The SFM2 provides an
extremely flexible BLE and USB interfaces and allows
complete customization of sensor output streams and
sensor configurations. The SFM2 can easily be worn
using the Velcro strap ran through slot in the bottom
of the enclosure.
Shown with Black Enclosure. For other color options please inquire
Product Highlights1.0
40.9 x 33.3mm (1.61” x 1.31”) Form Factor
Wearable: Enclosure has slot for Velcro strap.
USB and BLE Interfaces: Connect 6+ SFM2’s running 208Hz Fusion ODR and Quaternion data with
newer iOS and Android Devices.
Field Updatable using ‘Over the Air’ update
9 DOF: 3-Axis Gyro, Accel, Mag
Optional Pressure, Temp, and Humidity
Up to 833Hz Sensor Fusion Operation. Multiple Streams can be enabled at same time.
Tared & Un-Tared Quaternion Output
Fusion Compass Heading and Tilt Output
Fusion Linear Acceleration Output
Fusion Euler Angle Output
Sensor Fusion Output via BLE or USB Interface
833, 417, 208, 104, 52, 26Hz ODR Rate Selections
Raw Sensor Output availability for all sensors.
USB(1Mbps) and BLE Interfaces(DLE and 2Mb PHY capability)
iOS and Android App for sensor and data output configuration.
USB/COM command set for sensor and data output configuration.
Python API Library to quickly and easily get application up and running
TARE function to zero orientation for quaternion output.
GLOBAL REFERENCE enable/disable command
TIMESTAMP sensor data with 25us resolution and user definable OFFSET for multiple sensor and
multiple SFM2 synchronization.
Rechargable Battery ( typical 250mAh)
~156hour battery life with Quaternion output @ 26Hz using BLE interface
~100hour battery life with Quaternion output @ 104Hz using BLE interface
~58hour battery life with Quaternion output @417Hz using BLE interface
Individual Control of BLE Output/Notification for every Sensor Output
Every Sensor Output has its own characteristic/Notification
Sensors and Sensor Fusion can be completely customized including Sensor Filters.
Custom OEM/Logo Enclosure available
Example Application Software

www.sensormaestros.com
2 | Page
SFM2User Manual V1.0.0
Table of Contents2.0
PRODUCT HIGHLIGHTS.............................................................................................................................................................................. 11.0
TABLE OF CONTENTS ................................................................................................................................................................................. 22.0
CUSTOM DEVELOPMENT AND OEM SOLUTIONS .............................................................................................................................. 53.0
FUTURE OPTIONS ........................................................................................................................................................................................ 54.0
SFM2 HARDWARE DESCRIPTION........................................................................................................................................................... 65.0
ACCEL/GYRO/SENSOR FUSION SPECIFICATIONS ............................................................................................................................. 76.0
MAGNETOMETER SPECIFICATIONS....................................................................................................................................................... 87.0
PRESSURE SENSOR SPECIFICATIONS.................................................................................................................................................... 98.0
RELATIVE HUMIDITY SENSOR SPECIFICATIONS .............................................................................................................................. 99.0
TEMPERATURE SENSOR SPECIFICATIONS.......................................................................................................................................... 910.0
LED OPERATION DESCRIPTION ............................................................................................................................................................1011.0
BLE OPERATION .........................................................................................................................................................................................1012.0
SFM2 FIRMWARE UPDATE .....................................................................................................................................................................1013.0
SENSOR FUSION ..........................................................................................................................................................................................1214.0
14.1 COORDINATE SYSTEM .................................................................................................................................................................... 13
14.2 TARE QUATERNION ....................................................................................................................................................................... 13
14.3 HEADTARE................................................................................................................................................................................... 13
14.4 GLOBAL REFERENCE ...................................................................................................................................................................... 14
USB COMMANDS .........................................................................................................................................................................................1415.0
15.1 COMMAND FORMAT: .................................................................................................................................................................... 14
15.2 SPECIAL CHARACTERS:.................................................................................................................................................................... 15
15.3 METAVARIABLES:.......................................................................................................................................................................... 15
15.4 DATA TYPES: ................................................................................................................................................................................ 15
15.5 SYSTEM COMMANDS: .................................................................................................................................................................... 15
15.5.1 Config? ............................................................................................................................................................................ 17
15.5.2 SRESET=<self_test-bool> ................................................................................................................................................. 15
15.5.3 GLOBREF=<enable-boolean>........................................................................................................................................... 16
15.6 SENSOR CONFIGURATION COMMANDS:............................................................................................................................................. 16
15.6.1 ASR=<sample_rate-int16>............................................................................................................................................... 16
15.6.2 AFR=<full_scale_range-int16> ........................................................................................................................................ 16
15.6.3 ADE=<enable-boolean> ................................................................................................................................................... 16
15.6.4 GSR=<sample_rate-int16>............................................................................................................................................... 16
15.6.5 GFR=<full_scale_range-int16> ........................................................................................................................................ 16
15.6.6 GDE=<enable-boolean>................................................................................................................................................... 16
15.6.7 MSR=<sample_rate-int16>.............................................................................................................................................. 16
15.6.8 MFR=<full_scale_range-int16> ....................................................................................................................................... 16
15.6.9 MDE=<enable-boolean>.................................................................................................................................................. 16
15.7 SENSOR FUSION COMMANDS:......................................................................................................................................................... 16
15.7.1 SFOR=<fusion_rate-int16> .............................................................................................................................................. 16
15.7.2 SFQDE=<enable-boolean> ............................................................................................................................................... 16
15.7.3 SFQTDE=<enable-boolean> ............................................................................................................................................. 16
15.7.4 SFCHTDE=<enable-boolean> ........................................................................................................................................... 16
15.7.5 SFLADE=<enable-boolean>.............................................................................................................................................. 16
15.7.6 SFEADE=<enable-boolean> ............................................................................................................................................. 16
15.7.7 SFTARE! ........................................................................................................................................................................... 16
15.7.8 SFTARE=<w>,<x>,<y>,<z> ................................................................................................................................................ 16

www.sensormaestros.com
3 | Page
SFM2User Manual V1.0.0
15.8 TIMESTAMP COMMANDS: .............................................................................................................................................................. 16
15.8.1 TIME! ............................................................................................................................................................................... 16
15.8.2 TIME=<uint32> ................................................................................................................................................................ 16
15.8.3 TOFFSET! ......................................................................................................................................................................... 17
15.8.4 TOFFSET=<int32>............................................................................................................................................................. 17
15.9 SYSTEM QUERIES: ......................................................................................................................................................................... 17
15.10 SENSOR QUERIES:..................................................................................................................................................................... 17
15.10.1 ASR?................................................................................................................................................................................. 17
15.10.2 AFR?................................................................................................................................................................................. 17
15.10.3 ADE? ................................................................................................................................................................................ 17
15.10.4 GSR? ................................................................................................................................................................................ 17
15.10.5 GFR? ................................................................................................................................................................................ 17
15.10.6 GDE? ................................................................................................................................................................................ 17
15.10.7 MSR? ............................................................................................................................................................................... 17
15.10.8 MFR? ............................................................................................................................................................................... 17
15.10.9 MDE? ............................................................................................................................................................................... 17
15.10.10 SSAT?........................................................................................................................................................................... 17
15.11 SENSOR FUSION QUERIES........................................................................................................................................................... 17
15.11.1SFOR? .............................................................................................................................................................................. 17
15.11.2 SFQDE? ............................................................................................................................................................................ 17
15.11.3 SQTDE? ............................................................................................................................................................................ 17
15.11.4 SFCHTDE? ........................................................................................................................................................................ 17
15.11.5 SFEADE?........................................................................................................................................................................... 17
15.11.6 SFLADE?........................................................................................................................................................................... 17
15.11.7 SFTARE?........................................................................................................................................................................... 17
15.12 RESPONSES:............................................................................................................................................................................. 18
15.12.1 SRESET=<self_test-bool> ................................................................................................................................................. 18
15.12.2 ASR=<sample_rate-int>................................................................................................................................................... 18
15.12.3 AFR=<full_scale_range-int> ............................................................................................................................................ 18
15.12.4 ADE=<enable-boolean> ................................................................................................................................................... 18
15.12.5 GSR=<sample_rate-int>................................................................................................................................................... 18
15.12.6 GFR=<full_scale_range-int> ............................................................................................................................................ 18
15.12.7 GDE=<enable-boolean>................................................................................................................................................... 18
15.12.8 MSR=<sample_rate-int>.................................................................................................................................................. 18
15.12.9 MFR=<full_scale_range-int> ........................................................................................................................................... 18
15.12.10 MDE=<enable-boolean> ............................................................................................................................................. 18
15.12.11 SSAT=<accel>,<gyro>,<mag> ...................................................................................................................................... 18
15.12.12 SFOR=<fusion_rate-int> .............................................................................................................................................. 18
15.12.13 SFQDE=<enable-boolean>........................................................................................................................................... 18
15.12.14 SFQTDE=<enable-boolean>......................................................................................................................................... 18
15.12.15 SFCHTDE=<enable-boolean>....................................................................................................................................... 18
15.12.16 SFEADE=<enable-boolean> ......................................................................................................................................... 18
15.12.17 SFLADE=<enable-boolean> ......................................................................................................................................... 18
15.12.18 SFTARE=<w>,<x>,<y>,<z>............................................................................................................................................ 18
15.13 DATA STREAM FORMAT:............................................................................................................................................................ 18
15.13.1 AD:<x-int>,<y-int>,<z-int> ............................................................................................................................................... 18
15.13.2 GD:<x-int>,<y-int>,<z-int> ............................................................................................................................................... 18
15.13.3 MD:<x-int>,<y-int>,<z-int> .............................................................................................................................................. 18
15.13.4 SFQ:<w>,<x>,<y>,<z>....................................................................................................................................................... 18
15.13.5 SFQT:<w>,<x>,<y>,<z>..................................................................................................................................................... 18

www.sensormaestros.com
4 | Page
SFM2User Manual V1.0.0
15.13.6 SFCHT:<hdg>,<tilt> .......................................................................................................................................................... 18
15.13.7SFEA:<roll>,<pitch>,<yaw> .............................................................................................................................................. 18
15.13.8 SFLA:<x>,<y>,<z> ............................................................................................................................................................. 18
SFM2 BLE SERVICES AND CHARACTERISTICS .................................................................................................................................1916.0
16.1 SFM2 BLE CHARACTERISTIC MAP ................................................................................................................................................... 19
16.2 STREAMING CHARACTERISTICS ......................................................................................................................................................... 20
16.2.1 SFQ stream ...................................................................................................................................................................... 20
16.2.2 SFQT stream .................................................................................................................................................................... 20
16.2.3 SFLA stream ..................................................................................................................................................................... 21
16.2.4 SFEA stream..................................................................................................................................................................... 21
16.2.5 SFCHT stream .................................................................................................................................................................. 21
16.2.6 AD stream........................................................................................................................................................................ 21
16.2.7 GD stream........................................................................................................................................................................ 22
16.2.8 MD stream....................................................................................................................................................................... 22
16.2.9 SFM stream ..................................................................................................................................................................... 22
16.2.10 RH/T stream .................................................................................................................................................................... 22
16.2.11 Pressure stream............................................................................................................................................................... 23
16.3 SETTINGS CHARACTERISTICS ............................................................................................................................................................ 23
16.3.1 Sensor Fusion Settings ..................................................................................................................................................... 23
16.3.2 Reference Settings........................................................................................................................................................... 23
16.3.3 Accelerometer Settings.................................................................................................................................................... 24
16.3.4 Gyroscope Settings .......................................................................................................................................................... 25
16.3.5 Magnetometer Settings .................................................................................................................................................. 26
16.3.6 SF Kalman Settings .......................................................................................................................................................... 27
16.3.7 Calibration Settings ......................................................................................................................................................... 27
16.3.8 Env. sensors settings (on –EH Version) ............................................................................................................................ 28
STORAGE CHARACTERISTICS ................................................................................................................................................................2917.0
17.1.1 Settings storage............................................................................................................................................................... 29
17.1.2 Calibration storage.......................................................................................................................................................... 29
17.2 TIME CHARACTERISTICS .................................................................................................................................................................. 29
17.2.1 Time................................................................................................................................................................................. 29
17.2.2 Time offset....................................................................................................................................................................... 29
17.3 OTHER CHARACTERISTICS................................................................................................................................................................ 29
17.3.1 Tare ................................................................................................................................................................................. 29
17.3.2 Name ............................................................................................................................................................................... 30
17.3.3 Stats................................................................................................................................................................................. 30
17.3.4 Calibration ....................................................................................................................................................................... 30
17.3.5 Self-test ........................................................................................................................................................................... 31
EXAMPLE SOFTWARE...............................................................................................................................................................................3118.0
18.1.1 Python API Library ........................................................................................................................................................... 31
18.2 MOBILE APP ................................................................................................................................................................................ 32
18.2.1 Scanner............................................................................................................................................................................ 33
18.2.2 Home Tab ........................................................................................................................................................................ 34
18.2.3 Config Tab ....................................................................................................................................................................... 36
18.2.4 STAT Tab.......................................................................................................................................................................... 41
18.2.5 Time Tab.......................................................................................................................................................................... 43
18.2.6 Log Tab............................................................................................................................................................................ 43

www.sensormaestros.com
5 | Page
SFM2User Manual V1.0.0
Custom Development and OEM Solutions3.0
Sensor Maestros can provide customized solutions using the SFM2 as a foundation. Below are
some examples of the common customizable options for the SFM2.
Customized Hardware
Additional Sensors
•Temperature/Humidity
•Gas: CO2, CO, VOC’s
•PIR
Customized Battery options
Custom Motion Algorithms
Pattern Recognition
Machine Learning
Vibration Analysis
Fitness/Sports Analysis
Custom Software Applications
iOS
Android
PC Applications
Custom Cloud Applications
Custom Enclosure Options
Future Options4.0
SENSR-POD
BLE to Cellular Bridge
Bluetooth Long-Range:
2400m+ between SFM2 and SENSR-POD
3000m+ with external antenna(~5-6dbi) between SFM2 and SENSR-POD
On-board Data-Logging
Pattern Recognition
Vibration Analysis
Cloud Enablement

www.sensormaestros.com
6 | Page
SFM2User Manual V1.0.0
SFM2 Hardware Description5.0
The SFM2 is comprised of a 64MHz Cortex M4F BLE SOC, Motion Sensors, and optional Pressure, Relative Humidity and Temperate
Sensors. A block diagram is shown below with further details below.
Figure 1: SFM2 Block Diagram
64MHz Cortex M4F MCU
9DOF Sensors
LSM6DSO – 6 Axis Accelerometer/Gyroscope
LIS2DML – 3 Axis Magnetometer
Optional Environmental Sensors
LPS22HH – Pressure Sensor
ENS210 – Relative Humidity and Temperature Sensor
BLE interface to provide easy means for application developers to make use of the SFM2 for developing custom applications.
Example Software provided for BLE Client side for how to interface to the SFM2
Example Python 3D Cube application used to interface to the SFM2 from a USB/CDC Connection.
•Python API Library
Native C++ Library(coming soon)
USB2.0 Support:
SFM2 can be controlled/configured from a COM Terminal program using Serial Commands described in 3.0 Serial
Commands.
Sensor Fusion Data can be sent via USB2.0
USB provides Battery charging
Highly efficient BLE/Characteristic architecture
Every Sensor has its own Sample Rate, Full-Scale Range, Data Enable
Every Sensor has a Notification Enable

www.sensormaestros.com
7 | Page
SFM2User Manual V1.0.0
ACCEL/GYRO/SENSOR FUSION Specifications6.0
Symbol Parameter
Test conditions
Min.
Typ.(1)
Max.
Unit
FS_ODR Sensor Fusion Output Data Rate
12.5 833 Hz
LA_FS
Linear acceleration measurement range
±2
g
±4
±8
±16
G_FS
Angular rate measurement range
±125
dps
±250
±500
±1000
±2000
LA_So
Linear acceleration sensitivity(2)
FS = ±2 g
0.061
mg/LSB
FS = ±4
g
0.122
FS = ±8
g
0.244
FS = ±16 g
0.488
G_So
Angular rate sensitivity(2)
FS = ±125 dps
4.375
mdps/LSB
FS = ±250 dps
8.75
FS = ±500 dps
17.50
FS = ±1000 dps
35
FS = ±2000 dps
70
LA_SoDr
Linear acceleration sensitivity change vs. temperature(4)
from -40° to +85°
±0.01
%/°C
G_SoDr
Angular rate sensitivity change vs. temperature(4)
from -40° to +85°
±0.007
%/°C
LA_TyOff
Linear acceleration zero-g level offset accuracy(5)
±20
mg
G_TyOff
Angular rate zero-rate level
(5)
±1
dps
LA_OffDr
Linear acceleration zero-g level change vs. temperature(4)
±0.1
mg/ °C
G_OffDr
Angular rate typical zero-rate level change vs. temperature(4)
±0.010
dps/°C
Rn
Rate noise density in high-performance mode(6)
3.8
mdps/√Hz
RnRMS
Gyroscope RMS noise in normal/low-power mode(7)
75
mdps
An
Acceleration noise density in high-performance mode(8)
FS = ±2
g
70
µg/√Hz
FS = ±4
g
75
FS = ±8 g
80
FS = ±16 g
110

www.sensormaestros.com
8 | Page
SFM2User Manual V1.0.0
Symbol
Parameter
Test conditions
Min.
Typ.(1)
Max.
Unit
RMS
Acceleration RMS noise in normal/low-power mode(9) (10)
FS = ±2
g
1.8
mg(RMS)
FS = ±4
g
2.0
FS = ±8
g
2.4
FS = ±16 g
3.0
LA_ODR
Linear acceleration output data rate
12.5
26
52
104
208
416
833
1666
Hz
G_ODR
Angular rate output data rate
12.5
26
52
104
208
416
833
1666
1. Typical specifications are not guaranteed.
2. Sensitivity values after factory calibration test and trimming.
3. Subject to change.
4. Measurements are performed in a uniform temperature setup and they are based on
characterization data in a limited number of samples. Not measured during final test for production.
5. Values after factory calibration test and trimming.
6. Gyroscope rate noise density in high-performance mode is independent of the ODR and FS setting.
7. Gyroscope RMS noise in normal/low-power mode is independent of the ODR and FS setting.
8. Accelerometer noise density in high-performance mode is independent of the ODR.
9. Accelerometer RMS noise in normal/low-power/ultra-low-power mode is independent of the ODR.
10. Noise RMS related to BW = ODR/2.
Magnetometer Specifications7.0
Symbol Parameter Test conditions Min. Typ. Max. Unit
FS
Magnetic dynamic range
±49.152
gauss
So Sensitivity
-7% 1.5 +7%
mgauss/
LSB
TcyOff Magnetic Sensor Offset With offset cancellation -60 1.5 +60 mgauss
RMS RMS Noise High Performance Mode 3 mgauss
(RMS)

www.sensormaestros.com
9 | Page
SFM2User Manual V1.0.0
Pressure Sensor Specifications8.0
Symbol Parameter Test conditions Min. Typ. Max. Unit
P
Pressure Operating Range
260
1260
hPa
Pbits Pressure bits of data
-7% 24 +7%
mgauss/
LSB
Psens Pressure Sensitivity 4096 LSB/hPa
PAccRel Relative Accuracy over pressure
P = 800-1100 hPa
T = 25°C ±0.025 hPa
PAccTAbsolute accuracy over temperature Pop, T = -20 to 80°C ±0.5 hPa
ODRPres Pressure output data rate
1
10
25
75
100
200
Hz
Relative Humidity Sensor Specifications9.0
Symbol Parameter Test conditions Min. Typ. Max. Unit
P
Pressure Operating Range
260
1260
hPa
Pbits Pressure bits of data
-7% 24 +7%
mgauss/
LSB
Psens Pressure Sensitivity 4096 LSB/hPa
PAccRel Relative Accuracy over pressure
P = 800-1100 hPa
T = 25°C
±0.025 hPa
PAccT Absolute accuracy over temperature Pop, T = -20 to 80°C ±0.5 hPa
ODRPres Pressure output data rate
1
10
25
75
100
200
Hz
Temperature Sensor Specifications10.0
Symbol Parameter Test conditions Min. Typ. Max. Unit
P
Pressure Operating Range
260
1260
hPa
Pbits Pressure bits of data
-7% 24 +7%
mgauss/
LSB
Psens Pressure Sensitivity 4096 LSB/hPa
PAccRel Relative Accuracy over pressure P = 800-1100 hPa
T = 25°C ±0.025 hPa
PAccT Absolute accuracy over temperature Pop, T = -20 to 80°C ±0.5 hPa
ODRPres Pressure output data rate
1
10
25
75
100
200
Hz

www.sensormaestros.com
10 | Page
SFM2User Manual V1.0.0
LED Operation Description11.0
COLOR
FUNCTION
NOTES
YELLOW
Connected
Will blink twice every ~2.5 seconds to indicate SFM2
is connected to a BLE Client
YELLOW
Advertising
Will blink once every ~1 second to indicate SFM2 is in
advertising mode
RED
Sensor/Sensors Enabled
Connected: Blink twice every ~2.5 seconds
Unconnected: Blink once every ~1 second
This LED is sequenced with the YELLOW LED if a
Sensor is Active/ON.
BLUE
Active Battery Charging
Solid BLUE Led indicates battery is charging via USB.
Table 1: LED Operation
BLE Operation12.0
The SFM2 provides BLE Peripheral(slave) operation and allows any BLE Client(master) to connect to the SFM2. The SFM2 does not
require Bonding. Description of operation is provided below.
1) BLE ADVERTISING: Upon powering the device the SFM2 Performs BLE Advertising and advertises the Device name “SFM2”.
a. YELLOW BLE LED Blinks at ~1 second interval
b. Advertising Interval = 500ms
c. Currently the device does not allow user adjustment of the Advertising Interval.
NOTE: The Device Advertises as a Connectable BLE Peripheral and does not require any Bonding/Secure Pairing.
2) BLE CONNECTED: Once a BLE Client has connected to the SFM2 the device will transition to what is shown below and allows
the BLE Client to read all the Services, Characteristics, and Descriptors to allow an application to be developed.
a. YELLOW BLE LED Blinks at ~2.5 second interval
b. All BLE Services, Characteristics, Descriptors are available to be read from the Client.
c. The SFM2 Max/Min Connection interval is set to 7.5ms for Maximum throughput via a BLE Connection. Not all BLE
Clients in particular Mobile Devices will allow for a 7.5ms Connection interval. Sensor Sample Rates and Sensor
Fusion Output Rates should be configured according to the maximum throughput allowed by the Client BLE device.
3) BLE DISCONNECTED: Upon a BLE Client(master) disconnecting from the SFM2 the device will return to the BLE
ADVERTISING mode.
SFM2 Firmware Update13.0
The SFM2 embedded firmware is not available in source code as open source. Licensing can be made available upon requests.
Developers/users of the SFM2 can make use of the USB Commands and/or the BLE Characteristics to configure and retrieve data from
the SFM2. Sensor Maestros can provide design services for customization of the embedded firmware for specific use cases on a case
by case basis. The SFM2 firmware can be updated via a BLE Connection. Further details/instructions are provided in the “SFM2
Fimware Updates” section of this User Manual.
BLE Update: The SFM2 can be updated via a BLE connection using the nRF Connect mobile app. This is a free app that Nordic
Semiconductor provides and is available for both Android and iOS platforms. To perform an update you will need to have a OTA(Over
the Air) Zip file which contains the firmware update. All firmware updates are provided and available on the Google Drive that Sensor
Maestros will provide access to upon a purchase of the SFM2. The steps for performing this update are very simple and outlined
below.
1) Download the ‘nRF Connect’ App for your preferred mobile OS.
a. Android: Google Play Store: https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp
b. iOS: Go to the App Store and search for nRF Connect

www.sensormaestros.com
11 | Page
SFM2User Manual V1.0.0
2) IF YOU ARE USING THE ANDROID VERSION!! After installing nRF Connect open the app and first go into
Settings->Connectivity and disable ‘Show incoming connection’ as shown below. This will aid in allowing nRF Connect to
show a smooth graph during the update. NOTE: Settings are accessed from the Side Nav bar
3) After installing nRF Connect open the app and go to the ‘Scanner’ tab and look for the SFM2 as shown below. If you do not
see any devices show up click the ‘Scan’ button in the upper right. Click ‘CONNECT’
4) Once connected click ‘DFU’ in the upper right hand corner
5) Entering DFU mode you will be prompted to ‘Select file type’ as shown below. Select ‘Distribution packet(ZIP) and click OK.

www.sensormaestros.com
12 | Page
SFM2User Manual V1.0.0
6) Now select the OTA Zip file that you have been provided or downloaded from Sensor Maestros. Typically if you have
downloaded this from a Google Drive or accessed it from email it is in the ‘Downloads’ folder on Android devices. On iOS
you will have to have stored this OTA Zip file somewhere on your device or be able to access it from your iCloud folders.
7) You will now see a screen that shows a graph as the SFM2 begins to receive the firmware update. This process can take a
bit of time. Upon completion you will see a pop-up indicating ‘Application was sent successfully’ and will then Disconnect
from the DFU application.
8) You can now disconnect the SFM2 from the nRF Connect App
9) Upon connecting the SFM2 to the Sensor Maestros smSENSR mobile App it will display the new firmware version.
Sensor Fusion14.0
The SFM2 provides for 9DOF Sensor Fusion output that can be enabled by the user. The following Sensor Fusion output
streams are provided by the SFM2 and can be individually enabled/disabled using either the BLE or USB interface.
Quaternion
Tared Quaternion
Compass Heading and Tilt
Linear Acceleration
Euler Angle
Sensor Fusion output rates (ODR) can be selected by the user from 0(Disabled), 12.5, 26, 52, 104, 208, 417, and 833Hz.
The Sensor Fusion ODR(SFOR) can be set to an ODR rate equal to the highest ODR rate of either the GYRO or ACCEL. For example if
417Hz SFOR ODR rate is desired either the ACCEL or GYRO or both should be configured also to 417Hz. For optimum results it is
recommended to set the ACCEL & GYRO ODR rates to 2X the SFOR ODR rate. Technically the SFOR ODR can be greater than the ODR
rate of either the ACCEL or GYRO but not both. This configuration is NOT recommended though. The Magnetometer does not need
to be ODR rate correlated with the Sensor Fusion ODR rate though for any Sensor Fusion ODR rates 104Hz or greater it is highly
recommended to set the Magnetometer to its max value of 104Hz. The MAG ODR rate does have a requirement that the ODR rate
can’t be greater than both the ACCEL and GYRO. An acceptable configuration is shown below though NOT recommended.
ASR = 12.5Hz GSR = 208Hz MSR = 104Hz

www.sensormaestros.com
13 | Page
SFM2User Manual V1.0.0
14.1 Coordinate Systems
The SFM2 uses two different Coordinate Systems(CS):
•Local Coordinate System(LCS)
•Global Coordinate System(ENU)
The Global Coordinate System is fixed with the external world and it is ENU standard(East—North-Up, acceleration positive) the same
that is used in the Android coordinate system. It means that Global Coordinate System axes are oriented as follows:
X is East
Y is North
Z is Up
The LCS is a rigidly fixed coordinate system affixed to the SFM2 device and by default is as shown below:
Using the ‘TARE’ function this coordinate system can be re-oriented to any position the SFM2 has been moved to and will be
effectively Zero’d at the position it is in prior to using the ‘TARE’ function.
This means that when the SFM2 rotates(changes its orientation) the LCS rotates with it in the exact same manner. All the SFM2
attitude streams except SFQ provide attitude of current LCS provided in ENU. SFQ provides attitude of default LCS given in ENU. The
sensor measurement vectors(acceleration, angular rate, magnetic) and SFLA(Sensor Fusion Linear Acceleration) are by default given
in LCS but can also be given in ENU by enabling GLOBAL REFERENCE by setting GLOBREF = 1.
14.2 Tare Quaternion
The SFM2 variable SFTARE! provides the ability to change the LCS orientation. Executing SFTARE! creates a new LCS that is the same
as ENU in the moment of executing the command. After taring the SFM2 the LCS orientation is exactly the same as ENU so all angles
are zero. This allows you to change the default LCS to any other you want. This is EXTREMELY USEFUL if the SFM2 has been mounted
or moved the user can use the SFTARE! function to re-orient the LCS to this new orientation. This provides an easy means for the user
to always start from a known orientation starting point regardless of the physical orientation of the SFM2.
Example: Attach the SFM2 to some piece of equipment that is stationary during the attachment. The orientation of the SFM2 with
respect to the equipment doesn’t matter. Orient the equipment in such a way that its X axis point East, Y axis points North and Z axis
points Up(the orientation of equipment is the same as ENU). With the SFM2 in a stable position execute the SFTARE! command or
execute this via the Mobile App. Now the SFM2 outputs are given in the new LCS which is the same as the equipment’s coordinate
system.
14.3 Headtare
Sometimes it is not practical to rotate the equipment to match the ENU axes for taring. Then you can ‘TARE’ in any
orientation(making sure the equipment is not tilted) and then manually correct the SFM2 using the Headtare function
(HEADTARETARE=<angle_in_deg>) according to the current equipment heading angle. The angle is measured between the West-East
axis and the equipment axis is in the counter-clockwise manner(looking from above). Headtare allows for a manual alignment
adjustment to the SFM2 in degrees.
X
Z
Y

www.sensormaestros.com
14 | Page
SFM2User Manual V1.0.0
14.4 Global Reference
To understand the Global Reference option, please get familiar with the ‘Coordinate Systems’ first being LCS and ENU.
All sensor measurement vectors(acceleration, angular rate, magnetic) and SFLA(Sensor Fusion Linear Acceleration) are by default
given in LCS.
Tracking Acceleration Example: It is useful for example when you want to measure the acceleration of your car. You fix the SFM2 to
your car, tare and adjust the heading using headtare if needed. Then all the accelerations related to car acceleration or breaking
appear on the X axis. When the car accelerates there are positive readings on the X axis, when it is braking there are negative
readings on the X axis. It is no matter how the car is oriented in the external world the X axis is always affixed to forward and
backward motion. No matter whether you are driving South-North or East-West the reading are always on the X axis.
In the presented above car example using measurements given in the LCS is the best solution because it gives you exactly what you
want.
The case is completely different when you want to track the trajectory of a ball.
Tracking Trajectory Example:In this case you would put the SFM2 into the ball and affix it in some manner and throw it. Now you
want to draw the flight trajectory. In the simplest form to get the position(relative to the start point)you have to integrate the
acceleration twice. It would be easy if the ball would not be spinning. When the ball(and SFM2) is spinning its LCS axis are changing
orientation all the time so the acceleration measured on the X axis sometimes refers to North-South movement, sometimes
East-West and sometimes Up and Down. It all depends what is the actual SFM2 orientation in the external world at that moment in
time. Calculating trajectory using measurements given in LCS are not easy and require a bit of math.
The trajectory calculation would be GREATLY SIMPLIFIED if the measurement would be given in some external(global) coordinate
system that is fixed NOT with the SFM2/Ball BUT with the external world. This can be achieved using the ‘Global Reference’ option by
setting GLOBREF=1.
When GLOBREF=1 is set all the measurements are given in the ENU. It means that all the acceleration on the X axis corresponds to
East-West movement, on the Y axis to North-South movement and on the Z axis to Up-Down movement no matter what the ball
orientation is. Calculating the trajectory using measurements given in ENU is MUCH EASIER because you don’t need to take the ball
spin into account.
When GLOBREF=1 all vector outputs( raw sensor data and SFLA) are represented in the global reference frame and are not
affected if the SFM2 is ‘tared’.
When GLOBREF=0 and the device is ‘tared’ all vector outputs are rotated to match the new orientation. This means that
after taring the SFM2 the Accelerometer output AD should always read approximately x=0, y=0, z=1, until the orientation is
changed.
USB Commands15.0
This protocol is used by the SFM2 to connect to an external computer via a standard COM port. COM port Baud Rate is 1Mbaud.
15.1 Command Format:
The top-level protocol elements are commands, queries, responses, and data. Commands and responses are of the general form:
FOO=37
where "FOO" is the designator for a specific command or response, "=" is a separator between the designator and parameter(s), and
"37" is a parameter.
Designators such as "FOO" in the above example are considered case insensitive. The receiving side MUST accept "FOO", "foo", and
even "FOO" interchangeably, e.g., by using the C standard library strcasecmp() or strncasecmp() functions for case insensitive string
comparison, or by converting the received characters to a specific case before comparison. Where the designators are
programmatically generated, they SHOULD be generated in upper case.
A command such as "FOO=37" will result in a similar response, typically also "FOO=37". However, in a case where the parameter
value is not acceptable, the response may have a different parameter value, which is the actual parameter value that will be used
henceforth. This may be the previous value of the parameter, or a new value that is an approximation of the requested parameter

www.sensormaestros.com
15 | Page
SFM2User Manual V1.0.0
value. For instance, if the previous value of the parameter for FOO was 5, and 37 is not an acceptable value, but 35 is acceptable,
then a "FOO=37" command might yield a response of "FOO=5" or a response of "FOO=35".
Under some circumstances a command may yield multiple responses. For instance, if the parameters to FOO and BAR are related,
such that only certain combinations are permitted, then a command "FOO=37" might yield two consecutive responses "FOO=35" and
"BAR=42".
Under some circumstances responses may be generated spontaneously rather than in response to a command. This might happen if
a parameter change occurs based on an alternate communication channel. For instance, if the USB CDC channel sends a "FOO=37"
command, a "FOO=35" response may be sent both over the USB CDC channel and to the nRF52. This is necessary so that the nRF52
firmware will update the appropriate characteristic values, and send corresponding notifications if enabled.
Queries are similar to commands, but rather than having a "=" followed by parameter(s), they have a "?" and no parameters. The
response to a query is formatted in the same way as a command response.
Data is formatted similarly to reponses, but with a ":" separating the designator from the data.
15.2 Special characters:
\r carriage return, 0x13
\n newline, 0x10
All commands and queries MUST be sent with a terminating carriage return. For a command, the carriage return MAY be followed by
a line feed (which is highly recommended), but the receiving side MUST NOT require the line feed.
Responses and data MUST be sent terminated with a carriage return followed by a line feed. The receiving side MUST NOT require
the line feed. In general, the receiving side of any protocol element should ignore the presence (or absence) of line feed characters.
15.3 Metavariables:
In the descriptions of commands, repsonses, and data, items enclosed in angle brackets, e.g., "<sample_rate-int>" are metavariables.
The angle brackets are only for syntactic specification, and are NOT actually sent or received on the serial link. Within the
metavariable specification, the portion before the hyphen identifies the nature of the data item, and the portion after the hypen
indicates the data type.
15.4 Data types:
boolean:
"0" (false) or "1" (true)
int16:
16-bit integer represented as up to five decimal digits, without leading zeros, and with an optional leading "-" for negative values
int32:
32-bit signed integer
uint32:
32-bit unsigned integer can be preceded by a “-“ to indicate negative values
float:
Floating-point value represented as a mantissa portion with optional leading "-" sign and optional "." radix mark, and optional
exponent part
15.5 System Commands:
NAME=<=Alpha-Numeric String>
CONFIG?
Shows current configuration of the SFM2 and provides a list of available USB commands.
SFRESET!
Reset sensors to 0Hz ODR including Sensor Fusion output
SELFTEST!
Performs automated Self-Test on Accel, Gyro and Mag sensors.
CALIBSTORE!
Performs SFM2 calibration and stores sensor offsets into Non-Volatile memory. To run the calibration enable each sensor with a
>0Hz ODR rate and enable SFOR > 0Hz.
Success => CALIBSTORE=VALID

www.sensormaestros.com
16 | Page
SFM2User Manual V1.0.0
CALIBCLEAR!
Clears previously stored calibration data.
Success => CALIBSTORE=EMPTY
GLOBREF=<enable-boolean>
Enable/Disable Global Reference Frame
BINMODE=<enable-boolean>
1 = COM Sensor output in Binary
0 = COM Sensor in ASCII format(Default)
15.6 Sensor Configuration Commands:
ASR=<sample_rate-int16>
Set accelerometer sample rate in Hz (0 for sampling disabled)
AFR=<full_scale_range-int16>
Set accelerometer full-scale range in g
AFASTSET=<enable-boolean>
Set accelerometer Fast Settling
ALPF2=<enable-boolean>
Enable Accelerometer 2nd stage Low Pass Filter
ADE=<enable-boolean>
Set accelerometer data output enable
GSR=<sample_rate-int16>
Set gyro sample rate in Hz (0 for sampling disabled)
GFR=<full_scale_range-int16>
Set gyro full-scale range in dps
GDE=<enable-boolean>
Set gyro data output enable
MSR=<sample_rate-int16>
Set magnetometer sample rate in Hz (0 for sampling disabled)
MFR=<full_scale_range-int16>
Set magnetometer full-scale range in uT
MDE=<enable-boolean>
Set magnetometer data output enable
15.7 Sensor Fusion Commands:
SFOR=<fusion_rate-int16>
Set sensor fusion output rate in Hz
SFQDE=<enable-boolean>
Set sensor fusion untared quaternion data output enable
SFQTDE=<enable-boolean>
Set sensor fusion tared quaternion data output enable
SFCHTDE=<enable-boolean>
Set sensor fusion compass heading and tilt data output enable
SFLADE=<enable-boolean>
Set sensor fusion linear acceleration data output enable
SFEADE=<enable-boolean>
Set sensor fusion euler angle data output enable
SFTARE!
Tare sensor fusion
SFTARE=<w>,<x>,<y>,<z> (coming soon!!)
Set sensor fusion tare quaternion
15.8 Timestamp Commands:
TIME!
Resets the Timestamp value to 0
TIME=<uint32>
Set the Timestamp value to an integer. Can proceed value with “-“ sign to indicate negative value.

www.sensormaestros.com
17 | Page
SFM2User Manual V1.0.0
TOFFSET!
Resets the Timestamp value to 0
TOFFSET=<int32>
Set the Timestamp value to an integer value where 1 LSB = 25us. Can proceed value with “-“ sign to indicate negative value.
15.9 System Queries:
Config?
Shows current configuration of the SFM2 and provides a list of available USB commands.
NAME?
Provides name of SFM2
CALIBSTORE?
Returns
=VALID (Calibration has been performed and stored into NV Memory)
OR
=EMPTY (Calibration has not been performed)
15.10 Sensor Queries:
ASR?
Get accelerometer sample rate
AFR?
Get accelerometer full-scale range
ADE?
Get accelerometer data output enable
GSR?
Get gyro sample rate
GFR?
Get gyro full-scale range
GDE?
Get gyro data output enable
MSR?
Get magnetometer sample rate
MFR?
Get magnetometer full-scale range
MDE?
Get magnetometer data output enable
SSAT?
Get sensor saturation
15.11 Sensor Fusion Queries
SFOR?
Get sensor fusion output rate in Hz
SFQDE?
Get sensor fusion untared quaternion data output enable
SQTDE?
Get sensor fusion tared quaternion data output enable
SFCHTDE?
Get sensor fusion compass heading and tilt data output enable
SFEADE?
Get sensor fusion euler angle data output enable
SFLADE?
Get sensor fusion linear acceleration data output enable
SFTARE?
Get sensor fusion tare quaternion

www.sensormaestros.com
18 | Page
SFM2User Manual V1.0.0
15.12 Responses:
SRESET=<self_test-bool>
Sensor reset response
ASR=<sample_rate-int>
Accelerometer sample rate in Hz (0 for sampling disabled)
AFR=<full_scale_range-int>
Accelerometer full-scale range in g
ADE=<enable-boolean>
Accelerometer data output enable
GSR=<sample_rate-int>
Gyro sample rate in Hz (0 for sampling disabled)
GFR=<full_scale_range-int>
Gyro full-scale range in dps
GDE=<enable-boolean>
Gyro data output enable
MSR=<sample_rate-int>
Magnetometer sample rate in Hz (0 for sampling disabled)
MFR=<full_scale_range-int>
Magnetometer full-scale range in uT
MDE=<enable-boolean>
Magnetometer data output enable
SSAT=<accel>,<gyro>,<mag>
Sensor saturation
SFOR=<fusion_rate-int>
Sensor fusion output rate in Hz
SFQDE=<enable-boolean>
Sensor fusion untared quaternion data output enable
SFQTDE=<enable-boolean>
Sensor fusion tared quaternion data output enable
SFCHTDE=<enable-boolean>
Sensor fusion compass heading and tilt data output enable
SFEADE=<enable-boolean>
Sensor fusion euler angle data output enable
SFLADE=<enable-boolean>
Sensor fusion linear acceleration data output enable
SFTARE=<w>,<x>,<y>,<z>
Sensor fusion tare quaternion
15.13 Data Stream Format:
AD:<x-int>,<y-int>,<z-int>
Accelerometer data
GD:<x-int>,<y-int>,<z-int>
Gyro data
MD:<x-int>,<y-int>,<z-int>
Magnetometer data
SFQ:<w>,<x>,<y>,<z>
Sensor fusion untared quaternion
SFQT:<w>,<x>,<y>,<z>
Sensor fusion tared quaternion
SFCHT:<hdg>,<tilt>
Sensor fusion compass heading and tilt
SFEA:<roll>,<pitch>,<yaw>
Sensor fusion euler angle data
SFLA:<x>,<y>,<z>
Sensor fusion linear acceleration

www.sensormaestros.com
19 | Page
SFM2User Manual V1.0.0
SFM2 BLE Services and Characteristics16.0
All custom service and characteristic UUIDs are 128-bit UUIDs of the form
71D3xxxx-E8E7-4F91-AA3C-4A68051247BC, with unique 16-bit values replacing the "xxxx" in bytes 2 and 3.
In the descriptions below, only the unique 16 bits of the UUIDs are given, between hyphens, expressed in hexadecimal, for example,
-0102-represents 71D30102-E8E7-4F91-AA3C-4A68051247BC.
Bluetooth specification, which is not explicitly listed below.
https://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.client_characteristic
_configuration.xml
Indications may optionally be supported.
Note: the standard Bluetooth Device Information Service must be implemented to provide the identification strings and
hardware/firmware/software versions.
https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.device_information.xml
16.1 SFM2 BLE Characteristic Map
The SFM2 has a total of 28 characteristics, 24 of them support notifications.
Name
ID
Read
Notify
Write
SFQ
s
t
ream
0x0101
X
SFQT
s
t
ream
0x0102
X
SF
L
A
s
t
ream
0x0103
X
SFEA stream
0x0104
X
SF
CH
T
s
t
ream
0x0105
X
AD stream
0x0106
X
G
D s
t
ream
0x0107
X
MD s
t
ream
0x0108
X
SF
M s
t
ream
0x0109
X
S
ensor
F
usion se
tt
ings
0x0122
X
Reference settings
0x0128
X
X
X
Tare
0x0129
X
T
ime
0x0131
X
Time offset
0x0132
X
X
X
Name
0x0133
X
X
X
S
e
tt
ings s
t
orage
0x0134
X
Calibra
t
ion s
t
orage
0x0135
X
Stats
0x0137
X
X
X
A
ccelerome
t
er se
tt
ings
0x0201
X
X
X
Gyroscope settings
0x0202
X
X
X

www.sensormaestros.com
20 | Page
SFM2User Manual V1.0.0
Magne
t
ome
t
er se
tt
ings
0x0203
X
X
X
SF
K
alman se
tt
ings
0x0204
X
X
X
Calibra
t
ion
0x0206
X
X
Calibra
t
ion se
tt
ings
0x0207
X
X
X
S
el
f
-
t
es
t
0x0208
X
X
X
RH
/T
s
t
ream
0x0301
X
P
ressure s
t
ream
0x0302
X
Env. sensors settings
0x0310
X
X
X
16.2 Streaming characteristics
Streaming characteristics are used to send data from SFM2. The transmission is enabled by enabling BLE notifications
of the Data characteristic (writing its CCCD). These characteristics support notifications, but can’t be directly read.
To maximize throughput each notification packet can contain multiple samples.
IMU related streams (raw sensor data and SF outputs) are timestamped. The timestamp is a uint32 value denoting time
in 25us resolution, 1 LSB = 25us. It can be used to synchronize different streams with each other.
16.2.1 SFQ stream
Untared quaternion data output from Sensor Fusion.
Si
ze
Name
Descr
ip
t
ion
20 bytes
4 bytes
ts
Timestamp, Uint32
4 bytes
w
The real component of unit rotation quaternion, Float32
4 bytes
x
The i vector component of unit rotation quaternion, Float32
4 bytes
y
The j vector component of unit rotation quaternion, Float32
4 bytes
z
The k vector component of unit rotation quaternion, Float32
16.2.2 SFQT stream
Tared quaternion data output from Sensor Fusion.
Si
ze
Name
Descr
ip
t
ion
20 bytes
4 bytes
ts
Timestamp, Uint32
4 bytes
w
The real component of unit rotation quaternion, Float32
4 bytes
x
The i vector component of unit rotation quaternion, Float32
4 bytes
y
The j vector component of unit rotation quaternion, Float32
4 bytes
z
The k vector component of unit rotation quaternion, Float32
Other manuals for SFM2
1
Table of contents
Popular Accessories manuals by other brands

Etymotic
Etymotic BlastPLG EB1 user manual

Sandberg Active
Sandberg Active 10400 quick guide

BAC
BAC FXV Rigging & Assembly Instructions

Oregon Scientific
Oregon Scientific THN132ES user manual

Rapid Response
Rapid Response A1211WH-C operating instructions

Solera
Solera KIT-ERP-ROOM Instructions for use and safety