Saturday, August 13, 2022

Microcontroller Projects: ATmega16A Based GPS Receiver

The project here demonstrates how to get location (latitude and longitude), time, date, speed and course-angle information using a GPS receiver. It uses 8-bit AVR microcontroller (MCU) ATmega16A (ATMega32 was used by the author) to get data from the GPS re -- By Ashutosh M. Bhatt

- Advertisement -

GPRMC string format

The complete string is of 65 to 70 characters including start tag. The time, that is, Greenwich Mean Time (GMT) or Coordinated Universal Time (UTC) immediately follows start tag. It can be in 1ms, 10ms or 100ms resolution. Then there is location information that includes latitude and longitude with direction.

Fig. 4: Actual-size PCB pattern of the GPS receiver
Fig. 4: Actual-size PCB pattern of the GPS receiver

Next is the speed of the GPS antenna, which is given in knots. Course angle is the angle of the GPS antenna with respect to true North in counter-clockwise direction. The date is given at the end. It is also with respect to GMT/UTC.

Fig. 5: Component layout of the PCB
Fig. 5: Component layout of the PCB

Download PCB and component layout PDFs: click here

Therefore in this single string we get all the information. The AVR MCU extracts this string from GPS output and further extracts all required details and displays these on the LCD in proper format. Author’s prototype is shown in Fig. 1. GPS receiver used for this prototype is a marine GPS receiver MR-600 and a sunrom GPS receiver (1216) with an active antenna.

- Advertisement -


Circuit and working

As shown in Fig. 3, the circuit is built with AVR MCU ATmega16A (IC1), RS232-level converter chip MAX232 (IC2) and a 16×4 LCD panel (LCD1). The GPS module has three terminals for interfacing, namely, Tx, Rx and Gnd. It gives a series of strings as serial output, which is connected to RS232-level side-input pin R2IN (pin 8). Output is taken from TTL-level side-output pin R2OUT (pin 9), which is given to serial receive pin RXD (pin 14) of IC1.

Operation of the circuit depends on the GPS receiver module. IC1 receives a series of strings from the GPS module and extracts the required string from a bunch of ten strings in real-time. Out of these, it extracts the string that starts with $GPRMC. It simply discards all others.

From the extracted string, it extracts all necessary information like time, date, latitude, longitude, speed and course angle. At last it displays all extracted details on the LCD panel.

Download source code: click here

- Advertisement -



Please enter your comment!
Please enter your name here


What's New @

Most Popular DIYs

Electronics Components

Design Guides

Truly Innovative Tech