Skip to content

Hardware

Hadi Michael edited this page Sep 14, 2012 · 5 revisions

Hardware

The purpose of this wiki page is to discuss and explain the hardware used in the V-Tracker project.

Document Control

This is a living document that may be modified from time to time. Please refer to the Wiki History for detailed revision information.

Current version:

Version Date Modified by Details
v3.0.0 14-09-2012 Hadi Michael Rev. A for final submission.

Motion Sensors

When it comes to building embedded systems, mobile devices and smartphones offer a range of advantages. These primarily include: ARM CPU, power supply, battery management, WiFi support, 3G support, rich user interfaces (UI) and much more [1]. V-Tracker uses web-technologies to access the mobile device's motion sensors. Using iOS and the Apple iPhone 4(S) as an example, this section will explain the basics behind these various sensors.

Accelerometer

The sensor

A piezoelectric accelerometer can be visualised as a mass suspended using springs. Variations in the physical properties of the springs are detected as the sensor moves. In mobile devices, accelerometers pick up the device's movements. These movement events are known in iOS as Motion Events.

iPhone 4S has a three degrees of freedom (3 dof) STMicro 8134 33DH 00D35 three-axis accelerometer. alt-text
Figure 1. iPhone 4S - touchscreen controller (red), gyroscope (orange), accelerometer (yellow), and audio codec chip (teal) [2].

The sensor provides acceleration readings on the x,y,z axes, as displayed in Figure 4. below. alt-text
Figure 2. Accelerometer axes on iPhone [3].

Choosing an appropriate update interval

Selecting an interval that minimises the number of calls to the sensor will improve the device's battery life. It is therefore recommended that you set an update interval appropriate for your usecase. Table 1, below, is extracted directly from the iOS Developer Library topic: Event Handling Guide for iOS.

Event frequency (Hz) Usage
10–20 Suitable for use in determining the vector representing the current orientation of the device.
30–60 Suitable for games and other applications that use the accelerometers for real-time user input.
70–100 Suitable for applications that need to detect high-frequency motion. For example, you might use this interval to detect the user hitting the device or shaking it very quickly.
**Table 1.** Common update intervals for acceleration events [3]

Isolating the gravity component (low-pass filtering)

You will need to isolate the gravity component from the accelerometer data if you are using the sensor to detect a device's orientation. The iOS Dev Center recommends a basic low-pass filter, to reduce the effects of sudden jolts, shakes, or movements [3].

// Use a basic low-pass filter to keep only the gravity component of each axis.
accelX = (acceleration.x * kFilteringFactor) + (accelX * (1.0 - kFilteringFactor));
accelY = (acceleration.y * kFilteringFactor) + (accelY * (1.0 - kFilteringFactor));
accelZ = (acceleration.z * kFilteringFactor) + (accelZ * (1.0 - kFilteringFactor));

// Use accelX, accelY, accelZ to do stuff…

Isolating instantaneous motion (high-pass filtering)

On the other hand, if you are using the accelerometer to detect sudden movements, it is recommended that you use a high-pass filter to reduce the effects of gravity [3].

// Subtract the low-pass value from the current value to get a simplified high-pass filter
accelX = acceleration.x - ( (acceleration.x * kFilteringFactor) + (accelX * (1.0 - kFilteringFactor)) );
accelY = acceleration.y - ( (acceleration.y * kFilteringFactor) + (accelY * (1.0 - kFilteringFactor)) );
accelZ = acceleration.z - ( (acceleration.z * kFilteringFactor) + (accelZ * (1.0 - kFilteringFactor)) );

Gyroscope

The sensor

Gyroscopes in mobile devices sense angular velocity, or "the rate at which a device rotates around each of its spacial axes" [3]. Unlike the accelerometer and compass, a gyroscope measures its own rotation. Gyroscopes use the Coriolis effect, which can be observed when monitoring a moving mass from a rotating frame of reference.

The rotation axes for the gyroscope on the iPhone 4S are the same as those for the accelerometer [3]. Using the right hand rule, we can assert the positive orientation of rotation - this is shown in Figures 5 and 6.

alt-text
Figure 3. right hand rule [3].

alt-text
Figure 4. gyroscope axes of rotation on iPhone [3].

iPhone 4S has an STMicro AGD8 2135 LUSDI gyroscope on board, shown on the circuit board in Figure 3. above. The following images show the sensor's silicon composition and are taken from Chipworks (the sensor's manufacturer):

alt-text
Figure 5. the STMicro AGD8 2135 LUSDI gyroscope [4].

alt-text
Figure 6. the STMicro AGD8 2135 LUSDI gyroscope [4].

alt-text
Figure 7. the STMicro AGD8 2135 LUSDI gyroscope [4].

alt-text
Figure 8. the STMicro AGD8 2135 LUSDI gyroscope [4].

alt-text
Figure 9. the STMicro AGD8 2135 LUSDI gyroscope [4].

alt-text
Figure 10. the STMicro AGD8 2135 LUSDI gyroscope [4].

Localisation Sensors

V-Tracker also uses web-technologies to access the mobile device's localisation sensors. Again, using iOS and the Apple iPhone 4(S) as an example, this section will explain the basics behind these various sensors.

Compass

The sensor

In mobile devices, the compass is used to assert 'True North' and/or 'Magnetic North'. These sensors commonly suffer from environmental interference and may require regular calibration. iPhone 4 has an AKM8975 magnetic sensor that promises improved performance [5]. The compass is a 3-axis sensor that can provide heading data regardless of the device's orientation in space. It is shown on the circuit board in figure 13 below.

alt-text
Figure 11. Samsung K9PFG08 flash memory, Cirrus Logic 338S0589 audio codec (Apple branded), AKM8975 Mag Sensor, Texas Instruments 343S0499 Touch Screen Controller, 36MY1EE NOR and mobile DDR [5].

Global Positioning System (GPS)

//COMING SOON

Page References

[1] Daniel Bedford, "iOS Hardware as a Sensor Platform: DMM Case Study," in Sensors Applications Symposium (SAS), 2011 IEEE, 2011, pp. 308 - 311.

[2] ifixit, "iPhone 4S teardown," on ifixit.com, 2011 [Online]. http://www.ifixit.com/Teardown/iPhone-4S-Teardown/6610/1

[3] Apple Inc. "iOS Developer Library," on developer.apple.com, 2011 [Online]. http://developer.apple.com

[4] Chipworks, 2011 [Online]. http://www.chipworks.com

[5] ifixit, "iPhone 4 teardown," on ifixit.com, 2010 [Online]. [http://www.ifixit.com/Teardown/iPhone-4-Teardown/3130/3)