The module has a built-in GPS antenna and also the Skylab SKM53 chip.
The moment when I tried to plug the module on a breadboard, I realised that the pitch of the pins is not of regular size, its 2mm instead of the standard 2.54mm that we all get used to. Bummer. (Pitch is the distance between each pins, the standard distance is 0.1 inch which also translates to 2.54mm)
I had to make a PCB that will convert it into the standard 2.54mm pitch.
Without a laser printer, I had to trace the PCB on a transparency sheet.
As usual, I’m using the photoresist method.
Applying some minor corrections before etching the board.
Had to draw some dots to guide my drilling process.
The final product.
I’ll admit that it’s not the best soldering work. Just wanted to get it up and running.
I modified a sketch that I found online to display the GPS data on an LCD.
The sketch requires two libraries :
1. SoftwareSerial (included in Arduino 1.0 and above)
2. TinyGPS
The GPS module takes around a minute to get a lock on the location. The LCD will then display the latitude and longtitude of the current location.
To find out where the corresponding latitude and longtitude is, you can enter it into the search bar of http://maps.google.com in the form of latitude,longtitude.
Hello Waihung i am using skylab G229 gps receiver and arduino uno but am not getting any results. It just shows ******** i really need help
i got this error. how to fix it?
In file included from gps.ino:14:0:
C:\Users\kazehana\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:25:22: fatal error: WProgram.h: No such file or directory
#include “WProgram.h”
^
compilation terminated.
Please tell us
Which Arduino board you have used ?
How much time required to get values ?
You tested the module outdoor or indoor ?
I`am testing the module using Arduino UNO or DUE
I tried a lot of codes but my result shown like this..
Latitude : 0.0000000 :: Longitude : 0.0000000
Latitude : 0.0000000 :: Longitude : 0.0000000
Latitude : 0.0000000 :: Longitude : 0.0000000
do you know what is the problem?
hello.can i know where i can buy the gps receiver skg13c and also the compass board in malaysia.hope u can help me.thanks.
Hi. You can buy the GPS receiver here http://www.cytron.com.my/viewProduct.php?pcode=SKGPS-53&name=SKM53%20GPS%20Starter%20Kit
They are a Malaysian company.
I just look through your post, you didn’t use any level shifter from the GPS output? From the data sheet, the output is 2.85V LVTTL logic level.
I think the module I have already have a level shifter.
You can refer to this data sheet in page 3.
http://ber.googlecode.com/files/SKM53_DS_030609.pdf
TXD and RXD is 70 percent x 5v which is still more than 3V.
5V MCU will treat any signal > 3V as high so no problem.
Okay, thanks for the info đ
Then I would like to ask what footprint do you use to convert the 2mm spacing pins to 2.54mm spacing pins?
It’s under con-headers-jp library in Eagle.
Wai Hung
06-27-2013
“I think the module I have already have a level shifter.
You can refer to this data sheet in page 3.
http://ber.googlecode.com/files/SKM53_DS_030609.pdf”
Hi Wai Hung.
Firstly, great job.
Secondly, more accurate datsheet direct from Skylab.
http://www.skylab.com.cn/en/product_show.aspx?id=135&classId=281
http://www.skylab.com.cn/ZDXUpLoadFiles/2014051121261773.pdf
Njoy everyone.
please anyone help me>>>
i use arduino mega 2650
and i connect RX on gps>>>>>>>TO TX3 (14)on arduino
and i connect TXon gps >>>>>>>TO RX3(15) on arduino
so in software
NewSoftSerial GPS(15,14);
but these reading shown ((Latitude: 0.0000000 :: Longitude: 0.0000000))
i go out and wait the gps about 15 min and nothing
whats the problem?????????????????
Hi. You don’t need to use the NewSoftSerial library as the Mega have more serial channels.
For convenience of using back the same code, you must use pins that are Interrupt capable.
They are pins 2, 3, 21, 20, 19, 18 on the Mega. If you use back these pins, you don’t need to change the code that I’ve written.
The list of Interrupt pins are available here :
http://arduino.cc/en/Reference/attachInterrupt
Hope this helps.
Thanks(( Waihung)) for your reply>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
i connect the RX on gps to the 18 on arduino
i connect the TX on gps to the 19 on arduino
the code without lcd became:
#include
#include
unsigned long fix_age;
SoftwareSerial GPS(19,18);
TinyGPS gps;
void gpsdump(TinyGPS &gps);
bool feedgps();
void getGPS();
long lat, lon;
float LAT, LON;
void setup(){
GPS.begin(9600);
Serial.begin(9600);
Serial.begin(9600);
}
void loop(){
long lat, lon;
unsigned long fix_age, time, date, speed, course;
unsigned long chars;
unsigned short sentences, failed_checksum;
// retrieves +/- lat/long in 100000ths of a degree
gps.get_position(&lat, &lon, &fix_age);
// time in hh:mm:ss, date in dd/mm/yy
/*gps.get_datetime(&date, &time, &fix_age);
year = date % 100;
month = (date / 100) % 100;
day = date / 10000;
hour = time / 1000000;
minute = (time / 10000) % 100;
second = (time / 100) % 100;
Serial.print(“Date: “);
Serial.print(year); Serial.print(“/”);
Serial.print(month); Serial.print(“/”);
Serial.print(day);
Serial.print(” :: Time: “);
Serial.print(hour); Serial.print(“:”);
Serial.print(minute); Serial.print(“:”);
Serial.println(second);
*/
getGPS();
Serial.print(“Latitude : “);
Serial.print(LAT/100000,7);
Serial.print(” :: Longitude : “);
Serial.println(LON/100000,7);
}
void getGPS(){
bool newdata = false;
unsigned long start = millis();
// Every 1 seconds we print an update
while (millis() – start < 1000)
{
if (feedgps ()){
newdata = true;
}
}
if (newdata)
{
gpsdump(gps);
}
}
bool feedgps(){
while (GPS.available())
{
if (gps.encode(GPS.read()))
return true;
}
return 0;
}
void gpsdump(TinyGPS &gps)
{
//byte month, day, hour, minute, second, hundredths;
gps.get_position(&lat, &lon);
LAT = lat;
LON = lon;
{
feedgps(); // If we don't feed the gps during this long routine, we may drop characters and get checksum errors
}
}
still display :((Latitude: 0.0000000 :: Longitude: 0.0000000))
what do you thing???
Your code seems correct. Have you tried going outdoors?
The GPS chip won’t get signal if you’re inside a building or house.
im also facing this kind of problem..my code is exactly like your code. i stay at outside almost 20 min but still got (Latitude: 0.0000000 :: Longitude: 0.0000000). im using the DFRduino romeo v2 board. so what is the problem actually?
Since your Romeo board is based on an Uno/Duemilanove, you should only use Digital Pin 2 and 3 for the GPS RX/TX because only both of these pins are interrupt capable.
oh really..i connected those on digital pin 8 and 9. ok, thanks for your help.
im suing pin 2 and 3 for GPS RX/TX but still showing the same result. do you have another solution?
Hey, thanks so much for this helpful information. I’ve gotten my SKM53 hooked up. I am reading my latitude and longitude, but my date and time only displays the year and something funny happens with the seconds. It displays 1-9 seconds and then it goes blank for over half a minute, only to come on between 40-50 seconds to display random characters until it reaches 0 and starts displaying 1-9 again. Nothing else of the date and time shows. What might be going on? Thanks!
It worked … I could not imagine using the pins 10 and 11 as Rx and Tx …
Thank you!
Yes, with the software serial library you can set different pins to be the RX and TX.
I’ve not used an Arduino Mega before so I’m not sure whether my code will work on it or not since I’m using an UNO.
Anyway glad you worked it out đ
There’s a secret about your post. ICTYBTIHTKY
Butter toffee… That sounds amazing! Thanks for your sweet words, Liz. I’m determined to keep going with my NaNo project despite all the other nonsense going on. Working on it (and following along with all of my friends’ NaNo progress!) has been a great and uplifting distraction.
The pin 1280 has:
 “0” Rx
 “1” Tx
“18” Tx1
“19” Rx1
“16” Tx2
“17” Rx2
“14” Tx3
“15” Rx3
Hi Waihung!
I believe my problem is related to the Tx and Rx ports used. How do I change them? It is directly in the code or have to change them in the library SoftwareSerial.h?
Hello friend!
Very cool your code …
I’m testing with a MEGA1280, however, serial LCD and only show:
Latitude: 0.0000000 :: Longitude: 0.0000000
Any idea what’s wrong?
Hug!
Rodrigo Carpe
Brazil
You need to go outside to get a GPS signal. It might take up to 2-3 minutes depending on the satellite signals.