Intro | Build it! | Command reference | How it works | Download | Customize | Todo | phpBB forum
Other projects: GPS Finder | One-LED clock for people with limited vision | GPS speedometer with setpoint and relay output

Open GPS Tracker: Potential improvements

Done! Store unsent messages in the phone

Report GPS battery condition

The status page currently shows the phone battery condition. It would be nice to also show the GPS battery condition. At first glance, this should be easy since the MCU has an ADC. The problem is, the battery voltage is higher than the regulated supply to the MCU. The MCU can only measure voltages up to its power supply voltage.

The obvious approach is to scale the battery voltage down with a voltage divider, but that uses current and so has to be switched. This "simple" approach requires three resistors and another transistor. Any voltage drop across the transistor degrades the measurement.

Another approach uses a zener diode or other calibrated voltage drop, a resistor, an output pin, and an analog input pin. Connect the zener from the battery to the input pin, and the resistor from the input pin to the output pin. Normally the output pin is high, and with a 2.1V zener, no current flows. Pull the output pin low, and the input pin will be 2.1V less than battery voltage, a maximum of 2.4V.

Handle the parking-garage problem

The Tracker can remain stopped in tracking mode, using a small amount of power, as long as it is in GPS coverage. It takes a fix every few minutes, each fix requiring only seconds of GPS on time, and reports as soon as it moves.

In a parking garage, out of coverage, tracking mode becomes expensive. The GPS has to stay on for about two minutes to be sure there is no coverage, burning over 1 milliamp-hour per check. The user may want to know immediately when the tracked vehicle leaves the garage, so he faces an unpleasant trade-off between quick response and battery life.

The ideal solution is a mercury switch or similar kinetic motion detector. Once the GPS reports blocked, the Tracker could go to sleep until it detects motion, using no power. Mouser does not sell mercury switches; they must be considered an environmental hazard. Some green alternative should be used instead.

Almanac and ephemeris refresh

GPS satellites send a longer file called Almanac that could improve the tracking precision. It allows the receiver to correct for atmospheric conditions. To receive Almanac you have to leave the GPS on for several minutes. Provide an option to leave the GPS on for a few minutes periodically to receive the almanac. How long and how often need to be worked out.

Better power supply

Update: the tracker battery has proven to last for several months, and changing the power supply is not worth the trouble at this time.

The current power supply is a wasteful linear regulator. The production design should use a micropower boost switching regulator. This consists of a chip, an inductor, and some capacitors. In sleep mode, the regulator remains off and the MCU runs on battery power. When the MCU wakes up, it turns on the regulator, bringing the voltage up to 3.3 volts, and then enables the GPS. This design could run on two alkaline cells instead of three, or on rechargeable batteries. The design would require the ATTINY84-10 variant of the MCU, which works down to 1.8 volts. Mouser does not sell it, but DigiKey does.

For a very-long-life application, it could use D-cells or an expensive Tadiran 3.6V lithium battery, and recharge the mobile phone as needed. A GSM module could be used instead of a mobile phone.

The lithium battery and module have been used successfully in the car security prototype.

Support other phones and GPSes

Supporting other phones is easy if they provide a serial AT command set and the standard interface to SMS. I am not sure which ones do. The C139, either AT&T or Tracfone, does not work. The Nokia 2610 does not work. The GC864 works fine. Do any T-Mobile or even CDMA phones provide serial AT commands? The CDMA network has an advantage over the GSM network, in that GSM phones induce noise in nearby electronics. GSM radio transmissions are pulsed at an audio-frequency rate, so any diode will demodulate them into a nasty buzzing sound. My tracker buzzes through the car radio if I put it close to the radio. This is not exactly stealthy. CDMA does not have that problem.

The Aarlogic GPS 3A works fine. Set the tracker baud rate to 9600. The Aarlogic stores its settings in battery-backed RAM. Since the tracker only runs it for a few seconds at a time, the battery does not stay charged and the Aarlogic forgets its settings and defaults to 9600 baud.

The Antenova M10214-A is a possible alternative GPS module. It runs on 3.6V up to 5 volts and can switch itself on and off. It should last quite a while on a 3.6V Tadiran battery without a regulator. The connector looks tricky to solder to, and the device may come up in SiRF Binary mode, requiring a 57,600 bps transmission to switch it into NMEA mode. The interrupt-driven serial transmitter cannot run that fast, so a cycle-counted loop would have to be written.