Monday, October 7, 2013

Arduino + Parallax GPS module (PMB-648 SiRF)



PMB-648 GPS from Parallax Inc. (#28500)

Radioshack was having a huge clearance and was selling the Parallax GPS module for only $10!!! I saw this as an opportunity to experiment with a GPS and use it for a robot or some kind of tracking device in the future. 

Not only did I purchase this module, but I purchased some other sensors and kits from Radioshack and I will be doing some reviews and tutorials on how to use them. So, stay tuned for rapid fire posts this week!

Summary from Parllax's website:

What It Can Do

  • Tracks up to 20 satellites, with updates at least once a second
  • Provides geo-location data for robots, vehicles, custom GPS units
  • Receives signals outdoors or indoors* using a built-in antenna



First I simply plugged in the GPS module into the Arduino, and used some sample code from Parallax. (Link here: http://learn.parallax.com/KickStart/28500)

Then after successfully getting startlingly accurate coordinates (within 20 ft), I proceeded to mount it on a Arduino Proto-Shield and carefully soldered it on the board.



Tutorial:

First, Import the example file and libraries to the Arduino IDE (the zip file for Arduino 1.0 or above

The code should look like this:
//Parallax Code posted on Hong's Electronics Website:
#include 
#include "./TinyGPS.h"                 // Special version for 1.0

TinyGPS gps;
SoftwareSerial nss(6, 255);            // Yellow wire to pin 6

void setup() {
  Serial.begin(115200);
  nss.begin(4800);
  Serial.println("Reading GPS");
}

void loop() {
  bool newdata = false;
  unsigned long start = millis();
  while (millis() - start < 5000) {  // Update every 5 seconds
    if (feedgps())
      newdata = true;
  }
  if (newdata) {
    gpsdump(gps);
  }
}

// Get and process GPS data
void gpsdump(TinyGPS &gps) {
  float flat, flon;
  unsigned long age;
  gps.f_get_position(&flat, &flon, &age);
  Serial.print(flat, 4); Serial.print(", "); 
  Serial.println(flon, 4);
}

// Feed data as it becomes available 
bool feedgps() {
  while (nss.available()) {
    if (gps.encode(nss.read()))
      return true;
  }
  return false;
}
Note: If you still have the Arduino pre-release (beta) versions you need to use this zip file.

Second, Upload the files to the Arduino board.

Third, Wire the GPS module to the Arduino board:


You don't need to use a breadboard, but here is a picture of the basic wiring to get the GPS module up and running.

Plug the Yellow wire to pin 6 of the Arduino.

Plug the Red wire to +5v and the black wire to 1 of the 2 GND header on the Arduino.










Finally, Go to the serial monitor in the Arduino IDE and set the Baud Rate at 115200. I will not post a picture of what it looks like, but it should first print out READING GPS and then every 5 seconds should print out a coordinate. 

It prints it out in the format of Latitude,Longitude



Reading GPS
3X.XXXX, -8X.XXXX (Every 5 seconds)


Example GPS sentence, latitude, longitude, and other information encoded


Conclusion:


In conclusion, I think the Parallax PMB-648 SiRF is a great GPS module for anyone to start with and use for navigation, or telemetry projects. It is easy to wire up and start up with the Arduino.


For more details and wiring for other micro controllers click the link below in the credits:


Credits:

learn.parallax.com logo
http://learn.parallax.com/KickStart/28500

9 comments:

  1. I think On the off chance that a portrayal is executing, you can transfer from the IDE without needing to press the reset catch on the board. The portrayal is halted; the IDE sits tight for the transfer state, and after that begins the recently transferred representation. I would like to say Thanks for sharing this article.
    Why Wearable Tech

    ReplyDelete
  2. stay Reading GPS..... dont work :(

    ReplyDelete
  3. Sent or received SMSs can be seen via the device. Click this topspyingapps phone to find more info.

    ReplyDelete
  4. GPS data pullers are also known as GPS transponders. Contrary to data pushers, that send the position of the devices at regular intervals (push technology), GPS Tracker

    ReplyDelete
  5. The point of technology is to make life simpler and life's tasks easier. GPS tracking system does just that.géolocalisation téléphone

    ReplyDelete
  6. he customer can choose different variety of Electronics items through online method. He or she may contact the company Customer care center if he or she face any problem while choosing the Electronics products.
    bezel less monitor

    ReplyDelete
  7. The only drawbacks - a lower level in the hierarchy and the lower starting salaries than Electronics Engineers - can be overcome in the long run, since interested Electronics Engineering Technicians can study further for a 4-year Bachelors Degree, thus qualifying for the senior position of Electronics Engineering Technologist, who enjoys a position and salary comparable to Electronics Engineers.generatore capacitivo alta frequenza

    ReplyDelete