Skip to content

DIY GPS Unit with Arduino Uno

This DIY GPS unit consists of an Arduino Uno, SSD1306 OLED display, and BN-220 GPS. It is powered by a 9V battery. In another post I detailed a memory corruption issue workaround for this project.

The Arduino sketch is on Github: https://github.com/benjohnemmett/GpsDisplay

Components:

GPS Shield Layout

I soldered the SSD1306 directly to the shield near the top and wired the the SDA, SCL, as well as 5V and ground. I did not need external pull up resisters for the I2C bus since the SSD1306 has them integrated already. For the GPS input, I used 90 degree male headers on the under side of the shield and soldered them to the Arduino Tx, Rx, 5v, and ground. I used the connector adapter to female header pins that came with the BN-220. Finally, I soldered the 9V battery wires to Vin and ground.

GPS Shield Front
GPS Shield Back

Completed Setup

Here is the completed DIY GPS unit running on a 9V battery. Currently, the display only shows latitude & longitude, but could be upgraded to show additional GPS data.

Potential Upgrades

  • Display additional data such as current time, altitude, signal quality, ground speed, etc…
  • Create a 3D printed protective case
  • Add a power Switch

Leave a Reply

Your email address will not be published. Required fields are marked *