Arduino OLED Gauges

« Back to RetroJDM's Arduino projects

Arduino OLED Gauges

A GPS gauge cluster using an Arduino MEGA 2560, Adafruit Ultimate GPS Logger Shield, and multiple 4D Systems uOLED-160-G2 displays.

Cool, but why?

I wanted to create a GPS speedo for a friend with a boat. Of course, I got carried away and decided to make a multi-gauge cluster controlled by an Arduino MEGA 2560.

Here's a working javascript mock-up I made while waiting for the displays etc in the post:


The idea here, is to have a gauge cluster controlled by a central controller. That way I can save on parts, and have a colour change (or from analog to digital) happen on all displays simultaneously when I change just one.


You can enter a menu on each gauge to enable/disable the screens it cycles through.

The settings are saved to EEPROM, and re-loaded at power-up.

Screens available (in either digital or analog styles):

  • Clock
  • Compass
  • GPS Home (can be set, then an arrow always points there with the distance shown)
  • GPS Location (shows latitude/longitude)
  • Speedo (MPH)
  • Speedo (KM/H)
  • Speedo (Knots)
  • Tacho


  • Locating Satellites
  • Digital Clock
  • Digital Compass
  • Digital GPS Home
  • Digital GPS Location
  • Digital Speedo (MPH)
  • Digital Speedo (KM/H)
  • Digital Speedo (Knots)
  • Digital Tacho
  • Analog Clock
  • Analog Compass
  • Analog GPS Home
  • Analog GPS Location
  • Analog Speedo (MPH)
  • Analog Speedo (KM/H)
  • Analog Speedo (Knots)
  • Analog Tacho
  • Main Menu
  • About Screen
  • Settings Menu

Photoshop Mock-ups

  • Arduino OLED Gauges - Digital
  • Arduino OLED Gauges - Analog

Prototype in an Enclosure

  • Arduino OLED Gauges - Prototype Naked
  • Arduino OLED Gauges - Prototype

To Do / What's Next?

I still need to mount it in a car/boat and hook the tacho up via an optocoupler (so I don't fry the Arduino).

I'd eventually like to connect an Air/Fuel Ratio (AFR) gauge and Throttle Position Sensor (TPS).Then I'd have it show a live graph and do data logging. That should make tuning the Webers in my RA28 a bit easier.

I can see myself going crazy with it, and adding all sorts of gauges: Volts, Water Temp, Oil Pressure, etc...

The Arduino Library (with example).

Note: The menu's etc use a lot of SRAM. It doesn't work on an Uno. I've only tested it on an Arduino MEGA 2560 R3.
The graphics for each uOLED-160-G2 Display.

You'll need to use 4D System's Graphics Composer to put this on an uSD card in RAW format.

Last Update: 12th June, 2014
Reason: Renamed "Compass" screen to "Heading"