Introducing the I2C GPS Shield, an Arduino based shield that gives the user the ability to access most of the commonly used GPS data using the I2C protocol. The shield features an ultra high sensitive -165dBm GPS receiver. The shield is directly compatible with the Diecimila, Duemilanove and Uno. The shield can also be modified to work with the Arduino Mega by removing two solder jumpers and soldering external wires to the SDA and SCL lines.
Standard GPS modules output NEMA 0183 data in serial format which then need to be read and parsed. While there are several libraries out there that will parse the data some users still have trouble incorporating the overall code into their designs.
The I2C GPS Shield frees the user from most of the programming required to extract GPS data, instead it gives them the ability to get the data they want when they want it. The shield can also be switched to Serial Mode which will output the raw serial data from the GPS to the serial port or a set of digital IO pins configured to Software Serial ports.
One status register and thirty one data registers give the user access to most of the commonly used GPS data including:
The GPS comes set to a default update rate of 1 Hz but can be set to any update rate up to 10Hz. Typical access time to retrieve all available data is roughly 335 microseconds which is roughly 1500 times faster than reading the data serially when configured at a standard 9600 baud rate and over 4000 times faster when using High Speed Mode I2C.
Besides accessing data using I2C, the user also has the ability to configure the GPS via the control registers for such functions as baud rate, update rate, sentence configuration (only applicable to Serial Mode) and Hot\Warm\Cold Start.
The board features a 3D Fix indicator status LED, a 3V lithium battery holder on the underside of the board for an optional CR2025 battery and stackable shield headers so other shields can be stacked on top.
By default, Digital pins 7(Rx) and 8(Tx) are connected through a level translator circuit and give the user access to the raw serial data from the GPS engine. These pins are set to a high impedance mode at startup and can be switched on by accessing one of the control registers and setting the unit to Serial Mode. There are two 3-way solder jumpers that give the user the ability to switch the serial pins from D7 and D8 to the standard Arduino serial port on pins D1 and D0.