Cheap GPS module
Several of the Arduino projects I have been experimenting with have used a GPS module to provide accurate time and/or location information and in the case of the QRSS/WSRP QRP beacon a highly accurate GPS derived 1 second pulse is used for frequency calibration. A number of people have enquired about the GPS module I am using.
Most GPS devices have a limit on the altitude they work at, normally 60,000 feet or less. This is a legacy of the now defunct CoCom (Coordinating Committee for Multilateral Export Controls) restrictions. For my HAB project this restriction needs to be disabled and the GPS must be switched into 'flight mode' In the HAB community the favoured devices are made by U-BLOX
Therefore when I was sourcing a GPS I had search specifically for a inexpensive device using a U-BLOX.
I soon found something called a GY-GPS6MV2, it appears to be a generic design and is readily available on eBay from suppliers in China, Hong Kong and Singapore and can be purchased at the moment for around than £10 (approx $15) including postage!
It is also available from domestic suppliers but often at a much more inflated price, but you don't have to wait several weeks for them to be delivered.
There are many other GPS modules available but this module seems to be one of the cheapest available. it is often listed as a NEO6MV2 GPS Module Aircraft Flight Controller.
The module consists of a small PCB 25mm x 35 mm size with a separate ceramic antenna connected by a small lead which is 25mm x 25mm in size. The Antenna is quite heavy and isn't suited to Pico HAB payloads but for other uses is more than satisfactory.
On the board is a small button-cell battery to provide backup to the GPS chip and a small EEPROM connected to the GPS chip which I believe can store configuration(s). I haven't used it myself just using the module in it's default set up at the moment. For a schematic click here
The board has four connectors VCC, GND, TX (Transmit) and RX (Receive) and can be powered by the 5V supply on Arduino boards since it has a small regulator to provide the 3.3V needed.
In most projects all that is required is data out of the GPS. The GPS TX (data out) being connected directly to the microcontrollers RX (data in) The (0V and 3.3V) level shift of the signal is compatible with the TTL input of the microcontroller.
The GPS by default will start up and output standard NMEA sentences at 9600 Baud, until GPS position lock is achieved the NMEA sentences won't have a long/lat location. The module also has an LED which will start flashing once a lock is achieved.
There is no direct connection for the highly accurate 1PPS (pulse per second) signal that can be used for frequency calibration, but the flashing LED is driven by pin 3 of the GPS module which is the 1PPS (pulse per second) signal required.
The 1PSS signal, like the TX is either 0V and 3.3V, in order to use it a small lead will need to be soldered onto the board, either directly onto Pin3 of the GPS chip, or alternatively on to the small current limiting resistor used by the LED, as indicated below.
Andrew Garratt, MØNRD, is a regular contributor to AmateurRadio.com and writes from East Midlands, England. Contact him at [email protected].Most GPS devices have a limit on the altitude they work at, normally 60,000 feet or less. This is a legacy of the now defunct CoCom (Coordinating Committee for Multilateral Export Controls) restrictions. For my HAB project this restriction needs to be disabled and the GPS must be switched into 'flight mode' In the HAB community the favoured devices are made by U-BLOX
Therefore when I was sourcing a GPS I had search specifically for a inexpensive device using a U-BLOX.
s |
The GY-GPS6MV2 as supplied |
It is also available from domestic suppliers but often at a much more inflated price, but you don't have to wait several weeks for them to be delivered.
There are many other GPS modules available but this module seems to be one of the cheapest available. it is often listed as a NEO6MV2 GPS Module Aircraft Flight Controller.
The module consists of a small PCB 25mm x 35 mm size with a separate ceramic antenna connected by a small lead which is 25mm x 25mm in size. The Antenna is quite heavy and isn't suited to Pico HAB payloads but for other uses is more than satisfactory.
On the board is a small button-cell battery to provide backup to the GPS chip and a small EEPROM connected to the GPS chip which I believe can store configuration(s). I haven't used it myself just using the module in it's default set up at the moment. For a schematic click here
The board has four connectors VCC, GND, TX (Transmit) and RX (Receive) and can be powered by the 5V supply on Arduino boards since it has a small regulator to provide the 3.3V needed.
In most projects all that is required is data out of the GPS. The GPS TX (data out) being connected directly to the microcontrollers RX (data in) The (0V and 3.3V) level shift of the signal is compatible with the TTL input of the microcontroller.
The GPS by default will start up and output standard NMEA sentences at 9600 Baud, until GPS position lock is achieved the NMEA sentences won't have a long/lat location. The module also has an LED which will start flashing once a lock is achieved.
There is no direct connection for the highly accurate 1PPS (pulse per second) signal that can be used for frequency calibration, but the flashing LED is driven by pin 3 of the GPS module which is the 1PPS (pulse per second) signal required.
The 1PSS signal, like the TX is either 0V and 3.3V, in order to use it a small lead will need to be soldered onto the board, either directly onto Pin3 of the GPS chip, or alternatively on to the small current limiting resistor used by the LED, as indicated below.
Showing the GPS 1pps points |
Hi Andrew,
I have recently brought one of this gps module for my final year project. i am using it with arduino uno. but it’s not showing any gps data over serial monitor. could you please tell me how you managed to get data? the green led is flashing lie every second, but there is no gps data coming into the serial monitor. First i thought because i am inside of a room and trying it, so i went outside and turned it on for like 10 mins and nothing happened. could you please help me on this issue
Thanks
George Emmanuel
George, the arduino UNO only has one standard serial port used for the serial monitor. In order to see raw GPS data it must be read in on a software serial port and then send back on the standard serial.
Connect the TX pin of the GPS to pin 10 on the arduino (no need to connect the RX pin), the following code should then read in data on the software serialport from the gps and output it to the serial monitor, you must set the baud rate of the serial monitor accordingly 57600 baud.
#include
SoftwareSerial gpsSerial(10, 11); // RX, TX
void setup()
{
// Set up main serial port (the serial monitor)
Serial.begin(57600);
// Output some data
Serial.println(“Echo GPS data”);
// set up the SoftwareSerial port
gpsSerial.begin(9600);
}
void loop() // run over and over
{
if (gpsSerial.available())
{
//read data from gps serial and output to main serial port
Serial.write(gpsSerial.read());
}
}
Hope that makes sense..
However this will be the raw NMEA sentences.. to decode them I suggest you look at the TinyGPS library http://arduiniana.org/libraries/tinygps/
This will take the data and decode to give the coordinates, it is well documented.
this module is cheap but has issues when you try and use interrupts for 7 segment led display it flakes out, comment out the interupt and it works, where as other modules still work eg gps622r at £25 , was cheap £10 but am not very impressed with this random not working-ness wont be buying them for use with LED / gps items which is shame..