Hands-On GPS Firmware Development

Bare-Metal GSP Driver & Library | Parsing NMEA GPS Data

   Watch Promo

Welcome to the Hands-On GPS Bare-Metal Firmware Development course.


This course teaches you how to develop bare-metal drivers and libraries for receiving and parsing satellite data, in other words to build a complete gps system that is able to tell current longitude, latitude altitude (position) number of satellites being tracked etc.

So with that understood, let me tell you…


Exactly What You’re Getting

This course can be divided into 4 major sections.

First Section

The first section is theoretical. In this section we start by learning about Global Navigation Satellite Systems(GNSS) and then we go on learn about how GPS works and some factors that may affect GPS precision. We shall deal with topics such as:

  • The different Global Navigation Satellite Systems(GNSS) accross the world
  • GPS Trilateration
  • Empheris and Almanac
  • Using GPS for Geographic Information systems(GIS)
  • The GPS Error Budget
  • etc

Second Section

In the second section we shall develop all the divers to help us debug and implement some realword applications once we have developed all modules of the system. Over here we shall develop :
  • A Timebase to help us generate precise delays
  • A UART driver to help us to print out debug information

Third Section

In the third section we shall develop a driver to interface our chosen gps module(NEO-6M GPS) to our STM32 microcontroller. We shall then go on to develop efficient data structures for managing communication data between the GPS module and the STM32 microcontroller.

Last Section

We shall learn about the GPS NMEA data structure and then combine the driver and data structure developed in the previous sections together with our knowlege of the GPS NMEA data structure to develop a library that will properly parse data received by the GPS module from the satellites so that the data can be presented in a readbable and undserstandable way.


As always, no copy/paste. We write each line code from scratch.


Frequently Asked Questions


When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.
Do I get a certificate?
Yes, after a successful completion of the course.

Course Curriculum


  Introduction to the Global Positioning System(GPS)
Available in days
days after you enroll
  Developing The NMEA GPS Dater Parser Library-Implementation file
Available in days
days after you enroll
  Closing
Available in days
days after you enroll

Your Instructor


EmbeddedExpertIO™
EmbeddedExpertIO™

EmbeddedExpertIO represents a vibrant collective dedicated to the mastery of sophisticated embedded systems software development for professionals.

EmbeddedExpertIO stands as a premier source of tailored embedded systems development courses, catering to individuals and enterprises seeking to hone or acquire embedded firmware programming expertise. Our extensive course selections encompass beginner to advanced levels, addressing diverse facets of embedded systems development, such as WiFi, STM32, IoT systems design, memory safeguarding, and beyond.

Our core objective is to equip individuals and organizations with the indispensable skills to thrive in the swiftly evolving embedded systems sector. We achieve this by providing immersive, hands-on education under the guidance of seasoned industry specialists. Our ambition is to emerge as the favored learning platform for embedded systems development professionals across the globe.