Home > Uncategorized > WiTilt – Wireless accelerometer/gyro/tilt controller

WiTilt – Wireless accelerometer/gyro/tilt controller

Several months ago I purchased wireless accelerometer/tilt/gyro controller called WiTilt. This is the latest wireless accelerometer from SparkFun. It cost me 219.15 USD. In few days after purchasing it was delivered to me and I started my experiments. Here is the short specification of the controller:

  • MMA7260Q 1.5/2/4/6g triple axis accelerometer sensor
  • MLX90609-150 single axis gyroscope sensor
  • Roving networks Bluetooth Wireless Module: Class 1 with 100m (330′) line of sight (30m or 100′ indoor use)
  • Tilt output in degrees
  • Lithium Polymer battery provides roughly 12 hours of run time


SFE has upgraded the WiTilt to v3.0. The new, SFE 1.5/2/4/6g WiTilt V3.0 – Tripple Axis Wireless Accelerometer/Tilt Controller provides a complete wireless Inertia Measurement System (IMS) ready to use out of the box. Version 3.0 now uses a plastic protective case and built-in lithium polymer battery with built-in charger. All measurements are transmitted via a wireless Class 1 Bluetooth link that is extremely easy to use with a range of 100m (330ft) line-of-sight and 30m (100ft) in doors.
Output in ASCII/HEX/Binary at 57600bps. Bluetooth can be reconfigured for slower communication rates. The unit can be setup to output data only when a minimum value is broken (threshold). The WiTilt 3.0 has a built-in battery with roughly 12 hours of runtime on a full charge.

Here is its exterior (in comparison with USB flash drive):

WiTilt - Wireless accelerometer/gyro/tilt controller

WiTilt - Wireless accelerometer/gyro/tilt controller

First of all I opened its plastic case and switched it on:

WiTilt Description

WiTilt Review

After that I performed usual steps for Bluetooth devices: I paired WiTilt and my laptop. After this process I got 2 new communication ports in my system. COM6 as outgoing (with SPP) and COM9 as incoming port. When some program on laptop opens outgoing COM6 port then Bluetooth connection will be established with paired device.
I needed some terminal to read data from and write to communication port. I downloaded PuTTY and configured it to use COM6 at 115200/8/n/1. After terminal is connected to WiTilt I pressed Reset button on the unit and the configuration menu came up:

WiTilt main menu

WiTilt main menu

In order to get data from the controller sensors one needs to follow this sequence of steps:

  1. Set the sensor range
  2. Calibrate the device (I will describe this process in detail later)
  3. Set the threshold
  4. Set the display mode
  5. Set output frequency
  6. Set active channels (this can be any time)
  7. Press ’1′ and get data!

It is allowed to set one of the following sensor range: +/- 1.5 g, +/- 2 g, +/- 4 g, +/- 6 g. Note, that the calibration should be performed every time the sensor range is changed.
WiTilt can display output data in different modes: Gravity, Raw ADC, Binary, Degree.

Gravity mode – the accelerometer channels (X,Y and Z) will be reported in the number of g’s, while gyroscope channel (R) will be reported in degrees/sec.
Degree mode – the WiTilt will calculate tilt along X and Y axes (pitch and yaw) and display calculated values in degrees. R channel value will also be shown in degrees.
In Raw ADC mode acceleration (X,Y and Z) and rotation (R) will be displayed in ADC values. It is possible to manually convert ADC values into g’s and degrees.

X,Y,Z acceleration and Rotation

X,Y,Z acceleration and Rotation in RAW ADC mode

In next posts I’ll show how to read and analyze raw ADC data.

In Binary mode the device outputs binary protocol that is described in detail in its documentation.

Accelerometer calibration is the process of getting knowledge about local gravity. The calibration process consists of placing the device  into configurations where the inertial input stimuli for the sensor is known, thus allowing us to determine the actual error in each measurement.

Share information about this atricle:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • LinkedIn
  • Suggest to Techmeme via Twitter
  • Technorati
  1. Karola
    September 28th, 2010 at 17:29 | #1

    I downloaded Realterm to read terminal data generated by Witilt v3.0. Comm4 is my incoming port and Comm5 is outgoing port. My raw data is very strange…nothing close to the RAW data shown above. I am getting constant X=1022, Y=1022, and Z no greater than 350. R values are close to what you have. My configuration is set up the same as your example (1.5/raw/20Hz)…I think there is a calibration problem…how do I correctly calibrate the accelerometer?

  2. September 28th, 2010 at 18:57 | #2

    @Karola
    You should calibrate each accelerometer axis.
    For starting calibration press ’3′ in main menu (‘Calibrate’ item). You will be asked to specify MAX for X axis. Place your controller in a position where X axis is vertical and directed downward. In this position accelerometer will ‘sense’ a free fall acceleration of 1g. Your terminal shall display a number near to 750. Press any key to confirm.
    Next, you will be asked to specify MIN for X axis. Rotate controller to a position when X axis is directed upward. In this case X-axis accelerometer will ‘sense’ an acceleration of -1g (because free fall acceleration is directed downward). You terminal shall display a number less than MAX value (about 350 or 400). Press any key to accept MIN value.
    After these steps controller will ‘know’ which RAW value means -1g and 1g.
    Perform the same procedures for Y and Z axles.
    I’m going to describe this calibration process in detail with pictures in one of next post.

  1. No trackbacks yet.
*