PG03 MiniGPS and tracking recorder

First version : 24.04.2014

I have just retrieved a small gps buy from ebay, called Mini GPS (enf pg03), cost around 20€ …pl410961-mini_navigator_dt_efnpg03_displaying_accurate_time_synchronized_by_satelliteIt is a small size and portable GPS receiver with data collecting and calculating functions. It also provides indication of geograpic coordinates, directions, world time, distance, milage, and velocity information. Its high-sensitive direction indication guide user to go back original departure position or go to the presetted target position. The unit shows clear travelling date in detail, such as, the direction of the target position, distance, satellite time, and velocity information in usage.

This small unit do not provide to record tracking informations … so, start to disassemble it, in the goal to record NMEA sentence.

gps_disassembl

 

2014-04-11 21.14.05– Catch NMEA output:

The unit run with a Venus638FLP GPS chip, find the pin N°44, it’s an output of the
asynchronous UART port, solder a small part of wire on this pin, or follow the
track to the « test point« .

Venus638FLP chip

NewFile0.jpg

test point

disassemble01

– Hardware:

For the tests i have used a classic Arduino Pro Mini, fast and easy to use with her USB/FT232 integrated, also you can support Hackaday with a Trinket Pro 🙂

You need a SDCard shield to ensure recording the data from NMEA sentences, to avoid loss of data, I prefer use microSD shields with level translator like this one from Adafruit, or from Catalex (ebay).

– Connect to Arduino:

fritzing_Shem_of_Hack_bbGND to GND
VCC to RAW (SDcard run under 3.3v)
MISO to Pin 12
MOSI to Pin 11
SCK to Pin 13
CS to Pin 10

GND to GPS
Pin 2 (Arduino) to Pin 44 (GPS)

– Power:

Take 3.7v from the GPS unit to power your Arduino and SDCard Shield, the original batterie is too small, i have change it by a more larger batterie from a cellphone (1400mha), the power consomption is around 60ma.

– TinyGPS librarie:

Download the sketch, Sketch_TinyGPS_SDCard, ensures you have TinyGPS librarie
SD, and SoftwareSerial into your /libraries folder of your Arduino install.

In the code you can see:
//////////////////////////////////////////////////////////////////////////////////////////////
SoftwareSerial nss(2, 0);             // GPS Wire to Pin 2

void setup()
{
Serial.begin(57600);
nss.begin(9600);            // Baudrate of Venus638FLP is 9600
Serial.println(« Reading GPS »);
/////////////////////////////////////////////////////////////////////////////////////////////

In the line 56 you can choice what you want to log:

/////// Get and process GPS Data ///////

void gpsdump(TinyGPS &gps)
{
float flat, flon;                                                          // Lat, Long
float fkmph = gps.f_speed_kmph();                  // Speed in km/hr
float falt = gps.f_altitude();                                // +/- altitude in meters (seem to be elevation, in fact)
float fc = gps.f_course();                                    // Course in degrees
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
Serial.print( » lat « );
Serial.print(flat, 4);
Serial.print( » lon « );
Serial.print(flon, 4);
Serial.print( » kms « );
Serial.print(fkmph);
Serial.print( » course « );
Serial.print(fc);
Serial.print( » elevation « );
Serial.println(falt);
/////////////////////////////////////////////////////////////////////////////////////////////

Upload the sketch, put a micro sd card in the shield (FAT32), ensure you have a log.txt file in root, run the SerialMonitor, you can see the data writed on the SDCard.

set

arduino+sdcardsocketYou can use prototyp board to solder all of elements and put them in a nice small box.
(todo photo serialmonitor)