GPS Shield With SD Card Slot for Arduino V2.0 A

From LinkSprite Playgound
Revision as of 08:57, 27 December 2012 by Jingfeng (talk | contribs) (Programming)
Jump to: navigation, search

Introduction

This GPS shield is designed for Arduino Uno. This shield integrates SR-92 GPS module and a SD card slot. As the SR-92 module and SD works with 3.3V, a 3.3V power supply module is embedded to the shield. This shield can work independently from Arduino, and you can use the PC to receive the data from the board. User can use a serial terminal in PC to read the SR-92 data and read/write to the SD card.


Sd gps shield.jpg

Features

Not only handheld but also any other GPS applications can share the following major featuresof SR-92.

  • Easy adoption with best performance
  • Integrated antenna and EMC protection
  • Built-in backup battery allowing hot/warm starts and better performance
  • No external component demand, just connect and use.
  • Minimum RF and EMI efforts
  • Small size of 18 (W) x 21 (L) x 7 (H) (mm) with patch antenna of 18x18x4mm.
  • Fully implementation of ultra-high performance SiRFstarIII single chip architecture
  • High tracking sensitivity of -159dBm
  • Low power consumption of 40mA at full tracking
  • Hardware power saving control pin allowing power off GPS via GPIO
  • SR-92 could be arranged at best reception location inside housing
  • Firmware upgradeable for future potential performance enhancements

Application Ideas

Cautions

The warnings and wrong operations possible cause dangerous.

Schematic

GPS Shield with SD Card Slot for Arduino V2.0 Schematic in PDF

Specification

The GPS shield has many jumpers/headers:

  • P7: Arduino ISP download header
  • P3: GPS TX pin mode selection.
  • P9: It selects if 3.3V source from shield or 3.3V from Arduino is used.
  • P2: Serial port direct connection to GPS module so that direct reading is GPS module is possible. There are two LEDs to indicate the status.

Example1.png

There are two power control pins for SR 92. One is GPS_PWR. When it is low, the power is supplied to the SR92. The other control pin is GPS_PPS.

Example2.png

The SD module is connected to Arduino through SPI, they are connected to signal line using six 0 Ω Resistors.

Pin definition and Rating

The following material are for SR92 and are for reference only:

This GPS receiver comes with embedded antenna and only needs 5 pins to talk to your Arduino or MCU.

  • Pin 1: GND Ground
  • Pin 2: VCC Power supply of 3.3 ~ 3.5 VDC
  • Pin 3: TX Port A serial data output (GPS out); N-8-1, NMEA v3.00 output
  • Pin 4: RX Port A serial data input (GPS in); N-8-1, accepts commands from external applications, e.g. SiRFDemo.
  • Pin 5: 5 PWR_CTRL Hardware controlled power saving pin.
If this function is used, it is usually connected to a GPIO pin of a micro-processor.
"Low": for normal run
"High" or floating: turn off VCC for power saving
Tie it to low if this pin is not used.

Mechanic Dimensions

Usage

Hardware Installation

  • Software Serial Port Configuration:
    • Short TX and D2 of J2.
    • Short RX and D3 of J1.
  • Hardware Serial Port Configuration:
    • Short TX and MRX of J2.
    • Short RX and MTX of J1.


Programming

Sample code for Hard Serial Port:

<syntaxhighlight lang="c">

  1. include <SD.h>
  2. include <SoftwareSerial.h>

File myFile; const int chipSelect = 10; SoftwareSerial mySerial = SoftwareSerial(4,3);

unsigned char inByte;

void setup() {

 pinMode(4, INPUT);
 pinMode(3, OUTPUT);
 
 pinMode(2, OUTPUT);
 pinMode(6, OUTPUT);
 digitalWrite(2, LOW); 
 digitalWrite(6, LOW); 

///////////////////UART////////////////////////

 mySerial.begin(9600);
 Serial.begin(9600);
 Serial.println("Initializing SD card...");

////////////////////SD_INITIAL///////////////////////////

 if (!SD.begin(chipSelect)) 
 {
   Serial.println("initialization failed, or not present");
   return;
 }
 else
 {
   Serial.println("initialization done.");
 }

//////////////////////create/////////////

 if (SD.exists("example.txt")) 
 {
   Serial.println("example.txt exists.");
 }
 else 
 {
   Serial.println("example.txt doesn't exist.");
   Serial.println("Creating example.txt...");
   myFile = SD.open("example.txt", FILE_WRITE);
   myFile.close();
   
   if (SD.exists("example.txt")) 
   {
     Serial.println("example.txt create success!");
   }
   else 
   {
     Serial.println("example.txt create failed!");  
     return;
   }
 }
  /////////////////////////write////////////////////////
 myFile = SD.open("example.txt", FILE_WRITE);
 if (myFile) 
 {
   Serial.println("Writing to example.txt...");

// myFile.println("testing 1, 2, 3.");

   myFile.close();
   Serial.println("done.");
 } 
 else 
 {
   Serial.println("error opening example.txt");
 }
   ////////////////////////read/////////////////////////
 myFile = SD.open("example.txt");
 if (myFile) 
 {
   Serial.println("read example.txt:");
   while (myFile.available()) 
   {
     Serial.write(myFile.read());
   }
   myFile.close();
 } 
 else 
 {
   Serial.println("error opening example.txt");
 }
///////////////////////Removing//////////////////////////

/*Serial.println("Removing example.txt...");

 if(SD.remove("example.txt"))
 {
   Serial.println("success!.");
 }
 else
 {
   Serial.println("failed");
 }
 if (SD.exists("example.txt")){ 
   Serial.println("Removing example.txt failed!.");
 }
 else {
   Serial.println("Removing example.txt success!");  
 }
*/
  
  ////////////////////////////////////////////////

// myFile = SD.open("example.txt", FILE_WRITE);

  // Serial.end();
   //digitalWrite(5, LOW); 

}

/////////////////////////////////////////////////
/////////////////////////////////////////////////

void loop() {

 while(1)
 {
myFile = SD.open("example.txt", FILE_WRITE);
while(Serial.available()) 
 {
   inByte = Serial.read();
   myFile.print(inByte);
 }
 myFile.close();

} }

</syntaxhighlight>

FAQ

Please list your question here:

Support

If you have questions or other better design ideas, you can go to our forum to discuss or creat a ticket for your issue at linksprite support.

Resources

How to buy

Here to buy Shield With SD Card Slot for ArduinoSOLID_GPS_SD_SHIELD on LinkSprite Cart

See Also

Other related products and resources.

Licensing

This documentation is licensed under the Creative Commons Attribution-ShareAlike License 3.0 Source code and libraries are licensed under GPL/LGPL, see source code files for details.