Products for USB Sensing and Control Canada flag
Products for USB Sensing and Control

sales inquiries

quotes, distributor information, purchase orders
sales@phidgets.com

technical inquiries

support, advice, warranty, returns, misshipment
support@phidgets.com

website inquiries

corrections or suggestions
web@phidgets.com

Address

Unit 1 - 6115 4 St SE
Calgary AB  T2H 2H9
Canada

PhidgetSpatial Precision 3/3/3

ID: MOT0109_0

This spatial board has a 3-axis accelerometer, gyroscope and compass with high resolution readings at low magnitudes.

Replaced by MOT0110_0

Replaced by the MOT0110_0 - PhidgetSpatial Precision 3/3/3. It has the same form factor but has a number of additional features and better specifications.

Warning
Due to parts and components going obsolete and becoming unavailable, the MOT0109_0 uses a different processor than the 1044_1B that is not supported under Phidget21. If you're using our old libraries you must upgrade to Phidget22 before you can make use of this Phidget.

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. It has enhanced precision in the accelerometer when measuring less than ±2.5g, and enhanced gyroscope precision in the X and Y axes at speeds less than 125°/s. The transition from high precision to low precision mode and back is completely seamless and automatic. You can use the data from each of these sensors separately to measure tilt, vibration or rotation of an object. Or, you can enable the AHRS or IMU algorithms to get motion data in quaternions for more accurate spatial tracking.

This PhidgetSpatial also features a temperature stabilization circuit to warm the sensors to a constant 45°C for optimal performace.

Features:

  • 3-axis accelerometer (±8g) (High precision below ±2g)
  • 3-axis gyroscope (±2000°/s) (High precision below ±100°/s)
  • 3-axis magnetometer (±8G)
  • Accurate timestamp for plotting or advanced calculations
  • Built-in support for AHRS and IMU algorithms
  • Built-in heater for temperture stabilization up to 45°C

Guides

USB Cables

Use a USB cable to connect this Phidget to your 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 that you use a Single Board Computer to control the Phidget remotely.

Product Physical Properties
Part Number Price Connector A Connector B Cable Length
3017_1
USB-A to Mini-B Cable 28cm 24AWG
$3.00 USB Type A USB Mini-B 280 mm
CBL4011_0
USB-A to Mini-B Cable 28cm Right Angle
$3.50 USB Type A USB Mini-B (90 degree) 280 mm
3036_0
USB-A to Mini-B Cable 60cm 24AWG
$3.50 USB Type A USB Mini-B 600 mm
CBL4020_0
USB-C to Mini-B Cable 60cm 28AWG
$5.00 USB Type C USB Mini-B 600 mm
CBL4012_0
USB-A to Mini-B Cable 83cm Right Angle
$4.50 USB Type A USB Mini-B (90 degree) 830 mm
3037_0
USB-A to Mini-B Cable 120cm 24AWG
$4.00 USB Type A USB Mini-B 1.2 m
3018_0
USB-A to Mini-B Cable 180cm 24AWG
$4.00 USB Type A USB Mini-B 1.8 m
CBL4021_0
USB-C to Mini-B Cable 180cm 28AWG
$6.00 USB Type C USB Mini-B 1.8 m
3020_0
USB-A to Mini-B Cable 450cm 20AWG
$12.00 USB Type A USB Mini-B 4.5 m


Part 1: Setup

PhidgetSpatial Precision 3/3/3 - Select OS

PhidgetSpatial Precision 3/3/3

Welcome to the MOT0109 user guide! In order to get started, make sure you have the following:

  • a MOT0109 Phidget Spatial
  • a USB cable OR a VINT Hub and Phidget cable
  • a computer or laptop

Select your Operating System:

«
»

PhidgetSpatial Precision 3/3/3 - Windows

Step 1: Install Phidgets Library

Step 2: Connect Devices

Step 3: Verify Connection

Step 1: Install Phidgets Library

Before you begin using your Phidgets, you will need to install the Phidget Library.

1. Download the installer for your system:

● 32-bit Installer Download

● 64-bit Installer Download

If you're unsure which one you should get, press ⊞ WIN + Pause/Break:

Before installing our libraries, be sure to read our Software License.

Step 1: Install Phidgets Library

2. Open the download. If it asks you for permission, select Run

Step 1: Install Phidgets Library

3a. Select Next

Step 1: Install Phidgets Library

3b. Read the Licence Agreement. Select Next.

Step 1: Install Phidgets Library

3c. Choose Installation Location. Select Next.

Step 1: Install Phidgets Library

3d. Confirm Install

Step 1: Install Phidgets Library

3e. Wait for Installation to complete. This should only take a few moments.

Step 1: Install Phidgets Library

3f. Installation Complete. Close installation Window.

Step 2: Connect Devices

● Connect USB Cable to your computer and PhidgetSpatial

Step 3: Verify Connection

1. Open the Phidgets Control Panel:

If your Control Panel does not open, look in your taskbar. Double click the Phidget Icon.

Step 3: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.


For more help installing in Windows (e.g. manual install, using a VM, etc.), visit this page:

Windows Advanced Information

«
»

PhidgetSpatial Precision 3/3/3 - MacOS

Step 1: Install Phidgets Library

Step 2: Connect Devices

Step 3: Verify Connection

Step 1: Install Phidgets Library

Before you begin using your Phidgets, you will need to install the Phidget Library.

1. Download the installer for your system:

● OS X 10.11+: Installer Download

● Mac OS X 10.7 - OS X 10.10: Installer Download

● Mac OS X 10.5 - OS X 10.6: Installer Download


Before installing our libraries, be sure to read our Software License.

Step 1: Install Phidgets Library

2. Open the download and double click on Phidgets.pkg

Step 1: Install Phidgets Library

3a. Select Continue

Step 1: Install Phidgets Library

3b. Read and continue. Read the License and click Agree.

Step 1: Install Phidgets Library

3c. Here, you have the option to select the installation location. Select Install to continue.

Step 1: Install Phidgets Library

3d. MacOS may ask for permission to install. Enter your username and password and Install Software.

Step 1: Install Phidgets Library

3e. Wait for Installation to complete. This should only take a few moments.

Step 1: Install Phidgets Library

3f. You may see a message that the extension has been blocked. Select Open Security Preferences.

Step 1: Install Phidgets Library

3g. Beside the message for Phidgets Inc, Click Allow.

Step 1: Install Phidgets Library

3h. Installation Complete, Click Close.

Step 1: Install Phidgets Library

3i. To delete the installer, click Move to Trash.

Step 2: Connect Devices

● Connect USB Cable to your computer and PhidgetSpatial

Step 3: Verify Connection

1. Open the Phidgets Control Panel:

Step 3: Verify Connection

2. If connected, your Phidgets will appear in the Phidget Control Panel.

Done!

If you're able to see and interact with your devices in the Phidget Control Panel, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.


For more info installing in MacOS (e.g. developer tools, driver extension, etc.), visit this page:

MacOS Advanced Information

«
»

PhidgetSpatial Precision 3/3/3 - Linux

Step 1: Install Phidgets Library

Step 2: Connect Devices

Step 3: Verify Connection

Step 1: Install Phidgets Library

1. First, you need to install the libusb-1.0 development libraries. For example, in Debian based distributions:

apt-get install libusb-1.0-0-dev


You’ll also need a C compiler and builder, if you don’t already have one installed.

apt-get install gcc
apt-get install make

Step 1: Install Phidgets Library

2. Next, download and unpack the Phidgets library:

libphidget22

Step 1: Install Phidgets Library

3. Use the following commands in the location you unpacked to install the library:

./configure
make
sudo make install

Step 1: Install Phidgets Library

4. (Optional) You can also download and unpack the following optional packages:

phidget22networkserver - Phidget Network Server, which enables the use of Phidgets over your network

phidget22admin - Admin tool to track who is connected to your Phidgets when using the network server

libphidget22extra - Required for phidget22networkserver and phidget22admin

libphidget22java - The Java libraries for Phidget22


For installation instructions for these packages, see the README file included with each one.

Step 2: Connect Devices

● Connect USB Cable to your computer and PhidgetInterfaceKit

● Connect any sensors or LEDs you want to use

Step 3: Verify Connection

1. The easiest way to verify that your libraries are working properly is to compile and run an example program. Download and unpack this C example that will detect any Phidget:

HelloWorld C Example

Step 3: Verify Connection

2. Next, open the terminal in the location where you unpacked the example. Compile and run using:

gcc HelloWorld.c -o HelloWorld -lphidget22
sudo ./HelloWorld

ou should receive a “Hello” line for each Phidget channel that is discovered:

I don’t see any Phidgets show up in the HelloWorld example

You need to run it with sudo in order to be able to access USB devices. In order to use Phidgets without sudo, you need to set your udev rules. See the Advanced Information page on the final slide of this guide for details.

Done!

If you're able to see your devices in the Hello World example, you're done with the Setup part of this guide.

Scroll down to Part 2: Using Your Phidget for the next step.


For more info installing in Linux (e.g. Udev rules, old versions, etc.), visit this page:

Linux Advanced Information

«
»

Part 2: Using Your Phidget

About

The MOT0109 combines an accelerometer (±8g), gyroscope (± 2000°/s), and magnetometer (± 8 G). Each sensor measures in the x, y, and z-axis. You can also use the Spatial object to obtain data from all three sensors, synchronized to the same timestamp.

MOT0109-About.jpg

Explore Your Phidget Channels Using The Control Panel

You can use your Control Panel to explore your Phidget's channels.

1. Open your Control Panel, and you will find the following channels:

MOT0109 Panel.jpg

2. Double click on a channel to open an example program. Each channel belongs to a different channel class:

Expand All
Accelerometer: Reports the acceleration of the MOT0109 in the X, Y and Z axis

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

MOT0109-Accelerometer.jpg
Gyroscope: Reports the angular velocity of the MOT0109 along the X, Y, and Z plane

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

MOT0109-Gyroscope.jpg
Magnetometer: Reports the magnetic field strength in the X, Y, and Z-axis

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

MOT0109-Magnetometer.jpg
Spatial: Reports synchronized data from all three objects at once (Accelerometer, Gyroscope, and Magnetometer)

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

MOT0109-Spatial.jpg
Temperature Sensor: Measures the temperature inside the enclosure

A temperature sensing chip and self-heating element is present on the MOT0109 so the Phidget22 libraries can keep the inside of the enclosure at 45°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":

MOT0109-Temp.jpg


Part 3: Create your Program

1. Setting up your Programming Environment

2. Phidget Programming Basics

Part 4: Advanced Topics and Troubleshooting

Expand All
How do I know what channel, serial number, or hub port to use in my program?

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:

The locate Phidget button is found in the device information box

2. The Addressing Information window will open. Here you will find all the information you need to address your Phidget in your program.

All the information you need to address your Phidget


See the Phidget22 API for your language to determine exact syntax for each property.

How can I plot or record sensor data?

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 Plot.jpg icon next to the data type that you want to plot. This will open up a new window:

Plot2.jpg

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.

Filtering

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.

Graph Type

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.

Upgrading or Downgrading Device Firmware

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.

ControlpanelFWup.jpg

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:

ControlpanelFWdown.jpg

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.

FWversion.jpg

  • If the digit in the 'ones' spot changes, it means there have been bug fixes or optimizations. Sometimes these changes can drastically improve the performance of the device, so you should still upgrade whenever possible. These upgrades are backwards compatible, meaning you can still use this Phidget on a computer that has Phidget22 drivers from before this firmware upgrade was released.
  • If the digit in the 'tens' spot changes, it means some features were added (e.g. new API commands or events). These upgrades are also backwards compatible, in the sense that computers running old Phidget22 drivers will still be able to use the device, but they will not be able to use any of the new features this version added.
  • If the digit in the 'hundreds' spot changes, it means a major change has occurred (e.g. a complete rewrite of the firmware or moving to a new architecture). These changes are not backwards compatible, so if you try to use the upgraded board on a computer with old Phidget22 drivers, it will show up as unsupported in the Control Panel and any applications build using the old libraries won't recognize it either. Sometimes, when a Phidget has a new hardware revision (e.g. 1018_2 -> 1018_3), the firmware version's hundreds digit will change because entirely new firmware was needed (usually because a change in the processor). In this case, older hardware revisions won't be able to be upgraded to the higher version number and instead continue to get bug fixes within the same major revision.
AHRS Data and Parameters

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.

Setting the Change Trigger and Data Interval

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.

Calibrating the Magnetometer

Magnetometer Calibration

Magnetometer Calibration Guide

In order for your magnetometer to provide accurate heading information, it must be calibrated.

Follow this guide to complete the calibration process.

1. Open the Magnetometer example for your device, and click the Calibrate button. This will open the Compass Calibration tool.

2. If your device supports heating, we recommend checking the HeatingEnabled checkbox. Wait for the temperature reading to turn green:

If your Spatial does not support heating (neither of the above controls will be available), you can skip this step.

3. Next, decide if you're using 2-axis or 3-axis calibration:

● If the spatial is free to move in all directions, use 3-axis

● If the spatial is being kept mostly level (e.g. in a car), use 2-axis

4. You can leave the Local Field Strength at 1.0 for general use since magnitude doesn't affect heading. If you need more quantitative results, look up your local value.

5. Make sure your Phidget Spatial is firmly in the position you intend to calibrate it for, and begin by clicking the Start button.

Begin rotating the structure your Phidget is mounted to. Notice the red dots appearing on the graph.

6. Try to rotate it so that it fills out as much of the sphere (or circle in 2-axis mode) as possible. When you're finished, click Stop.

You should now see red and green spheres (or circles) in the graph. The red one is the raw measurements, and the green one is the calibrated measurements.

Newly calibrated data from the magnetometer will be indicated by a green line that matches the sphere. The green sphere should be more centered than the red one. If not, try repeating the calibration.

You're now done the calibration process! On most Phidget Spatials, the calibration will be stored in flash, so it stays calibrated to this environment even across power cycles.

7. If you need to repeat this exact calibration, you can save the values listed in the text box.

You can use these values in the setMagnetometerCorrectionParameters method. See our API Documentation for more details.

«
»
Temperature Control (Self-Heating)

This Phidget comes equipped with a temperature sensor and a heating element so the Phidget22 libraries can keep the inside of the enclosure at 45°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.

Mounting Considerations

Phidget Spatials are excellent at detecting and measuring motion. Mounting your Phidget Spatial correctly will ensure you get the most accurate results possible.

SpatialMounting.jpg

We recommend mounting the board in its enclosure, directly to your system using M2 bolts. Follow these steps:

  1. Remove the top half of the enclosure.
  2. Locate the four mounting holes.
  3. Bolt the Phidget Spatial to your system.
  4. Reattach the top half of the enclosure.


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.

Spatial mounting strain.png
The illustration above shows exaggerated flexing of the device from overtightened bolts. Overtightening is imperceivable to the eye, but can cause significant 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.

Zeroing the Gyroscope

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.

Product Specifications

Accelerometer
Acceleration Measurement Max ± 2.5 g
Acceleration Measurement Resolution 10 μg
Acceleration Bandwidth 60 Hz
Accelerometer Noise * 500 μg
Accelerometer Typical Offset 1 mg
Backup Accelerometer
Acceleration Measurement Max ± 8 g
Acceleration Measurement Resolution 10 μg
Accelerometer Typical Offset 10 mg
Accelerometer Noise 4 mg
Gyroscope
Gyroscope Speed Max (X-Axis, Y-Axis) ± 125°/s
Gyroscope Resolution (X-Axis, Y-Axis) 1E-05°/s
Gyroscope Typical Offset 0.5°/s
Gyroscope Noise 0.3°/s
Backup Gyroscope
Gyroscope Speed Max ± 2300°/s
Gyroscope Resolution 1E-05°/s
Gyroscope Typical Offset 1°/s
Gyroscope Noise 0.2°/s
Magnetometer
Magnetic Field Max ± 49.2 G
Magnetometer Resolution 1.5 mG
Magnetometer Noise 10 mG
Board Properties
Controlled By USB (Mini-USB)
API Object Name Accelerometer, Gyroscope, Magnetometer, Spatial
Current Consumption Max ** 350 mA
Sampling Speed Min 1 s/sample
Sampling Speed Max 4 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)

* - At minimum data interval. Noise will decrease with longer intervals.

** - Maximum current consumption is 350mA when using self-heating mode, but only 21mA when self-heating is disabled.

Cable Length Calculator

Documents

Product History

Date Board Revision Device Version Comment
July 2021 0 112 Product Release
November 2021 0 113 Fixed bug that caused spatial not to show up in control panel
November 2021 0 115 Fixed bug that caused saved compass calibration to be lost between power cycles
January 2022 0 117 Minor firmware optimizations

Software Objects

Channel NameAPIChannel
3-Axis Accelerometer Accelerometer 0
3-Axis Gyroscope Gyroscope 0
3-Axis Magnetometer Magnetometer 0
Spatial Spatial 0
Temperature Sensor TemperatureSensor 0

API


Back Forward
Print this API

Code Samples



Example Options


Downloads

				Make your selections to display sample code.
					

Code Samples

Language:

APIDetailLanguageOS
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

Have a look at our spatial boards:

Product Accelerometer Gyroscope Magnetometer
Part Number Price Acceleration Measurement Max Acceleration Measurement Resolution Gyroscope Speed Max Gyroscope Resolution Magnetometer Resolution Magnetic Field Max
MOT0110_0
PhidgetSpatial Precision 3/3/3
$100.00 ± 16 g 30 μg 0.004°/s 1.5 mG ± 8 G
MOT0100_0
PhidgetAccelerometer
$40.00 ± 8 g 250 μg
MOT1102_1
Spatial Phidget
$30.00 ± 8 g 250 μg 0.07°/s 1.5 mG ± 8 G
MOT1100_0
Accelerometer Phidget
$20.00 ± 8 g 1 mg
1042_0B
PhidgetSpatial 3/3/3 Basic
$60.00 ± 8 g 976.7 μg ± 2000°/s 0.07°/s 3 mG 5.5 G
1043_1B
PhidgetSpatial Precision 0/0/3 High Resolution
$80.00 ± 2 g 76.3 μg
MOT1102_0
Spatial Phidget
$30.00 ± 8 g 200 μg ± 2250°/s 1E-05°/s 200 μG ± 8 G