A collection of basic input-output programming examples for ATmega AVR microcontrollers, culminating in a Final Project: A standalone GPS Tracker System.
This project demonstrates a raw implementation of a GPS tracking system using an ATmega16 microcontroller. It parses NMEA sentences from a GPS module via UART and displays the coordinates (Latitude/Longitude) on a 16x2 LCD.
| Hardware Setup | LCD Output |
|---|---|
![]() |
![]() |
- UART Communication: Reads raw serial data from the GPS Module.
- NMEA Parsing: Extracts relevant coordinate data from standard GPS strings.
- LCD Interfacing: Displays real-time location data on a 16x2 Character LCD without using heavy Arduino libraries.
- Low Level C: Written in pure Embedded C for maximum efficiency.
👉 Click here to view the GPS Tracker Source Code
To replicate the examples and the final project, you will need:
- Microcontroller: ATmega16 / ATmega32 (or compatible Minimum System Board).
- Programmer: USBasp (recommended) or Arduino as ISP.
- GPS Module: Ublox NEO-6M / NEO-7M (for Final Project).
- Display: LCD 16x2 (HD44780 Controller).
- Basic Components: LEDs, Push Buttons, Breadboard, Jumper Wires.
- IDE: Atmel Studio 7.0 (Microchip Studio).
- Flasher: Khazama AVR Programmer (or AVRDUDE).
- Drivers: Zadig (Required to install generic USB drivers for USBasp).
Ensure your USBasp drivers are installed properly using Zadig.
- Plug in USBasp.
- Open Zadig.
- Select
libusbKorlibusb-win32driver. - Click "Install Driver".
You can compile the code in Atmel Studio to generate a .hex file.
- Open Khazama AVR Programmer.
- Select your chip (e.g., ATmega16).
- Load the
.hexfile generated from the project. - Click Auto Program.
Tip: You can also use an Arduino board as a programmer by uploading the "ArduinoISP" sketch and connecting it via ICSP pins to the ATmega chip.
/Basic Examples- Simple LED blink and Button handling codes./Final Project- Full source code for the GPS Tracker.
Feel free to open an issue or submit a pull request if you have suggestions to improve the NMEA parsing logic or hardware efficiency.
Created by Abdansb

