This is an Android app available at Google Play in two versions:
Let's cut to the chase: how to use this app.
NOTE 1: this app measures performance using the accelerometer. It does not use the GPS. Every Android device has an accelerometer, it updates far faster than the GPS, and can give more accurate performance measurements.
NOTE 2: But the accelerometer has no positional reference. Thus, it's necessary to calibrate each run with the car stationary in order to have a reference point for the accelerometer. GForce does this automatically, and quickly (1 second).
TEST & SETUP
Hold your device flat on a table and start acceleration mode; after a 1 second calibration the dial appears.
When the dial appears, slide the device quickly in any direction.
The white needles on the dial should move opposite (away from) the direction of motion.
This mode is for measuring cornering and braking forces, for example on an autox or road racing course.
Mount your device firmly to the vehicle so it cannot move or rotate, the screen is facing you and within easy reach.
Start acceleration mode; after a 1 second calibration the dial appears.
Now ignore the device and drive.
The app continuously measures and displays your instant, sustained and peak acceleration, both direction and magnitude.
The dial radius (max setting) defaults to 1G.
If acceleration exceeds 1G (for example R tires on a good handling car) and goes outside the dial,
it is still recorded with no loss of accuracy.
Acceleration mode can be run indefinitely
This mode is for measuring straight line acceleration, for example on a 1/4 mile drag strip.
Mount your device as you would for acceleration mode.
Click velocity mode from the main screen, leave the big "Start" button displayed.
When you reach the starting line and are fully stopped ready to go, click the "Start" button.
After a 1 second calibration the speedometer appears; the device is ready.
NOTE: from here on you can ignore the device and drive!
You will notice the speedometer has no needle. As soon as you start moving the speedometer needle appears and the app starts recording. As you pass key points, data will appear on the display. Key points are upon reaching:
Velocity mode stops running upon reaching 1/4 mile distance. The screen remains, showing the 1/4 mile data (speedo dial, times, distances, power). At any time, touch the screen anywhere and the data will be written to a text file on the device.
G-Force uses the 3-axis accelerometer to analyze vehicle performance.
Android devices vary in hardware sensors & features, for example not all devices have a GPS or a magnetic compass. But all Android devices have a 3-axis accelerometer. Most commonly, it's used to detect whether the device is in landscape or portrait mode.
Google Sky Map uses it in a more unique way: combined with the magnetic compass, it detects the direction & angle of the device held up against the sky, to show on the screen the stars in the sky as seen from that angle by the viewer.
G-Force provides another creative & useful way to use the accelerometer. With some basic Newtonian physics and 3-D linear algebra and vector/matrix math, the accelerometer can be used to analyze your car's performance.
There are apps in the Android market that analyze car performance, but they use the GPS not the accelerometer. GPS is easier to use because it gives position, and velocity and acceleration can be computed from that. But GPS has 3 key drawbacks:
To summarize, accelerometer based car performance is more accurate, more reliable, and works on all devices.
G-Force does a brief (1 second) calibration to sense the device orientation. Then it waits for motion to occur. As soon as motion occurs it starts tracking velocity & position. This frees the driver to simply push START and forget about the device & app while driving. After pushing START, he can sit for any length of time before moving. As soon as he starts moving, G-Force starts tracking.
Here's what the G-Force app measures:
This is the only mode the free version of G-Force supports. You can ensure G-Force works on your device, and you can measure your accelerating, cornering & braking forces.
This mode measures straight-line performance.
The following features are being developed or considered, NOT implemented as of this time.
Most importantly, the direction of motion must be isolated from all other motion. If we could align the device perfectly level or upright, we could simply use the X, Y or Z axis alone and ignore the other two. But this would be impractical. The device is going to be in some kind of mount or holder and can be at any angle or orientation.
Instead, the GForce app has a calibration step that reads the accelerometer when the car is not moving (or when it's moving at a constant speed - not accelerating). We call this the "base" or "basis" vector. From this, it knows the direction and magnitude of "G" (gravity) regardless of the orientation or angle of the device. From that, it:
The above 3 steps make it easy, fast and accurate to measure car performance.
For best accuracy, the accelerometer must be read repeatedly as quickly as possible. Put differently, it must be used with the highest possible update rate. This varies by device; I've observed maximum rates from 10 to 100 times per second. The slowest, while not ideal, is still several times faster than GPS.
Use acceleration mode first before using any other mode. This ensures the app is working and you have the settings needed for your device.
How to test G-Force accuracy:
One way to test accuracy is to use Velocity mode, tilt your device 90* after calibration. The acceleration arrow should point to the ring of the dial. Hold it there and let it accelerate at a constant 1G. It should show the following stats:
60' time: 1.94 sec 60' speed: 42 mph
0-60 time: 2.75 sec 0-60 dist: 121'
1/4 mile time: 9.08 sec 1/4 mile speed: 198 mph
An accurate accelerometer won't quite achieve the above stats because it doesn't start out with 1G of acceleration. During the fraction of a second when you tilt your device, the acceleration is changing from zero to 1G. Thus this test shows slightly less acceleration than the above indicates. If you tilt it too fast you'll cause over-acceleration that will throw off the results. Theoretically 0-60 at 1 G is 2.75 seconds. However, due to the above, if it measures in the low 3 seconds, then your device is accurate.
Another accuracy test is to use Acceleration mode, tilt your device 90* after calibration and watch the acceleration arrow. It should reach exact to the 1G ring on the dial: no more, no less. If you can find a position where the arrow can't reach the dial, or reaches outside it, you need to recalibrate.
NOTE: most devices have imperfect accelerometers. Computing velocity from acceleration, and position from velocity, is integration which amplifies errors. Fortunately, perfection isn't needed to attain good real-world accuracy. We only need enough accuracy to last a few seconds.
The above assumptions imply that the difference between the measured peak power values in each gear is due to wind resistance. We know power losses due to wind resistance increase with the cube of speed. Thus if we know the measured peak power output at any 2 speeds, we can factor out wind resistance and compute peak power at the rear wheels of the car. This is what the true power computation does.
At the end of each 1/4 mile run, GForce analyzes the power curve to find 2 successive peaks. It draws vertical green lines on the power graph to show which peaks it uses in the true power computation. It does this computation instantly and displays the result.
If GForce can't find 2 successive peaks on the power curve, or if the computation reveals a strange result,
GForces shows N/A for true power.
Example 1: if you have a constant variable transmission, measured power output will be monotonically decreasing, there are no peaks for GForce to find and it can't compute true power.
Example 2: if you don't use full throttle in each gear, then the difference in power is not entirely due to air resistance, and true power will be inaccurate or may not be computed at all.
If you use full throttle acceleration to redline in every gear, true power computation works with virtually all standard and automatic transmission cars.
If you're wondering how we know power is proportional to speed cubed, read on. Air resistance is proportional to speed squared: moving twice as fast produces 4 times the wind resistance. Now suppose it takes power P to move a fixed distance D, at speed S. Moving at speed 2S, you'd get 4 times the air resistance. That means 4 times as much force (thrust) to overcome that air resistance. You exert that force over the same distance, and work is force * distance, so you do 4 times as much work. But since you're going twice as fast, you do that work in half the time. Power is work / time, and 4 times the work in half the time is 8 times the power. Going twice as fast requires 8 times the power. Generalize this mathematically and you have power proportional to speed cubed.
The accelerometer cannot distinguish movement from rotation.
That is, if you tilt the device after calibrating it,
it will think you're accelerating in the direction you tilted it.
This becomes a problem if the vehicle tilts while GForce is running.
But "Hey!" you might say,
"My car moves on a flat road - how could it be tilting?"
Here, "tilt" could be:
Most devices have a gyroscope in addition to an accelerometer. The gyro can sense rate of rotation around any axis. Using the gyro, we can can compensate for tilt and keep the accelerometer accurate in the above situations.
However, this has limitations:
3-D Rotations and Commutativity
Consider a gyro that says it has rotated 20* around X, 30* around Y and 40* around Z. To compensate for this we apply the reverse rotations. However, we don't know - the gyro doesn't tell us - in what order the rotations happened. We can order these 3 rotations in 6 different ways and each produces a different end result. To most people this is counterintuitive. You can read more about this online.
It turns out that small rotations are nearly commutative - the smaller the angles the less it matters in what order they're applied. GForce reads the gyro as fast as the device can send data, typically 100 times per second. So GForce simply does X, then Y then Z in a single matrix operation. This is imperfect but good enough for now. If it messes up your results, go to settings and turn off Gyro Stabilization.
Even with this simplification I found this feature surprisingly hard to implement. I ended up having to apply a fudge factor to the gyro angle readings and I don't understand why. This fudge factor is in settings as "Gyro Factor". Defaults to 2*pi, which seems to work most of the time. If it doesn't work right, feel free to try different values.
So I'm releasing what I have so far and meanwhile I'm looking for a better solution.