A few years ago I was working on a project using a multi-rotor UAS to monitor weather. While out in the field, the user needed to be able to see the location of the UAS on a satellite map. The UAS had a GPS and was capable of transmitting that back to the laptop running custom ground station software; however, a constant connection to the internet would be necessary to get satellite maps from Google and many places this would be used won’t have a reliable signal. So I rolled my own solution to fetch the map from Google ahead of time and save it as an image file, which works fine since the location would be known in advance. The challenge was that I needed to have GPS coordinates associated with the image. Instead of having the GPS coordinates in a separate file, I decided to alter the pixels in the image to store the GPS coordinates so that only one file was necessary.
The Nokia 5110 LCD screen is a nice little LCD sold by both Sparkfun and Adafruit. I needed to work with one for my wireless weather station and wanted to use my logo instead of the Adafruit logo which comes in their library. So I wrote a processing program to make creating images easier.