Description:
Skylab GPS Module MT3329 SKM53 w/ Embedded GPS Antenna Arduino Compatible
SKM53 Series with embedded GPS antenna.It is based on MediaTek3329 single-chip architecture.SKM53 can be applied in a portable device and receiver like PND, GPS mouse, car holder, personal locator, speed camera detector and vehicle locator.
Features
- Ultra high sensitivity: -165dBm
- 22 tracking/66 acquisition-channel receiver
- WAAS/EGNOS/MSAS/GAGAN support
- NMEA protocols (default speed: 9600bps)
- Internal back-up battery and 1PPS output
- One serial port and USB port (option)
- Embedded patch antenna 18.2 x 18.2 x 4.0 mm
- Operating temperature range: -40 to 85
- RoHS compliant (Lead-free)
- Tiny form factor 30mm x20mm x 11.4mm
Specifications:
Receiver Type | L1 frequency band, C/A code 22 Tracking / 66 Acquisition-Channel | |
Sensitivity | Tracking Acquisition | -165dBm -148dBm |
Accuracy | Position Velocity Timing (PPS) | 3m 3D RMS without SA 0.1m/s without SA 60ns RMS |
Acquisition Time | Cold Start Warm Start Hot Start Re-Acquisition | 36s 33s 1s <1s |
Power Consumption | Tracking Acquisition Sleep/Standby | <30mA 3V Vcc 40mA TBD |
Navigation Data Update Rate | 1Hz | |
Operational Limits | Altitude Velocity Acceleration | Max 18,000m Max 515m/s Less than 4g |
Antenna Specifications | OutlineDimension Center Frequency Bandwidth Impedance Axial Ratio Polarization | 18.2 x 18.2 x 4.0 mm 1575 3 MHz 10 MHz min 50 3 dB max RHCP |
Mechanical requirements | Dimension Weight | 30mm x20mm x 11.4mm 9g |
Power consumption | VCC Current | 5V 5% 55mA(typical) |
Environment | Operating temperature Storage temperature Humidity | 40 ~ +85 (w/o backup battery) 0 ~ +125 |
Skm53 outputs data as NMEA-0183 (National Marine Electronics Association) protocol. NMEA protocol outputs data against some commands such as GGA, GLL, GSA, GSV, RMC, VTG, ZDA and DTM. The module has its default NMEA-0183 factory output setting which is only GGA, GSA ,GSV, and RMC are operational and baud rate is set to 9600 bps.
Kit include:
1 x Skm53 GPS Module
Mikroelectron Code:
//Property off: www.microcontroller-project.com * | |
//Written by : Usman Ali Butt * | |
//Dated : 11/6/2017 * | |
//********************************************************* | |
#include <TinyGPS.h> | |
#include <SoftwareSerial.h> | |
SoftwareSerial GPS(2,3); //RX, TX | |
//I used softserial because pins 0, and 1 are for | |
//communicating with pc/laptop | |
TinyGPS gps; | |
void gpsdump(TinyGPS &gps); | |
unsigned long fix_age; | |
bool feedgps(); | |
void getGPS(); | |
long lat, lon; | |
float LAT, LON; | |
void setup(){ | |
GPS.begin(9600); //GPS baud rate 9600 bps | |
Serial.begin(115200); //Pc/Laptop to Arduino communication at 115200 bps | |
} | |
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); | |
int year = date % 100; | |
int month = (date / 100) % 100; | |
int day = date / 10000; | |
int hour = time / 1000000; | |
int minute = (time / 10000) % 100; | |
int 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 | |
} | |
} |