Quick Links


Contact Developer

Vibration Web Site
What's New

Getting Started

Help Contents

Time View

Frequency View


Selecting a Data Source

Acquisition Parameters

Version History
Using Triggering

Time Display Settings

Frequency Display Settings

Other Options

Calibrating Accelerometer

Privacy Policy

Contact Developer

For bug reports, general questions and feature requests send an email to one of the following:

General Questions

Bug Report
Feature Request


Vibration is an iPhone/iPod/iPad application which uses the internal accelerometer and gyroscope to analyze vibratory and rotational motion. By placing the device firmly in contact with an object and pressing the sample button it is possible to record the motions of the object in each of three axes. The acceleration or rotation is displayed on the screen in the Time Display mode. In addition Vibration also performs a frequency analysis of the data and has the ability to display the amplitude of the motion vs. Frequency.

Vibration is a true vibration spectrum analyzer. It acquires and displays time series data, optionally removes DC bias, applies a Hamming window and performs an FFT on each channel to produce frequency spectra. The 3-channel accelerometer has a sensitivity of approximately 0.02g and a range of +/-2g making the iPhone and iPod Touch sensitive enough to analyze the vibration of most moving machinery. The gyroscope is so sensitive that I have not been able to determine its lower limit.

Starting with Version 3.0 Vibration can now accept input from an external, professional grade Accelerometer which allows sampling rates up to 16 Khz for measuring frequencies up to 8Khz. Version 3.0 and above also sample the internal microphone so that you can perform frequency analysis of audio signals.

In many applications Vibration can be an excellent portable alternative to a commercial spectrum analyzer. In predictive maintenance applications Vibration can help identify bearing defects, shaft misalignment, imbalance, and structural resonant frequencies. Vibration is also useful for monitoring the acceleration of part and material handling equipment.

Vibration is also an excellent tool for iPod and iPhone game programmers. The application provides an ideal way to record the output of the accelerometers for particular user actions. This data can then be plotted offline allowing the programmer to best determine how to process the data.

The software is flexible and easy to use. It was written to emulate the familiar oscilloscope based spectrum analyzer. Sample rate and sample delay are easily adjustable using sliders and the user can select the length of the data acquisition and the vertical scale used for the display. Once the settings are configured simply press the sample button. When a test is complete the resulting data can be emailed or copied using the iTunes file sharing protocolto your desktop computer for further analysis.

Technical Goodies

The iFamily of devices include a MEMs accelerometer and the newer devices also include a MEMs gyroscope. Apple provides an software interface to these devices allowing programmers to access the data at sample rates up to 100Hz. A 100Hz sample rate allows measurement of motion up to frequencies of 50Hz which is equivalent to 3,000 rpm (for those who want to know why frequencies are limited to 50 Hz Google "Nyquist Sampling Theorem").

We realize that many users want higher sample rates in order to measure higher frequencies. Apple has limited the sample rate of the internal accelerometer and gyroscope to 100Hz and it is not possible for an app programmer to bypass this limit. We have some ideas to allow higher sampling frequencies but those ideas will require external hardware. Our goal is to offer a way to measure higher frequencies in a future release.

What's New

Version 3.00

Version 3.00 added the ability to sample data through the microphone port. As of version 3.00 Vibration can sample either the internal microphone or the Digiducer Accelerometer, 633A01 USB Accelerometer, and 485B39 Digital ICP two channel USB sampling input using the audio input system built into the iPhone and iPad. Access to the these devices is an In-App purchase but you can try before you buy but with limitations to the sample rate and sample length.

Another exciting addition in Version 3.00 is integration with the Apple Watch. Vibration now has a companion watch application which allows you to start data acquisition by touching the Sample button in the app on the watch. This is convenient when you want to take data in a location where the device is not easily accessible and you cannot reach the Sample button on the iPhone or iPad.

Version 2.00

Version 2.0 is a complete ground up rewrite of the Vibration application. Many users have made excellent suggestions to improve the application but the architecture of the original Vibration application made adding features difficult. In addition, the original application was written long before the iPad was introduced and as such it did not have an iPad mode which could use the full resolution of the tremendous iPad display. Version 2.0 is a universal application which makes use of full resolution of iPhones (including the new iPhone 5) and the iPad mini, full size iPad and retina displays.

In addition to nicer graphics and support of the iPad family of devices version 2.0 has a bevy of new features, some of which are listed below.

Getting Started

  1. Touch the Sample button on the Time Series screen. The screen will clear and begin taking data. Shake the device gently and you will see the acceleration on the screen.
  2. Touch the Sample button a second time. This time when the data acquisition starts shake the device gently at a constant rate for the entire duration of the acquisitions.
  3. Touch the frequency screen. You should see a peak near 0 and at least one more peak at the rate at which you are shook the device.
  4. If there is an object you want to measure touch the Settings tab and then touch the Data Acquisitions Settings selection. Move the Sample Delay slider to approximately 5 seconds
  5. Return to the Time Series Tab. Touch the Sample button. You now have 5 seconds to position the device
  6. Place the device on the object you want to measure. When the timer counts down to 0 the sampling will begin automatically

You have now taken vibration data!

Detailed Help

Time View

The time series view shows the time traces for all of the active channels. In the case of both the internal accelerometer and the internal gyroscope three channels are available. They are described in more detail in the settings section which discusses the available Data Sources.

Each channel is plotted separately and the maximum, minimum and rms value for each channel is computed and displayed. In addition the data from all channels is added in vector form and the rms magnitude of the combined data is printed near the bottom of the screen.

At the very bottom of the screen are listed the vertical and horizontal plot scales. The value for the horizontal scale is determined from the sample rate and sample length set in the Data Acquisition Settings. The value for the vertical scale is set in the Time Series Display Settings.

If you touch the screen you will be presented with a vertical cursor which you can slide along the data to obtain precise readouts of the value of the data under the cursor.

If you double tap the screen at an area of interest the plot will zoom in by 3x so that you can get a closer look at the data. To unzoom simply double tap a second time.

Sample Button

To start data acquisition press the Sample button. This will start the data acquisition process. Once this button has been pressed it will change its label to Cancel and allow the acquisition to be terminated by touching the buttona second time.

Save Data and Load Data Buttons

If you would like to save a data set, press the Save Data button. A dialog box will open with a default file name set to the current date and time. You can edit this file name as you see fit. When you press OK the data will be saved to the Vibration documents folder. You can recall this data using the Load Data button.

If you want to look at the data on your computer you can copy the data file the next time you sync with iTunes using the iTunes app file sharing feature. The data files are stored internally as .csv files so they will open directly in Excel or Numbers.

The data files consist of a header which contains information about the acquisition including which sensor was sampled, the number of channels, the number of data points/channel, the sample rate and the position and speed of the device at the time of acquisition and the state of the frequency data when the data was saved (acceleration, velocity or displacement). Following the header two data sections. The first data section contains the time series data and the second data section contains the frequency series data.

If you want to delete data there are two options. You can delete files from within the app or from iTunes.

From within the app simply touch the load button, find the file you wish to delete and swipe from right to left. A delete button will appear. Touch the delete button and the file will be removed from the device.

From within iTunes go to the file sharing section on the Apps page. Select Vibration and all of your files will appear in the right hand window. Select the items you want to delete and press the delete key on your keyboard.

Email Button

The email button generates an email containing Time Series and Frequency view screen captures, a CSV file of the data and for sample rates above 70Hz the email will also contain .wav files of the data for each channel allowing you to play the data through your sound system.

Rather than type in an email address each time you want to email data you can also set a default address in the Options page of settings. This email address will then automatically be added to each email document.

Frequency View

The frequency view displays the frequency content of each channel. For those who are interested it does this by performing a Fast Fourier Transform the data from each channel and scaling the results appropriately.

The frequency data can be displayed in a variety of ways such as linear-linear and log-log plots. A touch cursor is also available to enable precise readout of the values of specific data on the graph. Vibration also has the ability to display a second harmonic cursor to the right of the main touch cursor to aid with data evaluation.

When using the accelerometer the frequency results are in units of 'g' which is one gravity of acceleration. Equipment vibration analysts often want to see units of velocity in either mm/s or in/sec. It is simple to convert the frequency data to velocity data, just touch the integral sign on the right side of the screen. If you touch the integral sign a second time the data will be converted to displacement (mm or inches depending on the units setting). You can also convert back to acceleration by touching the d/dt or differentiate button which appears when you first touch the integral button.

Other options for the frequency display can be set in the Frequency Settings View.


The settings tab provides access to a variety of pages to set up the options for the data acquisition and display.

Data Source

To select the input data source touch the Data Source item in the Settings menu. The screen which is displayed will let you select among the available input options. The standard input options are the Internal Accelerometer, the Internal Gyroscope, the Internal Microphone and the headset microphone (if connected). When you touch the desired data source a checkmark will appear next to the selection.

Starting in Version 3.00 there is also the option to use the Digiducer Accelerometer, the 633A01 USB Accelerometer, or the 485B39 Digital ICP two channel USB sampling input as input devices. You will notice a fourth input option which initially states Purchase or Restore Digiducer. By touching this selection you will be taken to a screen where you can purchase the ability to use these devices. Vibration allows you to try before you buy. The trial version is limited to a single sample rate but all other options are fully functional. When you connect the Digiducer or Digital ICP the calibration data embedded in the device by the manufacturer will be transferred to your device automatically. You can see these values in the Data Acquisition Settings screen. The calibration values are not editable for the 333D01 and 633A01 digital accelerometers. When using the 485B39 device the scale factor for both channels defaults to 0.1 V/g (typical accelerometer calibration values) but you can edit these values with the actual device calibration values supplied by the manufacturer.

NOTE: If you have purchased the Digiducer/Digital ICP option and you needed to restore your device, or you have deleted Vibration and reinstalled or you have purchased a new device this page will also allow you to restore a previous purchase. Simply press the Restore Purchase button while logged into iTunes using the account you used for the original purchase. The app will verify your purchase and enable the Digiducer (333D01 or 633A01) or the Digital ICP (485B39) input at no additional charge.

The coordinate systems for the internal accelerometer and gyroscope are shown in the following image.

When using the microphone the Data Acquisition Settings screen has settings for calibration of the microphone. There are two editible settings, one for the Microphone Calibration in units of mV/Pa and one for input scaling. The scaling assumes that the microphone input is +/- 1V full scale input. I believe that the default calibration value of 16 mV/Pa is reasonably close for the internal microphone but for accurate amplitude measurements this numbers should be calibrated using a standard calibration microphone.

Data Acquisition Settings

Setting up the data acquisition settings is the single most important step for successful use of the application. The parameters presented in this screen may vary depending on the input source but will be similar to the items described below.

Sample Rate

Set the rate that data is sampled by the device. The units are in Hz. This should be set to at least twice the highest frequency to be measured.

Sample Delay

The Sample Delay is the number of seconds after pressing the Sample button before data acquisition begins. This allows the user time to position the device or start an experiment. This may be used in conjunction with Triggering in which case the sample delay will occur first and then the system will begin waiting for the trigger.

Sample Length

The Sample Length control allows the user to set the duration of sampling. The longer sample lengths are useful for measuring events which make take longer periods of time to complete. The maximum sample lengths are limited because of the amount of available memory in the device. The longest sample times can take some time to process and plot making the app take longer to switch between the various displays.

Auto Save

Enabling this option will result in the data being automatically saved to the device at the completion of data acquisition. The file will be named VibrationData YYYY-MM-DD at HH MM.csv. These data files can be reviewed at a later time using the Load button or by downloading to your computer using iTunes App File Sharing.

This option is also very useful when used in conjunction with Auto Repeat.

Vector Sum

The Vector Sum switch is displayed when using the internal sensors (the three axis accelerometer and the Gyroscope). When this switch is turned on the three channels from the selected input are added together by taking the root sum squared of the three channels to create a new, single channel signal. This is useful for displaying the magnitude of the motion independent of the direction.

Auto Repeat

When Auto Repeat is turned on Vibration will automatically repeat data acquisitions and display continuously until the Cancel button is pressed. If Auto Save is enabled each acquired set of data will automatically be saved for later review.

When using Auto Repeat you can switch to the Frequency tab and the frequency data will display as soon as the data acquisition is complete. You can touch the screen and use the cursor to examine the data until the next acquisition begins. When the system is acquiring data the graph will remain on the screen but because the data is in flux the cursor position and values will be zero.

When you switch to the frequency view Vibration will check the auto-repeat delay and if it is set to 0 it will increase the delay to 1 second to allow time for plotting the frequency data.

The program will allow you to change settings when auto-repeat is enabled and most of the time this works as expected.

When you are ready to stop taking data touch the Cancel button at the top left of the screen. The app will ask if you want to finish taking the current data set or halt immediately.

Auto Repeat Delay

When using Auto Repeat the normal mode of operation is to begin the next acquisition as soon as the previous acquisition data has been saved. If a delay is desired between Auto Repeat acquisitions the Auto Repeat Delay slider can be used to adjust the delay from 0 to 600 seconds.

Viewing the Auto Repeat Delay controller may require scrolling on smaller screens.

Calibration Settings

For some input devices this screen also contains calibration settings. If these settings are saved in the device you can view, but not edit the settings. Other input devices such as the internal microphone have default values which can be edited. If you plan to edit these values it is recommended that you write down the orginal numbers so that you can restore them in the event the new numbers do not work properly.


As with a stand alone vibration analyzer or spectrum analyzer it is sometimes useful to trigger on an event. Vibration allows setting triggers for any of the three accelerometer channels or the microphone input. (Sorry, no triggering on the gyroscope yet). To set a trigger simply turn on the desired channel and adjust the slider to the desired trigger value.

When using external devices such as the Digiducer 333D01, 633A01 or the two channel 485B39 ICP the Microphone Trigger switches to this device. When using the 485B39 the trigger is on Channel 1. Please be aware that there will be some latency between the trigger event and the first data point due to the way the iPhone audio input sampling works. The resulting triggering will not be as precise as you might be used to on an oscilloscope.

Time Display Settings

The Time Display Settings are used to set how the time series data is displayed. The vertical scale sets the scale per division on the time series display. There are also three multipliers which allow for larger ranges. When using the accelerometer input the multiplier will typically be set to 1x and the scaling can be set appropriately using one of the selections in the top row. The gyroscope has a much larger dynamic range and if the device is rotating rapidly it may be necessary to increase the scale by 10x or 100x in order to keep the values on screen. Note that you can change these values without needing to re-acquire the data.

When the Autoscale switch is on the data will automatically scale to fill the display when the data acquisition is complete. For the internal sensors which are displayed live the vertical scale settings are used for the live display and then once the acquisition is complete the data will automatically rescale.

The Subtract Mean switch is used to remove a constant bias from the data. This is particularly useful when using the accelerometer to measure vibration because gravity will typically add 1g to the channel which is aligned with the vertical axis.

Frequency Display Settings

The Frequency Display Settings are used to set how the frequency display is formatted.

Plot style - Linear and Log

The user has the option of displaying the frequency data in linear-linear format in which case the three channels (if available) are plotted in separate sections of the screen as in the time display window. More advanced users often want to use log scales for one or both of the frequency axes. When log scales are selected the three channels are plotted on top of each other. In most cases it is easy to see the three plots but in the event they overlay and the user desires to see the details of one or two plots more clearly individual channels can be turned off and on. The channel switches are only available when one or both of the axes are in LOG mode.

Harmonic Cursor

When analyzing frequency data very often there is both a fundamental frequency and one or more harmonics. The most prevalent harmonic is at 2x the fundamental frequency. When Harmonic Cursor is enabled a second, light gray cursor is displayed when the user touches the screen. The user's finger is used to position the fundamental cursor and Vibration will automatically display a second harmonic cursor at 2x the fundamental frequency.

Peak Hold

Peak hold is a useful feature to help pull frequency peaks out of noise. At each freqeuncy it retains the highest value which occurs during a number of data acquisitions. This feature can be used in two ways. The most common method is to turn on Peak Hold and then go to Data Acquisition Settings and turn on Auto Repeat. Then put the device where you want to take data and press Sample. Now switch back to the Frequency view. After each acquisition the frequency data will update.

Alternatively it is possible to take data manually with Peak Hold turned on. Each acquisition will update the frequency data.

At any time during peak data acquisition you can touch the works Clear Peak Data at the bottom right of the Frequency view to clear the data and start again.

Running Average

Running average is another feature to help pull frequency peaks out of noise. Where Peak Hold will allow you to see short duration occurances of a frequency, Running Average helps you better extract a frequency which is extremely low amplitude. Normally Running Average is used in conjunction with Auto Repeat found on the Data Acquisition settings page. It is recommened that you turn on both Running Average and Auto Repeat, place your device in the location where you want to measure, press Sample and then touch the Frequency tab. You can now watch the frequency data evolve as each data set is aquired, processed and averaged with the previous data.

Frequency Units

When rotating machinery is being measured users typically want the horizontal axis to be displayed in units of revolutions per minute (RPM) rather than cycles per second. The Frequency Units control allow the user to select the frequency units.


The Windowing control allows the user to apply a Hamming window to the frequency data prior to the computation of the FFT which converts time data to frequency data. If you understand the last sentence then you will know when you want windowing on and when you want it off. If you do not understand the purpose of windowing it is recommended that you leave the Hamming window selected.

Other Options

Other Options should be pretty self explanatory but just in case they are not…

Default email Address

The email address entered in this field will be automatically entered as the first address when you press the Email Data button in the Time Series view. This makes it quick and easy if you always send your test data to the same address.

Save Filename Prefix

Vibration creates default filenames for saved data and for emailed data. The default filename is "Vibration Data YYYY-MM-DD at HH MM SS". The user now has the option of changing the file nameroot from "Vibration Data" to any prefix such as "Chiller 1" or "Drive Motor". This new filename root will remain the default until changed by the user.

Coordinate System

Allows the user to select to see data in a left handed or right handed coordinate system. Mathematically this switch changes the sign of the Channel 3 axis for three axis sensors.

Timer Sounds

Turns on sounds for the countdown timer and also turns on sounds at the beginning and end of data acquisition. These sounds can also be turned off on an iPhone by putting the device in Silent mode.


Adjusts the units used for display of the accelerometer and gyroscope data. Note that Acceleration will always be in units of "g's" or gravities. The units are important when the data is integrated and displaying in units of velocity or displacement.

Calibrating Accelerometer

On most iPhone and iPad devices calibration is usually not necessary, most devices are very well calibrated from the factory. If you suspect that the internal accelerometer calibration is not correct or you are worried that perhaps you have a bad channel you can calibrate the device. If all channels are working properly the offset values will be very close to Zero and the Scale values will be close to 1.000. Offset values which vary from zero by more than 0.1 or Scale values which vary from 1.000 by 0.1 are rare and may indicate a problem. Note that you can enter calibration values manually on the Calibration Values screen or you can execute the calibration sequence by touching the Calibrate button.

When you touch the Calibrate button the device will guide you through the calibration process. Please make sure that when you hold the device in each orientation that you keep it square to the horizontal and you keep it very steady. If the software senses vibration or if the calibration values are very different from what is expected calibration will abort and you will see an error message.

Version History

VERSION 3.82 - November 2018

VERSION 3.81 - November 2018

VERSION 3.80 - November 2018

VERSION 3.70 - September 2018

VERSION 3.5.5 - May 2017

VERSION 3.5.3 - October 2016

VERSION 3.5.1 - June 2016

VERSION 3.50 - May 2016



















Privacy Policy

Diffraction Limited Design, the owner of Vibration, takes user privacy very seriously. Vibration does not collect any data from users. All data that is saved by the app is saved locally to the app workspace on the device or in the future to your iCloud account. If you decide to allow Apple to collect crash data and send it to the developer we will receive log files and crash dumps. These files will not contain any of your personal information.