
GPS Module -
for RP6 Robot, but also useable for general applications
e.g. RC Models
Introduction:
1. Description
The GPS Antenna Module has very small form factor 38 x 23 mm, height is 4,1 mm
nominal and the weight is just 6 g (typ.). The low power consumption (approx. 100 mW)
including the embedded antenna and backup battery – ready for your application.
The interface is an I2C Bus slave with a max. speed of 400kHz which supports SW reset
and salve address change in a wide range to suit (nearly) every application.
The receiver is based on NMEA-0183 rev. 3.01 protocol and provides the information of
the GGA, RMC, GSA and VTG message in several registers which can be easily read by
many micro-controller available on the market.
2. PIN OUT GPS-Module:
PIN1 VDD
PIN2 SCL
PIN3 SDO
PIN4 n/c
PIN5 n/c
PIN6 n/c
PIN7 n/c
PIN8 GND
PIN9 GND
JM3 Engineering Inh. J. Maisel Dobelweg 18, D-85567 Grafing / Munich
Email: JHM@JM3-Engineering.de
Version: 1.25 Nov 01, 2013 page: 1
PIN1 PIN9

3. Connecting to RP6 I/O Extension Board
The picture shows the I/O Extension board with the plugged-in GPS module.
Keep in mind that the distance to the board should be at least 15 -25 mm for best
reception performance.
4. Software
The data access works over I2C Bus (for details on Registers see Chapter 7.0). Max
speed is 400kHz. Standard NMEA0183 messages GGA, RMC, GSA and VTG are
supported which can be read / modified via register access. After startup of the GPS
module you can read default data from the registers, which will be updated after the
first GPS data will be received (approx. 4 sec.).
5. I2C SW Reset
I2CTWI_transmit2Bytes(ADR_GPS_MODULE, 0x00, 0x06);
// SW reset command according to I2C-bus specification and user manual Rev. 5
Standard slave Address is: 0xC8
JM3 Engineering Inh. J. Maisel Dobelweg 18, D-85567 Grafing / Munich
Email: JHM@JM3-Engineering.de
Version: 1.24 Nov 01, 2013 page: 2

5.3 I2C SlaveAddress
Slave Address is: 0xC8 (Standard) and can be changed in the range from 0xC8 to 0xDF.
After sending the command the module must be power cycled!
I2CTWI_transmit3Bytes(ADR_GPS_MODULE, 0x00, 0x04, addr);
// SW reset command according to I2C-bus specification and user manual Rev. 5
5.4 Writing commands to GPS Module
I2CTWI_transmit3Bytes(ADR_GPS_MODULE, cmd_Reg, cmd_Value);
// Write command to GPS Module
ADR_GPS_MODULE: slave address,
cmd_Reg: write register address
cmd_Value: command value
5.5 Reading data from I2C
Auto increment is supported.
I2CTWI_readRegisters(ADR_GPS_MODULE, 0x20, &buffer[0], n);
// read register from GPS Module
ADR_GPS_MODULE: slave address,
buffer: read register buffer
n: number of bytes to read
6. Technical Data
VDD = 5.0 V +/- 5%
IDD <= 20 mA (typ.)
Bus Speed: <= 400 kHz
GPS Antenna: build in
Backup battery: (automatic rechargeable, while on power)
Temperature Range: -10 to 65 °C
Form factor: 45 x 23 mm
Weight = approx.. 6 g
Receiver specification (UC530):
Receiver: GPS L1 C/A-code, SPS
Channels: 66/22 (search/track)
Tracking sensitivity: -165 dBm typ.
Navigation sensitivity: -148 dbm typ (cold aq.)
Update rate: 1 sec
Position accuracy: 3.0m (67%) typ Horizontal
5.0m (67%) typ Vertical
0.02 m/s (50%) typ. Velocity
First Time to Fix: typ. 31 sec (note 1)
Protocol: NMEA-0183 rev. 3.01
Note 1: With nominal GPS signal levels -130dBm.
Hint: After the module is the first time switched on or after a long time not being switched on, the
auto-positioning (location detection) can take up to 5 min.
JM3 Engineering Inh. J. Maisel Dobelweg 18, D-85567 Grafing / Munich
Email: JHM@JM3-Engineering.de
Version: 1.24 Nov 01, 2013 page: 3

7. Register (SW 1.2)
Ext Address Description
0x20 WHO_AM_I -> address of the device 0xC8 (Range 0xC8 to 0xDF)
0x21 LAT_DG -> degrees
0x22 LAT_MIN -> minutes
0x23 LAT_MIN_D_L -> decimal part of minutes Low
0x24 LAT_MIN_D_H -> decimal part of minutes High
0x25 LON_DG -> degrees
0x26 LON_MIN -> minutes
0x27 LON_DG_MINF_L -> decimal part of minutes Low
0x28 LON_DG_MINF_H -> decimal part of minutes High
0x29 Status Flags
MSB LSB
STAT1 STAT0 FIX 1 F IX0 AUTO SPU EW NS
STAT1 STAT0 AUTO
0 0 val id 1 data not valid
0 1 i nvalid 0 autonomous
1 0 GPS Com Error
1 1 n. def.
SPU
0 kn
1 kmph
EW
1 est
0 west
NS
1 north
0 south
0x2A FIX_IND
MSB LSB
UI_FIX FIXI _3 FIXI_2 FIXI_1 FIX I_0
Fix indi cator 1 = GPS fix (SPS) 2 = DGPS fix 3 = PPS fix 4 = Real Time Kine matic 5 = Float RTK
6 = estimated (de ad reckoning) (2.3 feature) 7 = Manual input mode 8 = Simulation mode
UI_FIX = HW signal from UC530
0x2B HDOP
0x2C HDOP_D
0x2D Numb er of satelli tes
0x2E COURSE_T_L -> True heading Low Byte
0x2F COURSE_T_H -> True heading High Byte
0x30 COURSE_T_D -> decimal part of course
0x31 SPEED_L -> speed Low Byte
0x32 SPEED_H -> speed High Byte
0x33
-> speed decimal part
0x34 Altitude Low Byte - mean-sea-le vel geoid in meter
0x35 Altitude High Byte
0x36 High Byte - Differe nce betwee n the WGS-84 reference elli psoid surface in meter & mean-sea-lev el altitude.
0x37 Low Byte - Differe nce betwee n the WGS-84 reference el lipsoid surface in meter & mean-se a-leve l altitude.
0x38 UTC_h
0x39 UTC_min
0x3A UTC_ss
0x3B DAY
0x3C YEAR_L
0x3D YEAR_H
0x3E MON
0x3F PDOP
0x40 PDOP_D
0x41 VDOP
0x42 VDOP_D
0x43 SAT # 1
0x44 SAT # 2
0x45 SAT # 3
0x46 SAT # 4
0x47 SAT # 5
0x48 SAT # 6
0x49 SAT # 7
0x4A SAT # 8
0x4B SAT # 9
0x4C SAT # 10
0x4D SAT # 11
0x4E SAT # 12
0x4F SW_Version
0x50 RES_DEBUG
0x51 RESERVDED
to
0x8F RESERVDED
0x90 INIT CFG: 01 == hot start; 03 == Warm Start init data loaded;
02 == Warm start Ephemeris cle ared; 04 == cold start
0x91 Pos_Fix _Time 1 == 1 sec; 2 == 2 sec
0x92 STBY 1 == enter - will be cleared after write
0x93 Factory Reset 1 == reset
0x94 Jamming Remover 1 == enable; - 0 == disable
0x95 Reserved
0x96 0x15 == active; 0 = inactive
JM3 Engineering Inh. J. Maisel Dobelweg 18, D-85567 Grafing / Munich
Email: JHM@JM3-Engineering.de
Version: 1.24 Nov 01, 2013 page: 4