What Is an IMU?
IMUs, accelerometers, gyroscopes, magnetometers, and sensor fusion.
The PhidgetSpatial Precision 3/3/3 combines the functionality of a 3-axis compass, a 3-axis gyroscope, and a 3-axis accelerometer all in one convenient package. You can use the Spatial channel to use all three sensors with the AHRS or IMU algorithms to get motion data in quaternions for accurate spatial tracking. Or, you can use the data from each of these sensors separately to measure tilt, vibration or rotation of an object.
This PhidgetSpatial also features a temperature stabilization circuit to warm the sensors to a constant 50°C to minimize temperature effects.
When used in USB mode, you'll need a USB cable to connect the MOT0110 to a computer. We have a number of different lengths available, although the maximum length of a USB cable is 5 meters due to limitations in the timing protocol. For longer distances, we recommend you use VINT mode (see the maximum cable length section on the Specifications tab for more information).
Product | Physical Properties | |||
---|---|---|---|---|
Part Number | Price | Connector A | Connector B | Cable Length |
USB-A to Mini-B Cable 28cm 24AWG
|
$3.00 | USB Type A | USB Mini-B | 280 mm |
USB-A to Mini-B Cable 28cm Right Angle
|
$3.50 | USB Type A | USB Mini-B (90 degree) | 280 mm |
USB-A to Mini-B Cable 60cm 24AWG
|
$3.50 | USB Type A | USB Mini-B | 600 mm |
USB-C to Mini-B Cable 60cm 28AWG
|
$5.00 | USB Type C | USB Mini-B | 600 mm |
USB-A to Mini-B Cable 83cm Right Angle
|
$4.50 | USB Type A | USB Mini-B (90 degree) | 830 mm |
USB-A to Mini-B Cable 120cm 24AWG
|
$4.00 | USB Type A | USB Mini-B | 1.2 m |
USB-A to Mini-B Cable 180cm 24AWG
|
$4.00 | USB Type A | USB Mini-B | 1.8 m |
USB-C to Mini-B Cable 180cm 28AWG
|
$6.00 | USB Type C | USB Mini-B | 1.8 m |
USB-A to Mini-B Cable 450cm 20AWG
|
$12.00 | USB Type A | USB Mini-B | 4.5 m |
When used in VINT mode, you'll need a Phidget cable to connect the MOT0110 to a VINT Hub. You can solder multiple cables together in order to make even longer Phidget cables, but you should be aware of the effects of having long wires in your system. See the maximum cable length section on the Specifications tab for more informaton.
Product | Physical Properties | |
---|---|---|
Part Number | Price | Cable Length |
Phidget Cable 10cm
|
$1.50 | 100 mm |
Phidget Cable 30cm
|
$1.75 | 300 mm |
Phidget Cable 60cm
|
$2.00 | 600 mm |
Phidget Cable 60cm
|
$2.00 | 600 mm |
Phidget Cable 90cm
|
$2.00 | 900 mm |
Phidget Cable 120cm
|
$2.25 | 1.2 m |
Phidget Cable 150cm
|
$2.50 | 1.5 m |
Phidget Cable 180cm
|
$2.75 | 1.8 m |
Phidget Cable 350cm
|
$3.00 | 3.5 m |
Phidget Cable Kit
|
$10.00 | 80 mm |
To use the MOT0110 in VINT mode, you'll need a VINT Hub. For more information about VINT, have a look at the VINT Overview page. You can use a Phidget Cable to simply and easily connect the two devices. Here's a list of all of the different VINT Hubs currently available:
Product | Board Properties | |||
---|---|---|---|---|
Part Number | Price | Number of VINT Ports | VINT Communication Speed Max | Controlled By |
VINT Hub Phidget
|
$40.00 | 6 | 1 Mbit/s | USB (Mini-USB) |
1-Port VINT Hub Phidget
|
$24.00 | 1 | 1 Mbit/s | USB (USB-A) |
VINT Hub Phidget
|
$35.00 | 6 | 1 Mbit/s | USB (Mini-USB) |
VINT Hub Phidget
|
$30.00 | 6 | 100 kbit/s | USB (Mini-USB) |
Wireless VINT Hub
|
$60.00 | 6 | 100 kbit/s | Local Network (Ethernet or Wi-Fi) |
PhidgetSBC4
|
$120.00 | 6 | 100 kbit/s | — |
The MOT0110 combines an accelerometer (±16g), gyroscope (± 2000°/s), and magnetometer (± 8 G). Each sensor measures in the x, y, and z-axis. You can use the Spatial object to obtain data from all three sensors, synchronized to the same timestamp and combined to provide pitch/roll/yaw or quaternion rotation.
You can use your Control Panel to explore your Phidget's channels.
1. Open your Control Panel, and you will find the following channels:
2. Double click on a channel to open an example program. Each channel belongs to a different channel class:
In your Control Panel, double click on "3-Axis Accelerometer":
For a more comprehensive look at how to use this example, take a look at the Accelerometer Guide
In your Control Panel, double click on "3-Axis Gyroscope":
For a more comprehensive look at how to use this example, take a look at the Gyroscope Guide
In your Control Panel, double click on "3-Axis Magnetometer":
For a more comprehensive look at how to use this example, take a look at the Magnetometer Guide
In your Control Panel, double click on "Spatial":
For a more comprehensive look at how to use this example, take a look at the Spatial Guide
A temperature sensing chip and self-heating element is present on the MOT0110 so the Phidget22 libraries can keep the inside of the enclosure at 50°C for optimal performance. This feature is disabled by default, and can be enabled through the Spatial, Magnetometer, Accelerometer, or Gyroscope API.
This temperature data is also available so you can tell when the board has reached the target temperature.
In your Control Panel, double click on "Temperature Sensor":
Before you open a Phidget channel in your program, you can set these properties to specify which channel to open. You can find this information through the Control Panel.
1. Open the Control Panel and double-click on the red map pin icon:
2. The Addressing Information window will open. Here you will find all the information you need to address your Phidget in your program.
See the Phidget22 API for your language to determine exact syntax for each property.
Note: Graphing and logging is currently only supported in the Windows version of the Phidget Control Panel.
In the Phidget Control Panel, open the channel for your device and click on the icon next to the data type that you want to plot. This will open up a new window:
If you need more complex functionality such as logging multiple sensors to the same sheet or performing calculations on the data, you'll need to write your own program. Generally this will involve addressing the correct channel, opening it, and then creating an Event Handler and adding graphing/logging code to it.
The quickest way to get started is to download some sample code for your desired programming language and then search google for logging or plotting in that language (e.g. "how to log to csv in python") and add the code to the existing change handler.
You can perform filtering on the raw data in order to reduce noise in your graph. For more information, see the Control Panel Graphing page.
You can perform a transform on the incoming data to get different graph types that may provide insights into your sensor data. For more information on how to use these graph types, see the Control Panel Graphing page.
Firmware Upgrade
MacOS users can upgrade device firmware by double-clicking the device row in the Phidget Control Panel.
Linux users can upgrade via the phidget22admin tool (see included readme for instructions).
Windows users can upgrade the firmware for this device using the Phidget Control Panel as shown below.
Firmware Downgrade
Firmware upgrades include important bug fixes and performance improvements, but there are some situations where you may want to revert to an old version of the firmware (for instance, when an application you're using is compiled using an older version of phidget22 that doesn't recognize the new firmware).
MacOS and Linux users can downgrade using the phidget22admin tool in the terminal (see included readme for instructions).
Windows users can downgrade directly from the Phidget Control Panel if they have driver version 1.9.20220112 or newer:
Firmware Version Numbering Schema
Phidgets device firmware is represented by a 3-digit number. For firmware patch notes, see the device history section on the Specifications tab on your device's product page.
For details on how to interpret Euler angles and Quaternions, and how to select the right AHRS parameters for your device, see the Spatial Primer.
This device supports faster VINT communication speeds when plugged into a HUB that has the icon printed on the enclosure.
Effects of changing VINT Speed:
For more details on these tradeoffs, see the Specifications tab on the product page.
In order to change the speed, close all of the channels and ensure it's plugged into a high-speed port. Right click on your device (not the Hub port or the channel):
Once set, the selected VINT speed will persist until the device is unplugged or a new speed is set. You can also set the VINT speed in your program using the HubPortSpeed
property. See the Phidget22 API for details.
The Change Trigger is the minimum change in the sensor data needed to trigger a new data event.
The Data Interval is the time (in ms) between data events sent out from your Phidget.
The Data Rate is the reciprocal of Data Interval (measured in Hz), and setting it will set the reciprocal value for Data Interval and vice-versa.
You can modify one or both of these values to achieve different data outputs. You can learn more about these properties here.
This Phidget comes equipped with a temperature sensor and a heating element so the Phidget22 libraries can keep the inside of the enclosure at 50°C for optimal sensor performance. This feature is disabled by default and can be activated using the HeatingEnabled property through the Accelerometer, Gyroscope, Magnetometer, or Spatial API.
Be sure when using the temperature stabilization feature to insulate the sensor from its environment, for example by protecting it from outside air currents.
Phidget Spatials are excellent at detecting and measuring motion. Mounting your Phidget Spatial correctly will ensure you get the most accurate results possible.
We recommend mounting the board in its enclosure, directly to your system using M2 bolts. Follow these steps:
Ensure the bolts are tight enough to prevent the Phidget Spatial from moving, but not so tight that they strain the board. Any strain on the board can introduce unwanted measurement errors.
We recommend using a thread locker on your bolts to prevent them from slowly moving over time. This is especially important in systems that are exposed to vibrations.
You can zero the gyroscope of this device by opening the gyroscope example and clicking on the "Zero Gyro" button. When you write your own program, you can also use a function call to zero the gyro during the program's operation. For details on how to do this in your language, see the Phidget22 API.
For details on how zeroing the gyro works, and when to do it, see the Gyroscope Primer.
If your device has a icon printed on the enclosure, it means that it has an improved filter on its VINT connection that upgrades performance when plugged into a port on a VINT Hub that also has the icon:
For details on how the maximum cable length is impacted, see the specifications tab on the product page for this device.
Accelerometer | |
---|---|
Acceleration Measurement Max | ± 16 g |
Acceleration Measurement Resolution | 30 μg |
Acceleration Bandwidth | 250 Hz |
Accelerometer Noise (@ 1ms) | ± 3 mg |
Accelerometer Noise (@ 10ms) | ± 1.5 mg |
Accelerometer Noise (@ 100ms) | ± 200 μg |
Accelerometer Drift Max | 2 mg |
Accelerometer Bias (+15 to +30°C) | 5 mg |
Accelerometer Bias (Stabilized at 50°C) | 1 mg |
Gyroscope | |
Gyroscope Angular Rate Max | ± 2000°/s |
Gyroscope Resolution | 0.004°/s |
Gyroscope Noise (@ 1ms) | ± 0.2°/s |
Gyroscope Noise (@ 10ms) | ± 0.05°/s |
Gyroscope Noise (@ 100ms) | ± 0.015°/s |
Gyroscope Drift Max | 0.1°/s |
Gyroscope Bias (+15 to +30°C) | 0.5°/s |
Gyroscope Bias (Stabilized at 50°C) | 0.05°/s |
Magnetometer | |
Magnetic Field Max | ± 8 G |
Magnetometer Resolution | 1.5 mG |
Magnetometer Noise (@ 10ms) | ± 10 mG |
Magnetometer Noise (@ 50ms) | ± 5 mG |
Magnetometer Noise (@ 100ms) | ± 2.5 mG |
Board Properties | |
Controlled By | VINT or USB |
USB Stack | PHIDUSB |
API Object Name | Accelerometer, Gyroscope, Magnetometer, Spatial, TemperatureSensor |
VINT Communication Speed Max | 1 Mbit/s |
Current Consumption Max | 60 mA |
Current Consumption Max (Heating Enabled) | 450 mA |
Sampling Speed Min | 1 s/sample |
Sampling Speed Max | * 1 ms/sample |
USB Voltage Min | 4.1 V DC |
USB Voltage Max | 5.3 V DC |
USB Speed | Full Speed |
Operating Temperature Min | -40 °C |
Operating Temperature Max | 85 °C |
Customs Information | |
Canadian HS Export Code | 8471.80.00 |
American HTS Import Code | 8471.80.40.00 |
Country of Origin | CN (China) |
* - Minimum data interval depends on connection mode (VINT/USB) and on VINT mode, varies depending on how many of the device's channels are open simultaneously. See the Minimum Data Interval section below for details.
In order to determine the minimum data interval for a channel:
VINT Speed | Accelerometer | Gyroscope | Magnetometer | Spatial | Temperature Sensor |
---|---|---|---|---|---|
100 kbps | 3 | 3 | 3 | 8 | 2 |
160 kbps | 2 | 2 | 2 | 6 | 1 |
250 kbps | 1 | 1 | 1 | 4 | 1 |
500 kbps | 1 | 1 | 1 | 3 | 1 |
1000 kbps | 1 | 1 | 1 | 2 | 1 |
True Min. | 1 | 1 | 10 | 1 | 10 |
For example, if you have the accelerometer, magnetometer and temperature sensor open on VINT mode, running at 160kbps, that works out to 2 + 2 + 1, plus another 2 because three channels are open. The result is 7ms, so the minimum data interval for the accelerometer is 7ms in this scenario. It would be the minimum for the magnetometer and temperature sensor too, but their true minimum is both 10ms, so they will still have a minimum of 10ms.
Date | Board Revision | Device Version | Comment |
---|---|---|---|
August 2022 | 0 | 100 | Product Release |
May 2023 | 0 | 104 | Added support for auto-setSpeed, improvements to VINT stability and ESD immunity |
January 2024 | 0 | 110 | Fixed an issue where AHRS parameters would not update, fixed bug while setting dataInterval |
Channel Name | API | Channel | Interface |
---|---|---|---|
PhidgetSpatial Precision 3/3/3 | |||
3-Axis Accelerometer | Accelerometer | 0 | USB |
3-Axis Gyroscope | Gyroscope | 0 | USB |
3-Axis Magnetometer | Magnetometer | 0 | USB |
Spatial | Spatial | 0 | USB |
Temperature Sensor | TemperatureSensor | 0 | USB |
PhidgetSpatial Precision 3/3/3 | |||
3-Axis Accelerometer | Accelerometer | 0 | VINT |
3-Axis Gyroscope | Gyroscope | 0 | VINT |
3-Axis Magnetometer | Magnetometer | 0 | VINT |
Spatial | Spatial | 0 | VINT |
Temperature Sensor | TemperatureSensor | 0 | VINT |
API | Detail | Language | OS | |
---|---|---|---|---|
Accelerometer | Visual Studio GUI | C# | Windows | Download |
Accelerometer | JavaScript | Browser | Download | |
Accelerometer | Objective-C | macOS | Download | |
Accelerometer | Swift | macOS | Download | |
Accelerometer | Swift | iOS | Download | |
Accelerometer | Visual Basic .NET | Windows | Download | |
Accelerometer | Max/MSP | Multiple | Download | |
Gyroscope | Visual Studio GUI | C# | Windows | Download |
Gyroscope | JavaScript | Browser | Download | |
Gyroscope | Objective-C | macOS | Download | |
Gyroscope | Swift | macOS | Download | |
Gyroscope | Swift | iOS | Download | |
Gyroscope | Visual Basic .NET | Windows | Download | |
Gyroscope | Max/MSP | Multiple | Download | |
Magnetometer | Visual Studio GUI | C# | Windows | Download |
Magnetometer | JavaScript | Browser | Download | |
Magnetometer | Objective-C | macOS | Download | |
Magnetometer | Swift | macOS | Download | |
Magnetometer | Swift | iOS | Download | |
Magnetometer | Visual Basic .NET | Windows | Download | |
Magnetometer | Max/MSP | Multiple | Download | |
Spatial | Compass Calibrator | C | Multiple | Download |
Spatial | Visual Studio GUI | C# | Windows | Download |
Spatial | Compass Calibrator | C# | Windows | Download |
Spatial | Spatial AHRS/IMU | C# | Windows | Download |
Spatial | JavaScript | Browser | Download | |
Spatial | Objective-C | macOS | Download | |
Spatial | Swift | macOS | Download | |
Spatial | Swift | iOS | Download | |
Spatial | Visual Basic .NET | Windows | Download | |
Spatial | Max/MSP | Multiple | Download | |
TemperatureSensor | Visual Studio GUI | C# | Windows | Download |
TemperatureSensor | JavaScript | Browser | Download | |
TemperatureSensor | Objective-C | macOS | Download | |
TemperatureSensor | Swift | macOS | Download | |
TemperatureSensor | Swift | iOS | Download | |
TemperatureSensor | Visual Basic .NET | Windows | Download | |
TemperatureSensor | Max/MSP | Multiple | Download |
Product | Accelerometer | Gyroscope | Magnetometer | ||||
---|---|---|---|---|---|---|---|
Part Number | Price | Acceleration Measurement Max | Acceleration Measurement Resolution | Gyroscope Speed Max | Gyroscope Resolution | Magnetometer Resolution | Magnetic Field Max |
PhidgetSpatial Precision 3/3/3
|
$100.00 | ± 16 g | 30 μg | — | 0.004°/s | 1.5 mG | ± 8 G |
PhidgetAccelerometer
|
$40.00 | ± 8 g | 250 μg | — | — | — | — |
Spatial Phidget
|
$30.00 | ± 8 g | 250 μg | — | 0.07°/s | 1.5 mG | ± 8 G |
Accelerometer Phidget
|
$20.00 | ± 8 g | 1 mg | — | — | — | — |
PhidgetSpatial Precision 0/0/3 High Resolution
|
$80.00 | ± 2 g | 76.3 μg | — | — | — | — |
Spatial Phidget
|
$30.00 | ± 8 g | 200 μg | ± 2250°/s | 1E-05°/s | 200 μG | ± 8 G |