Display Formatted GPS Info on OLED

  • This post is deleted!

  • Here is a raw example
    "age": 0,
    "latitude": "38.1234",
    "longitude": "-80.1234",
    "elevation": "123.4",
    "course": "",
    "speed": "N"

    Or with the -S
    {"age": 0,"latitude": "38.1234","longitude": "-80.1234","elevation": "123.4","course": "","speed": "N"}

  • Update - the script is now working correctly (it was not pulling in the GPS at all, actually)

    oled-exp -c
    oled-exp invert on

    VAR=$(ubus -S call gps info)

    if [ $VAR != '{"signal":false}' ]
    oled-exp write $VAR
    oled-exp write "No or Weak GPS Signal"
    exit 0

    the above script actually writes the GPS info to the OLED. I just dont know how to parse the text to show it in the format I wish. It currently looks like this on the OLED


    Below is how I wish the text to be displayed, but I dont know how to do that. I realize the coding in the OGPS package has the Speed and Course interchanged.

    Current Location
    Latitude: 12.3456
    Longitude: -65.4321
    Elevation: 123.4
    Course: N
    Speed: 12

  • administrators

    @Brad-Buskey You can modify the $VAR variable before you display it on the OLED.
    Try looking up the sed and awk commands for string manipulation

  • I am wondering if I should use Python instead? I was looking into SED and AWK and my head spun. Use the shell script to create a txt file with the information and then the oledExp functions in python to write the lines exactly how I want them. Or, is it possible to pull the "ubus call gps info" from python into a variable and do everything within python? Or is there even a GPS module for python?

    This is probably going to only really show my own journey trying to figure out string manipulation.

  • Python may be the answer. I can now run a shell script that writes the GPS data to a file and then runs a python script that reads that file and outputs the data to the OLED. Now, I just have to figure out how to pull different bits of data from the string and get it on the correct lines.

  • OK, new scripts have been created, I can now get the screen set up the way I want. All I have to do now is to read in the file and separate the data into the variables. I'm getting there, but slowly.


    needs to be split so that I get back