GPS Shield - Fastrax UP501

From Wiki

Jump to: navigation, search



The GPS Shield is base on the Fastrax UP501 receiver module , which with embedded GPS antenna enables high performance navigation in the most stringent applications and solid fix even in harsh GPS visibility environments. Support software(D2/D3) SerialPoart and mini SDcard interface.

It's very easy using. You just need read SerialPort and then will get the GPS data. Its also could use with Bluetooth Shield. So you can send GPS data to Android phone by Bluetooth.

The GPS Shield module interfaces to the customer’s application via one serial port, which uses CMOS voltage levels. support 3.3V / 5V IO operating. That's means 100% all Arduino mainboard compatible.

Model: SHD-GPS

Arduino Shield GPS 01.jpg Arduino Shield GPS 03.jpg


Application Ideas

GPS Shield is also an ideal receiver for GPS mouse applications, due to its compact design and easy interfacing.


The Fastrax UP501 receiver with embedded antenna is ideally suited for navigation systems, asset tracking devices and battery operated consumer products like personal navigation devices, handheld computers, cameras, and sports accessories. Fastrax UP501 is also an ideal receiver for GPS mouse applications, due to its compact design and easy interfacing.

ElecFreaks GPS Shield default firmware configuration:


Arduino Shield GPS 06.jpg


Define Descriptions
Receiver GPS L1 C/A-code, SPS
Channels 66 acquisition and 22 tracking
Update rate 1 Hz default (fix rate configurable up to 10Hz)
Acquisition Sensitivity (Cold start) -148 dBm (1)
Re-acquisition Sensitivity -158 dBm (1)
Navigation Sensitivity -165 dBm (1)
Supply voltage, VDD +3.0 V…+4.2 V (+3.0V…+5.5V for UP501H)
Back up supply voltage, VDD_B +2.0 V…+4.2 V (+2.0V…+5.5V for UP501H)
Power consumption, VDD 75 mW typical @ 3.0 V (2) (Typ. 115mW@3.0V in satellite search phase)
Power consumption, VDD_B 15 uW typical @ 3.0 V (during battery backup state).
Operating temperature range 40 ºC…+85 ºC (4)
Serial port protocol Port 0: NMEA
Serial data format 8 bits, no parity, 1 stop bit
Serial data speed (default) NMEA: 9600 baud
CMOS I/O signal levels (3) VIL: -0.3V…0.8V, VIH: 2.0V…3.6V, VOL:-0.3V…0.4V, VOH: 2.4V…3.2V
I/O sink/source capability +/- 2 mA max.
PPS output +/- 50 ns (RMS) accuracy

Pin definition and Rating

The GPS there are Reset button , Software SeiralPort(D2/D3), Hardware SerialPort(D0/D1), mircSD card interface(Hardware SPI)


Hardware Installation

mircSD Card Test Programming

Includes important code snippet. Demo code like :

// Demo_writeLn (C)2011 Henning Karlsen
// web:
// This program is a demo of the writeLn()-function.
// This demo will create a textfile, and fill it with 1MB
// of text. The file will be named 'BIGFILE.TXT'. If the
// file already exists it will first be deleted.
// SD card must be connected to the SPI port of your Arduino.
// Remember to select 115200 baud in the Serial Monitor.
#include <tinyFAT.h>
#include <avr/pgmspace.h>

 byte res;
char *verboseError(byte err)
   switch (err)
     return "Error reading MBR";
     return "MBR Signature error";
     return "Unsupported filesystem";
     return "Error reading Boot Sector";
     return "Boot Sector Signature error";
     return "Unknown error";
void setup() {
   // Initialize serial communication at 115200 baud
   // Initialize tinyFAT
   // You might need to select a lower speed than the default SPISPEED_HIGH
   if (res!=NO_ERROR)
     Serial.print("***** ERROR: ");
     while (true) {};
   Serial.println("This demo will create a textfile, and fill it with 1MB of text.");
   Serial.println("The file will be named 'BIGFILE.TXT'. If the file already exists it will first be deleted.");
   Serial.println("***** Send any character to start *****");
   while (!Serial.available()) {};
   if (file.exists("BIGFILE.TXT"))
   res=file.openFile("BIGFILE.TXT", FILEMODE_TEXT_WRITE);
   if (res==NO_ERROR)
     for (int cc=0; cc<1024; cc++)
       for (int i=0; i<8; i++)
       if (((cc+1)%16)!=0)
      if (((cc+1)%64)==0)
        Serial.print(" ");
        Serial.print(cc+1, DEC);
        Serial.println(" KB");
         Serial.println("** ERROR: Another file is already open...");
         Serial.print("** ERROR: ");
         Serial.println(res, HEX);
   Serial.println("***** All done... *****");
void loop()


Test mircSD card

Arduino Shield GPS 07.jpg


The projects and application examples.

Example One : Connect to PC

 **  Description:                                                    **
 **  This file is a sample code for your reference.                  **
 **                                                                  **
 **  Copyright (C) 2011 ElecFreaks Corp.                             **
 **  Created by ElecFreaks Robi.W /29 Sep 2011                      **
 **                                                                  **
 **                                       **
#include <NewSoftSerial.h>
#include <TimerOne.h>

#define rxPin 2
#define txPin 3

NewSoftSerial mySerial(rxPin, txPin);
void setup()
   // define pin modes for tx, rx pins:
   pinMode(rxPin, INPUT);
   pinMode(txPin, OUTPUT);
void loop()
  int i = 0;
  char someChar[32] = {0};
  // when characters arrive over the serial port...
  if(Serial.available()) {
      someChar[i++] =;
      //As data trickles in from your serial port you are grabbing as much as you can, 
      //but then when it runs out (as it will after a few bytes because the processor 
      //is much faster than a 9600 baud device) you exit loop, which then restarts, 
      //and resets i to zero, and someChar to an empty array.So please be sure to keep this delay 
    }while (Serial.available() > 0);

Step one , material preparation. Get kit from our store

There are be prepared a GPS Shield, a Arduino mainboard

Step two, connecting, DOUT-D2 DIN-D3

Up501 07.jpg

Step three, install Fastrax GPS WorkBench

Get the install software here and USB driver and USB-to-232 USB driver(XP, others OS check here). When driver installation starts, you will be prompted with the following dialog:
Up501 09.jpg
Click “Continue anyway”: If installation is successful, the Fastrax GPS Evaluation Kit port is available for use.

Step four, receiver data

To connect to your UP501 receiver, choose File -> Connect from the GPS Workbench menu. Port please select your RS232 COM, there is COM7 and Speed do not change it keep Automatic.
Up501 10.jpg
After your check OK button, if there show below figure 3s later, that mean your UART maybe reversed TX and RX.
Up501 11.jpg

The GPS Workbench loads the user interface modules, and shows them in the main window, There are GPRMC, GPGGA, GPGSA, GPGSV etc GPS data:

Up501 05.jpg

At last, Conclusion UP501 is activity easy to use, it can easy to get GPS data. There we do not careful analysis the GPS data, you could reference the User Guide of the Workbench or check “help” for the guide.

We also provided another free GPS software to you for more options: GPS Viewer
Up501 06.jpg





Example One : GPS, Bluetooth and Android Transparent Transmission

BGATT 06.jpg
Wireless device communication with each other is in our live everywhere. Here we will show you how to transparent transmit GPS receiver module’s GPS Data to PC or Android phone or at same time by Bluetooth. That’s means we will use Bluetooth device connect GPS receiver module and send GPS Data to other side Bluetooth device, then used a USB-to-RS232 adapter transmit the data to PC. If you still do not very clear , please read on , we divided this post into three steps:

1. Material preparation;

2. Transparent transmit to Android;

3. Transparent transmit to PC. Step One: material preparation.

It’s a cool project and maybe you will get good idea from this. Let’s take a look what material we need preparation.
Arduino Shield GPS 05.jpg

The project’s material include:

1. One Blueooth Shield.

2. One PC or Android phone, here we used the first and classic Android phone – G1, though it is a old guy.

3. One GPS Arduino mainboard.

Step two, transparent transmit to G1
1. Ok, if you connection is correct and then power on the GPS & Bluetooth device. The state LED will start Blink. Here we just used serial port send GPS receiver module data to Bluetooth device – Bluetooth Modem – Minimum pass-through module(HC-06), then send it to the paired device. So the next step is pair with G1.

2. How dose Bluetooth device pair with Android ? Just follow me , if you want more details please reference “Communication between Android and Arduino with Bluetooth(2)

–> Dowload our Bluetooth App here, and then install it, and you will see a Blueooth Bee icon.

–> Click the icon enter and then click the “Open Bluetooth” enable Bluetooth to make it discoverable. There is a dialog box will appear and select “Yes”.

–> Click “Open Bluetooth” and then Click “AS Client”, it will search the remote devices and return the device address. Click the address to pair and connect it and the paire password is “1234″, if connect succeed it will return to the menu and GPS data as below:

BGATT 04.jpg
From the figure, there are GPRMC, GPGGA, GPGSA, GPGSV data etc. Right now, the G1 has receive the original GPS data, we did not carefully analyse the GPS data. Maybe you can do it.

Step three, transparent transmit to PC

1. Keep on GPS & Bluetooth connection, and connect Bluetooth Bee to PC with XBee/Bluetooth Bee USB adapter.

2. Open a serial port tool, SecureCRT or sscom32E etc, Here we used sscom32E to monitor Serial port and send AT command. Select USB adapter COM correctlly, and BaudRate is 34800, and then send ‘AT’ for testing. If return ‘OK ‘ that means you have enter AT mode. (Note: HC-05 enter AT mode must set KEY pin to High Level, If you used XBee/Blutooth Bee USB adapter you just need select the KEY switch to ‘H’ on board).

3. Before pair with each other, you should set the Bluetooth Bee to Master mode, because of pair each other must be a Master and a Slave mode. The Bluetooth Modem – Minimum pass-through module(HC-06) is Slave mode at here. The command(More details about Bluethooth visit wiki) as below:

—-> at+role = 1 //Change the role.

<—- OK // Return

—–> at+init // Initialization

<—- OK

—–> at+inq //Search the remote devices and return address

<—-+INQ:11:6:30074,1F00,7FFF //Slave device address

—-> at+pair=11,6,30074,20 // pair request

<—- OK

—–> at+link=11,6,30074 //after paired successful, link to each other


BGATT 05.jpg

OK, we have transparent transmit GPS data to Android or PC side by Bluetooth, about GPS Workbench please read “Easy GPS Unit – Fastrax UP501 Receiver Module“.

Bill of Materials (BOM) /parts list

All the components used to produce the product.


Please list your question here:


If you have questions or other better design ideas,

Version Tracker

Revision Descriptions Release
v1.0 Initial public release date

Bug Tracker

Bug Tracker is the place you can publish any bugs you think you might have found during use. Please write down what you have to say, your answers will help us improve our


Additional Idea

The Additional Idea is the place to write your project ideas about this product, or other usages you've found. Or you can write them on Projects page.


How to buy

Click here to buy:

See Also

Other related products and resources.


This documentation is licensed under the Creative Commons Attribution-ShareAlike License 3.0 Source code and libraries are

licensed under GPL/LGPL, see source code files for details.

External Links

Links to external webpages which provide more application ideas, documents/datasheet or software libraries

Personal tools