Products for USB Sensing and Control
Products for USB Sensing and Control


Unit 1 - 6115 4 St SE
Calgary AB  T2H 2H9
+1 403 282-7335

PhidgetSpatial 3/3/3 Basic

ID: 1042_0B
Mature: This product (or a similar replacement with a compatible form, fit and function) will be produced as long as the parts and components required to make it are available. It is estimated to be available for five years or more.

This spatial board has a 3-axis accelerometer, gyroscope and compass and connects to your computer via USB.


Quantity Available: 1000+

Qty Price
5 $57.00
10 $54.00
25 $48.00
50 $42.00
100 $39.00
250 $36.00
500 $33.00
1000 $30.00

Note: The 1042_0B is identical to the 1042_0, except that it comes pre-assembled in a plastic shell enclosure and you have the option of which length of USB cable you want to include.

The PhidgetSpatial 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 is an inexpensive alternative to the 1044 - PhidgetSpatial Precision 3/3/3, and is ideal for applications where it's more important to know the general motion of an object rather than the precise amounts.

The 1042 could be used to:

  • Track whether an object is moving, and in which direction
  • Detect the presence of nearby movement or vibration
  • Track the orientation of a stationary object relative to the earth's gravitational pull and the direction relative to magnetic north

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
Image Part Number Price Connector A Connector B Cable Length
3017_1 $3.00 USB Type A USB Mini-B 280 mm
3018_0 $4.00 USB Type A USB Mini-B 1.8 m
3020_0 $12.00 USB Type A USB Mini-B 4.5 m
3036_0 $3.50 USB Type A USB Mini-B 600 mm
3037_0 $4.00 USB Type A USB Mini-B 1.2 m

Getting Started

Welcome to the 1042 user guide! In order to get started, make sure you have the following hardware on hand:

Next, you will need to connect the pieces:

1056 0 Connecting The Hardware.jpg
  1. Connect your device to your computer using the USB cable.

Now that you have everything together, let's start using the 1042!

Using the 1042

Phidget Control Panel

In order to demonstrate the functionality of the 1042, the Phidget Control Panel running on a Windows machine will be used.

The Phidget Control Panel is available for use on both macOS and Windows machines.


To open the Phidget Control Panel on Windows, find the Ph.jpg icon in the taskbar. If it is not there, open up the start menu and search for Phidget Control Panel

Windows PhidgetTaskbar.PNG


To open the Phidget Control Panel on macOS, open Finder and navigate to the Phidget Control Panel in the Applications list. Double click on the Ph.jpg icon to bring up the Phidget Control Panel.

For more information, take a look at the getting started guide for your operating system:

Linux users can follow the getting started with Linux guide and continue reading here for more information about the 1042.

First Look

After plugging the 1042 into your computer and opening the Phidget Control Panel, you will see something like this:

1042 Panel.jpg

The Phidget Control Panel will list all connected Phidgets and associated objects, as well as the following information:

  • Serial number: allows you to differentiate between similar Phidgets.
  • Channel: allows you to differentiate between similar objects on a Phidget.
  • Version number: corresponds to the firmware version your Phidget is running. If your Phidget is listed in red, your firmware is out of date. Update the firmware by double-clicking the entry.

The Phidget Control Panel can also be used to test your device. Double-clicking on an object will open an example.


Double-click on the Accelerometer object in order to run the example:

1042 Accelerometer Example.jpg

General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:

  • Modify the change trigger and/or data interval value by dragging the sliders. For more information on these settings, see the data interval/change trigger page.
  • The measured values reported in g-force can be seen via labels as well as graphical dials. Try tilting the 1042 in different directions to see the labels and graphics change.
  • An extremely accurate timestamp is also reported with the g-force values.


Double-click on the Gyroscope object in order to run the example:

1042 Gyroscope Example.jpg

General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:

  • Modify the change trigger and/or data interval value by dragging the sliders. For more information on these settings, see the data interval/change trigger page.
  • The Zero Gyro button is used to compensate for the drift that is inherent to all gyroscopes. The gyroscope primer has more information about this subject.
  • The measured values reported in degrees per second can be seen via labels as well as graphical dials. Try rotating the 1042 in different directions to see the labels and graphics change.
  • An extremely accurate timestamp is also reported with the g-force values.


Double-click on the Magnetometer object in order to run the example:

1042 Magnetometer Example.jpg

General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:

  • Modify the change trigger and/or data interval value by dragging the sliders. For more information on these settings, see the data interval/change trigger page.
  • Use the Set Params... button to set the calibration parameters. For more information about calibration, see the technical section.
  • The measured values reported in Gauss can be seen via labels as well as a graphical diagram. The diagram can help you visualize the magnetic field vector.
  • An extremely accurate timestamp is also reported with the Gauss values.


Double-click on the Spatial object in order to run the example:

1042 Spatial Example.jpg

The Spatial example demonstrates that you can receive data from the accelerometer, gyroscope, and magnetometer all at once by using the Spatial object rather than the other three objects individually.

Finding The Addressing Information

Before you can access the device in your own code, and from our examples, you'll need to take note of the addressing parameters for your Phidget. These will indicate how the Phidget is physically connected to your application. For simplicity, these parameters can be found by clicking the button at the top of the Control Panel example for that Phidget.

The locate Phidget button is found in the device information box

In the Addressing Information window, the section above the line displays information you will need to connect to your Phidget from any application. In particular, note the Channel Class field as this will be the API you will need to use with your Phidget, and the type of example you should use to get started with it. The section below the line provides information about the network the Phidget is connected on if it is attached remotely. Keep track of these parameters moving forward, as you will need them once you start running our examples or your own code.

All the information you need to address your Phidget

Using Your Own Program

You are now ready to start writing your own code for the device. The best way to do that is to start from our examples:

This Phidget is compatible with the following examples:

Once you have your example, you will need to follow the instructions on the page for your programming language to get it running. To find these instructions, select your programming language from the Programming Languages page.

Technical Details

3-Axis Accelerometer

The 1042 has a 3-Axis accelerometer that can measure ±8 g (±78 m/s2) per axis. It will measure both dynamic acceleration (change in velocity) and static acceleration (gravity vector).


1041 0 Axis Diagram.jpg

When working with an accelerometer it is important to know which is the positive and negative direction on each of the axes. This can be determined by orienting the accelerometer along each axis and checking the output. The above image shows what the axis readings should be for each orientation of the 1042.

For more information on how to use the accelerometer, check the Accelerometer Primer.

3-Axis Gyroscope

For more information on the gyroscope, see the Gyroscope Primer.

3-Axis Magnetometer (Compass)

The magnetometer reports the sum of all magnetic fields acting on the 1042. The Earth's magnetic field is only one source that affects this measurement. In order to get accurate bearing data from the magnetometer ( i.e. to find magnetic north as a compass) any interfering magnetic effects need to be calibrated out. For more information about calibration, see the section below, or the Compass Primer.

Any magnetic field that is stationary with respect to the 1042, and less than ± 3 Gauss, can be calibrated out of the magnetic field measurement. This includes both hard and soft iron effects caused by nearby ferrous and magnetic materials. Interfering magnetic fields that vary in strength and orientation with respect to the 1042 can not be easily calibrated out.

Magnetic field data will become unavailable during every other sample as the compass performs internal calibrations. When this happens, the magneticField array in the SpatialData structure will either have a length of zero, or each element will equal PUNK_DBL, depending on the API being used. This needs to be handled explicitly in the event handling code to avoid erroneous program behavior. The maximum sampling rate of the compass is 125 Hz.

Magnetic Error Correction (Calibration)

In order to get numbers of useful accuracy from the 1042's compass you will need to provide calibration parameters. To make determining them easy, we distribute a program with our drivers that does this for you.

To calibrate your compass:

  • Navigate to the Phidgets installation folder on your computer. Open the 'examples' folder and find the Compass Calibrator program.


  • Select your country and city. Click 'Get Location' and then 'Compute'. A table of values will show up in an overlaid window. The value you will need is the 'Total Field' value in nT.

  • Enter the magnetic field value into the calibration program. Note that it wants the field strength in Gauss, not nT like the website gives you. 1T = 10000 Gauss so you can divide by 1x10^5 to convert to Gauss.
  • Depending on what your application is this step as well as the next step might be a bit different. If you are intending on mounting the 1042 onto a large vehicle such as a car then you should mount the 1056 securely to the vehicle in its final intended position then check the 2-axis bubble, click the 'Start' button.
  • If you are using a smaller, more easily handled vehicle such as a small robot (something you could physically pick up) you will mount the 1042 and use the 3-axis calibration instead. Click 'Start'.

  • Rotate the compass around (including whatever equipment you have mounted it to) such that the red dots being generated on screen outline as much of a full sphere (in 3-axis) as possible. This will take several minutes. Being perfect is not necessary but try to be as thorough as time permits. Once done, click stop.
  • If you are in a large vehicle, you will be aiming to fill out a disc instead of a sphere. This can be done by simply driving around for a few minutes making sure to do complete turns in the process.

  • Take the parameters displayed in the text box and use them for your compass. For example in C#:

     setCompassCorrectionParameters(0.51075, 0.18820, -0.07456, -0.02209, 1.87163, 1.87640, 2.12565, -0.04000, -0.04084, -0.03552, 0.09073, -0.04258, 0.11056);

For more information on magnetometers (compasses), see the Compass Primer.

What to do Next

  • Programming Languages - Find your preferred programming language here and learn how to write your own code with Phidgets!
  • Phidget Programming Basics - Once you have set up Phidgets to work with your programming environment, we recommend you read our page on to learn the fundamentals of programming with Phidgets.

Product Specifications

Acceleration Measurement Max ± 8 g
Acceleration Measurement Resolution 976.7 μg
Accelerometer White Noise σ 2.8 mg
Accelerometer Minimum Drift σ 1.9 mg
Accelerometer Optimal Averaging Period 286 s
Gyroscope Speed Max ± 2000°/s
Gyroscope Resolution 0.07°/s
Gyroscope White Noise σ 0.59°/s
Gryoscope Minimum Drift σ 0.0019°/s
Gyroscope Optimal Averaging Period 8628 s
Magnetic Field Max 5.5 G
Magnetometer Resolution 3 mG
Magnetometer White Noise σ 1.2 mG
Magnetometer Minimum Drift σ 87 μG
Controlled By USB (Mini-USB)
API Object Name Accelerometer, Gyroscope, Magnetometer
Current Consumption Max 40 mA
Sampling Speed Min 1 s/sample
Sampling Speed Max 4 ms/sample
Sampling Speed Min (Webservice) 1 s/sample
Sampling Speed Max (Webservice) 12 ms/sample
USB Voltage Min 4.4 V DC
USB Voltage Max 5.3 V DC
USB Speed Full Speed
Operating Temperature Min -40 °C
Operating Temperature Max 85 °C

Software Objects

Channel NameAPIChannel
3-Axis Accelerometer Accelerometer 0
3-Axis Gyroscope Gyroscope 0
3-Axis Magnetometer Magnetometer 0
Spatial Spatial 0


Back Forward
Print this API


Use the following program to correct for magnetic errors in your application:

Library & Driver Downloads

Code Samples


Accelerometer C Multiple Download
Accelerometer C# Windows Download
Accelerometer Java Multiple Download
Accelerometer Java Android Download
Accelerometer JavaScript Nodejs Download
Accelerometer JavaScript Browser Download
Accelerometer Objective-C macOS Download
Accelerometer Swift macOS Download
Accelerometer Swift iOS Download
Accelerometer Python Multiple Download
Accelerometer Visual Basic .NET Windows Download
Accelerometer Max/MSP Multiple Download
Gyroscope C Multiple Download
Gyroscope C# Windows Download
Gyroscope Java Multiple Download
Gyroscope Java Android Download
Gyroscope JavaScript Nodejs Download
Gyroscope JavaScript Browser Download
Gyroscope Objective-C macOS Download
Gyroscope Swift macOS Download
Gyroscope Swift iOS Download
Gyroscope Python Multiple Download
Gyroscope Visual Basic .NET Windows Download
Gyroscope Max/MSP Multiple Download
Magnetometer C Multiple Download
Magnetometer C# Windows Download
Magnetometer Java Multiple Download
Magnetometer Java Android Download
Magnetometer JavaScript Nodejs Download
Magnetometer JavaScript Browser Download
Magnetometer Objective-C macOS Download
Magnetometer Swift macOS Download
Magnetometer Swift iOS Download
Magnetometer Python Multiple Download
Magnetometer Visual Basic .NET Windows Download
Magnetometer Max/MSP Multiple Download
Spatial Compass Calibrator C Multiple Download
Spatial C Multiple Download
Spatial C# Windows Download
Spatial Compass Calibrator C# Windows Download
Spatial Spatial AHRS/IMU C# Windows Download
Spatial Java Multiple Download
Spatial Java Android Download
Spatial JavaScript Nodejs Download
Spatial JavaScript Browser Download
Spatial Objective-C macOS Download
Spatial Swift macOS Download
Spatial Swift iOS Download
Spatial Python Multiple Download
Spatial Visual Basic .NET Windows Download
Spatial Max/MSP Multiple Download


Product History

Date Board Revision Device Version Packaging Revision Comment
September 20120300Product Release
September 20120301Fixed USB bug
October 20150302OS X El Capitan USB fix
February 20160303Fixed issue that prevented gyroscope from working
January 20180303BAdded plastic shell enclosure and removed USB cable

Have a look at our spatial boards:

Product Accelerometer Gyroscope Magnetometer
Image Part Number Price Acceleration Measurement Max Acceleration Measurement Resolution Gyroscope Speed Max Gyroscope Resolution Magnetometer Resolution Magnetic Field Max
1041_0B $40.00 ± 8 g 976.7 μg
1042_0B $60.00 ± 8 g 976.7 μg ± 2000°/s 0.07°/s 3 mG 5.5 G
1043_1B $80.00 ± 2 g 76.3 μg
1044_1B $120.00 ± 2.5 g 76 μg 1.5 mG ± 49.2 G
MOT1100_0 $20.00 ± 8 g 1 mg
MOT1101_0 $30.00 ± 8 g 1 mg ± 2000°/s * 0.07°/s 300 μG ± 8 G