I have built a GPS Logger and it works very well to trace the drove route for two years. By the way, the navigation solution computed by GPS receiver itself has an excellent accuracy without DGPS because an intentional offset added by US goverment has been stopped several years ago. The position error seems to be some meters under clear sky. It is a suffcient accuracy to trace the movement of walk. However that GPS logger was designed for only car use so that I re-designed a portable one.
The impotant freatures needed for the portable equipment is: Small Size and Long Battery Life. The portable GPS logger must be designed in consideration of these requirements.
Modern GPS receiver modules are very small in size but most is still large for this project. I looked for a small one at some shops and found NaviSys Technology GM-316 at Aitendo. Its dimensions 13x16x9[mm] is not bad and the power consumption is only 3V/26mA.
Jan. 29, 2012: The GPS receiver module is replaced with PA6C. Also the firmware files have been updated.
The battery occupis the most space inside the case. To acheve required operating time, the energy density of the battery should be high as possible. The Li-Ion battery is suitable for such purpose, and also its high output voltage eliminates the step-up DC-DC converter that affects receiver sensitibity. However the Li-Ion battery has risk of fire and explosion if used it under incorrect charge/discharge condition. The control circuit and software must be properly designed to control it strictly. I used a AAA size 3.6V/500mAh Li-Ion cell for the purpose of high power flashlight.
A MicroSD card is used to record the navigation solution data with ATmega328P microcontroller. To use memory cards with a microcontroller, certain program space to implement a FAT file system is required. It depends on the microcontroller family and at least 16-32K bytes will be required for the AVRs. This controller does not have a mechanical power switch and the power is always supplied to the AVR. To reduce OFF state current, the power consumption of the regurator IC must be samll as possible. The Torex XC62FP3002 CMOS regurator used in this project is only 2μA in supply current. Right image shows the built circuit board and its circuit diagram.
Takachi SW-53 ABS case is ideal in size for this project. However it is a little small to built the all components in it. Because the size of the Li-Ion cell is 10mm in diameter but inner height of the case is only 8.5mm, I machined the both side of the case for the battery and for GPS receiver as well. The Li-Ion cell does not have soldering tabs but it must not be soldered directly or the Li-Ion cell can explode. I glued the Li-Ion cell to the case and put gold plated phosphor-bronze springs to contact the Li-Ion cell.
The function of the firmware is quite simple. It receives the data in format of NMEA-0183 that sent from GPS receiver continuously, stores it to the MicroSD card and nothing else. When power is on, initialize the GPS receiver and SDC, wait for a valid RMC sentence. When a valid RMC sentence is detected, get current time from it, open a log file named in current date in JST (YYMMDD.LOG) and start to logging. The received RMC sentence is always checked. If it indicates 'invalid' due to any reason, stop logging and re-start on it goes 'valid' again.
The Li-Ion cell is damaged easy by over charge/discharge. It must be strictly controlled in range of 2.750 to 4.200 volts to avoid risk of fire. The control program always checks while power is on and turn off automaticaly if it drops below 3.5 volts. The charge operation is done by a charge control IC (LTC4054L).
Because the GPS receiver recives the navigation signals from GPS satellites, its antenna must be mounted at a place where can see the sky. For portable use, the best place is on the head :-) and there are some placees that easy to mount, such as cap, backpack, shoulder strap and etc.
To turn on the power, hold down SW1 for a second and the GPS logger start to receive the GPS signals with a short beep. After the first fix, it start logging with two short beeps. The monitor LED indicates that if the data is being logged to the memory card or not. Blinking light indicates that data is invalid and not logged. Continuous light indicates that data is valid and being logged.