GPS Receiver with Antenna (5V TTL SERIAL)
This is New Version (V2) of our famous GPS Receiver with Antenna (5VTTL Serial) , with 4pin 2.54mm pitch Berg strip connector option. It is made with third generation POT (Patch Antenna On Top) GPS module. The on board 3V3 to 5V level convertor enable us to directly interface with normal 5V Microcontrollers. Its low pin count (4Pin) will make it easy to interface and it is bread board friendly with 2.54mm(0.1″) Pitch connector pads. The 4 Pins are 5V,TXD,RXD and GND. Yes, there is no setting required , just plug in to the power (5v), your raw data (NMEA0183) is ready at TX pin !. This is a stand alone 5V GPS Module and requires no external components .It is built with internal RTC Back up battery. It can be directly connected to Microcontroller’s USART.
With the use high gain GPS engine providing a solution that high position and speed accuracy performances as well as high sensitivity and tracking capabilities in urban conditions & provides standard NMEA0183 strings in “raw” mode for any microcontroller. The module provides current time, date, latitude, longitude, speed, altitude and travel direction / heading among other data, and can be used in a host of applications, including navigation, tracking systems, fleet management,mapping and robotics.
The GPS chipsets inside the module are designed by MediaTek Inc.,which is the world’s leading digital media solution provider and largest fab-less IC company in Taiwan. The module can support up to 51 channels. The GPS solution enables small form factor devices. They deliver major advancements in GPS performances, accuracy, integration, computing power and flexibility. They are designed to simplify the embedded system integration process.
Features:
- Single 4-7VDC supply @ 55 mA (typical)
- TTL asynchronous serial interface
- Data output Baud rate: 9600 bps(Default)
- Standard NMEA0183 output format
- Standard 4-pin Berg strip interface -2.54mm(0.1″) Pitch
- Module will be provided with two type berg strip (Normal & Right angled)
- Based on MediaTek Single Chip Architecture.
- Patch Antenna Size: 25mm x 25mm x 4mm
- Low Power Consumption: 55mA @ acquisition, 40mA @ tracking
- L1 Frequency, C/A code, 51-channel
- High Sensitivity: Up to -158 dBm tracking, superior urban performances
- Position Accuracy: < 3m CEP (50%) without SA (horizontal)
- Cold Start is Under 36 seconds (Typical)
- Warm Start is Under 34 seconds (Typical)
- Hot Start is Under 1 second (Typical)
- Max. Update Rate : 5Hz (Default: 1 Hz)
Specifications:
PIN Diagram:
GPS Receiver with Antenna (5V TTL SERIAL) PIN descriptions are as below
Layout:
How to Test:
1. Test your GPS Receiver with PC:
-
USB to Serial Converter (5V/3V3) is used to connect GPS Receiver (with Antenna 5V-TTL Serial). When USB cable is connected to the converter, “PWR LED”(Blue) on the top of converter module and “PWR LED”(Blue) on the top of GPS module glows , which shows the power indication.
-
Here a sample test is shown using RhydoLabz USB to Serial Converter (5V/3V3).The connection details of GPS module with USB to Serial Converter (5V/3V3) and interfacing requirements of GPS Receiver (with Antenna 5V-TTL Serial) to PC are shown below.
-
Many embedded devices communicate over the serial port connection as most modern computers lack a hardware serial port; USB adapters provide the serial interface. The USB to Serial Converter (5V/3V3) makes USB communication with a serial device,that is shown below
- For a quick tutorial on USB to Serial Converter (5V/3V3) and connection details please read the blog…
- The “PWR” pin of USB to Serial Converter is connected to VCC pin of the GPS module(Red jumper wire) GND pin is directly connected GND pin(Black jumper wire), of GPS. TXD pin of GPS is connected to the RX pin(Blue jumper wire) of the USB to Serial Converter and RXD pin of the GPS connected to the TX (Green jumper wire) pin of USB to Serial Converter. That connection is shown below.
- If the GPS receiver is new, or has not been used for some time, it may need 15 minutes or so to receive a current almanac.
- Here one sample test was done using GPRMC(Recommended Minimum Specific GNSS Data) header . GPRMC tells the latitude, longitude, speed, time and date. The details of GPRMC message is shown below
- Letter ‘V‘ in GPRMC header represents a weak signal received by the GPS receiver,as shown below.
-
When GPS receiver gets stronger signal from the satellite, the received data is as shown in the figure. Here the letter ‘A’ in GPRMC header represent the strong signal.
2. Test your GPS Receiver with rhydoLABZ Tracking Software:
-
Here on sample test is shown using RhydoLabz USB to Serial Converter (5V/3V3) .With the help of Hyper terminal or any other terminal software, you will only be able to see the full NMEA protocol coming in ASCII format and rhydoLABZ tracking software plot your location with the help of GOOGLE map.
-
Install the rhydoLABZ Tracking Software (Windows) in your PC shown below.
-
Open rhydoLABZ Tracking software ,select appropriate COM port from “Select Comport “. The Latitude and Longitude details of the device will be shown in the rhydoLABZ Tracking software ,you can get the map view of your location by simply clicking “plot”.
3. Test your GPS Receiver with Arduino:
- Arduino board suitable with any micro-controller is used to connect GPS module and data is available at Tx pin of GPS module which is connected to Rx pin of the Arduino board.
- Testing with Arduino board, sample program is shown below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
/******************************************************************************************* Program to read GPS data and display to serial monitor. BOARD : Arduino Duemilanove *******************************************************************************************/ int Gpsdata; // for incoming serial data unsigned int finish =0; // indicate end of message unsigned int pos_cnt=0; // position counter unsigned int lat_cnt=0; // latitude data counter unsigned int log_cnt=0; // longitude data counter unsigned int flg =0; // GPS flag unsigned int com_cnt=0; // comma counter char lat[20]; // latitude array char lg[20]; // longitude array void Receive_GPS_Data(); /******************************************************************************************* Function : setup() Description : Use it to initialize variables, pin modes, start using libraries, etc.The setup function will only run once, after each power up or reset of the Arduino board. *******************************************************************************************/ void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps } /******************************************************************************************* Function : loop() Description : loops consecutively, allowing your program to change and respond.Use it to actively control the Arduino board. *******************************************************************************************/ void loop() { Receive_GPS_Data(); Serial.print("Latitude : "); Serial.println(lat); Serial.print("Longitude : "); Serial.println(lg); finish = 0;pos_cnt = 0; } /******************************************************************************************* Function : Receive_GPS_Data() Description : finding Latitudse and longitude from GPRMC message *******************************************************************************************/ void Receive_GPS_Data() { while(finish==0){ while(Serial.available()>0){ // Check GPS data Gpsdata = Serial.read(); flg = 1; if( Gpsdata=='$' && pos_cnt == 0) // finding GPRMC header pos_cnt=1; if( Gpsdata=='G' && pos_cnt == 1) pos_cnt=2; if( Gpsdata=='P' && pos_cnt == 2) pos_cnt=3; if( Gpsdata=='R' && pos_cnt == 3) pos_cnt=4; if( Gpsdata=='M' && pos_cnt == 4) pos_cnt=5; if( Gpsdata=='C' && pos_cnt==5 ) pos_cnt=6; if(pos_cnt==6 && Gpsdata ==','){ // count commas in message com_cnt++; flg=0; } if(com_cnt==3 && flg==1){ lat[lat_cnt++] = Gpsdata; // latitude flg=0; } if(com_cnt==5 && flg==1){ lg[log_cnt++] = Gpsdata; // Longitude flg=0; } if( Gpsdata == '*' && com_cnt >= 5){ com_cnt = 0; // end of GPRMC message lat_cnt = 0; log_cnt = 0; flg = 0; finish = 1; } } } } |
- When Arduino board receive GPS data,the datas are displayed on serial monitor is as shown below.
4. Test your GPS Receiver with PIC16F877A
- When interfacing GPS TTL with PIC16F877A microcontroller, The TXD pin of the GPS TTL is connected to RX pin of the microcontroller,connection diagram is shown below.
- Testing GPS TTL with PIC16F877A, sample program is shown below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
/******************************************************************************************* Microcontroller -- PIC 16 F877A - 40-pin-8-bit. Clock Frequency is 20 MHz -- Period in 200 Nano second baudrate-9600.Only the output message – $GPRMC (Recommended minimum specific GNSS data) is read. The latitude and Longitude value is displayed in the Serial monitor. *******************************************************************************************/ #include<pic.h> /******************************************************************************************* GLOBAL VARIABLES *******************************************************************************************/ unsigned char Gpsdata; // for incoming serial data unsigned int finish =0; // indicate end of message unsigned int pos_cnt=0; // position counter unsigned int lat_cnt=0; // latitude data counter unsigned int log_cnt=0; // longitude data counter unsigned int flg =0; // GPS flag unsigned int com_cnt=0; // comma counter unsigned char lat[20]; // latitude array unsigned char lg[20]; // longitude array /******************************************************************************************* FUNCTION DEFINITIONS *******************************************************************************************/ void UART_Initilization(); void UART_String(const unsigned char *dat); void main() { TRISC = 0X80; UART_Initilization(); // uart Initialization GIE = 1; // Globel interrupt enable bit PEIE = 1; // Peripheral interrupt enable bit while(1){ while(finish!=1); UART_String("Latitude : "); // printing GPS data to serial monitor UART_String(lat); UART_String("\r\n"); UART_String("Longitude : "); UART_String(lg); UART_String("\r\n"); finish = 0; pos_cnt = 0; } } /******************************************************************************************* Function : interrupt ISR() Description : interrupt service *******************************************************************************************/ void interrupt ISR() { if(RCIF){ RCIF = 0; Gpsdata = RCREG; flg = 1; if(finish == 0){ if( Gpsdata=='$' && pos_cnt == 0) // finding GPRMC header pos_cnt=1; if( Gpsdata=='G' && pos_cnt == 1) pos_cnt=2; if( Gpsdata=='P' && pos_cnt == 2) pos_cnt=3; if( Gpsdata=='R' && pos_cnt == 3) pos_cnt=4; if( Gpsdata=='M' && pos_cnt == 4) pos_cnt=5; if(Gpsdata=='C' && pos_cnt == 5 ) pos_cnt=6; if(pos_cnt==6 && Gpsdata ==','){ // count commas in message com_cnt++; flg=0; } if(com_cnt==3 && flg==1){ lat[lat_cnt++] = Gpsdata; // latitude flg=0; } if(com_cnt==5 && flg==1){ lg[log_cnt++] = Gpsdata; // longitude flg=0; } if( Gpsdata == '*' && com_cnt >= 5 && flg == 1){ lat[lat_cnt] ='\0'; // end of GPRMC message lg[log_cnt] = '\0'; lat_cnt = 0; log_cnt = 0; flg = 0; finish = 1; com_cnt = 0; } } } } /******************************************************************************************* Function : USART_Initilization Description : uart basic initilizatin *******************************************************************************************/ void UART_Initilization() { TXEN = 1; SYNC = 0; BRGH = 1; SPBRG = 0X81; SPEN = 1; CREN = 1; RCIE = 1; RCIF = 0; } /******************************************************************************************* Function : USART_String Description : transmiting string of datas *******************************************************************************************/ void UART_String(const unsigned char *dat) { while(*dat!='\0'){ TXREG = *dat; while(TRMT!=1); dat++; } } |
- When PIC16F877A microcontroller receive GPS data,the datas are displayed on serial monitor is as shown below.
Resources:
Schematic
Mini GPS User Manual
Mini GPS Tool
rhydoLABZ Tracking Software (Windows)
How to Buy:
Click here to buy rhydoLABZ GPS Receiver with Antenna (5V TTL SERIAL)
Click here to buy rhydoLABZ USB to Serial Converter (5V/3V3)
Click here to buy GPSBee
Click hear to buy rhydoLABZ XBee Explorer – RS232.
Click hear to buy RhydoLabz XBee Explorer Dongle.
Support:
Please share your ideas with us, visit our forum for discussion
Frequently Asked Questions(FAQ):
Q.What is the use of GPS?
Ans.GPS receivers collect signals from satellites. They display the user’s position, velocity, date and time, as needed for their some other applications. Some display additional data, such as distance and bearing to selected waypoints or digital charts.
Q.What is NMEA0183?
Ans.NMEA0183, or NMEA for short, stands for National Marine Electronics Association, a US standards committee that defines data message structure, contents and protocols to allow the GPS receiver to communicate with other pieces of electronic equipment. NMEA 0183 is a standard data communication protocol used by GPS receivers.
Q. Where do we mount GPS?
Ans. GPS data available around the world. The GPS receiver will need to have a clear View of sky so that the GPS receiver can triangulate at least three satellites. We may find problem receiving signals in indoor area. The GPS signal may blocked by metal, deep forest, mountains etc.
Leave a Reply
You must be logged in to post a comment.