Skip to content

A standalone GPS Tracker implementation for ATmega16/32 microcontrollers written in pure Embedded C (avr-gcc). Features raw NMEA ($GPGGA) string parsing via UART, direct register LCD 16x2 interfacing, and battery voltage monitoring via ADC. No external libraries used—optimized for efficiency.

License

Notifications You must be signed in to change notification settings

Abdansb/ATmega-basic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ATmega-Basic: AVR Learning & GPS Tracker Project

Language Platform IDE

A collection of basic input-output programming examples for ATmega AVR microcontrollers, culminating in a Final Project: A standalone GPS Tracker System.


🛰️ Final Project: ATmega GPS Tracker

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.

📸 Project Gallery

Hardware Setup LCD Output

⚡ Key Features

  • 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.

📂 Source Code

👉 Click here to view the GPS Tracker Source Code


🛠️ Hardware Requirements

To replicate the examples and the final project, you will need:

  1. Microcontroller: ATmega16 / ATmega32 (or compatible Minimum System Board).
  2. Programmer: USBasp (recommended) or Arduino as ISP.
  3. GPS Module: Ublox NEO-6M / NEO-7M (for Final Project).
  4. Display: LCD 16x2 (HD44780 Controller).
  5. Basic Components: LEDs, Push Buttons, Breadboard, Jumper Wires.

💻 Software & Tools

  • IDE: Atmel Studio 7.0 (Microchip Studio).
  • Flasher: Khazama AVR Programmer (or AVRDUDE).
  • Drivers: Zadig (Required to install generic USB drivers for USBasp).

🚀 Getting Started

1. Setting up the Environment

Ensure your USBasp drivers are installed properly using Zadig.

  1. Plug in USBasp.
  2. Open Zadig.
  3. Select libusbK or libusb-win32 driver.
  4. Click "Install Driver".

2. Flashing the Code

You can compile the code in Atmel Studio to generate a .hex file.

  1. Open Khazama AVR Programmer.
  2. Select your chip (e.g., ATmega16).
  3. Load the .hex file generated from the project.
  4. 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.


📚 Repository Structure

  • /Basic Examples - Simple LED blink and Button handling codes.
  • /Final Project - Full source code for the GPS Tracker.

🤝 Contributing

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

About

A standalone GPS Tracker implementation for ATmega16/32 microcontrollers written in pure Embedded C (avr-gcc). Features raw NMEA ($GPGGA) string parsing via UART, direct register LCD 16x2 interfacing, and battery voltage monitoring via ADC. No external libraries used—optimized for efficiency.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published