<font face="Arial, Verdana">My programming knowledge is unsufficient to be able to implement such code.</font>
I can give you the code that is used to test he display and buttons with the graphical LCD connected to the Ultratronics.
Is it possible for you to implement his in your firmware?
Here is the test code:
<font face="Arial, Verdana">/ </font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">this software will test the graphical CLD v1.0 </font>
<font face="Arial, Verdana">Uncomment the desired board below before compiling </font>
<font face="Arial, Verdana">Download and install the U8glib library from https://github.com/olikraus/u8glib/wiki</span></font></div><div><font face="Arial, Verdana">*/</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">//#define ULTRATRONICS</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">#include "SPI.h"</font>
<font face="Arial, Verdana">#include "SD.h"</font>
<font face="Arial, Verdana">#include "U8glib.h"</font>
<font face="Arial, Verdana">#include <Arduino.h></font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">/* ultratronics */</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> #define SDSC A5</font>
<font face="Arial, Verdana"> #define SW_BACK A9</font>
<font face="Arial, Verdana"> #define SW_ENC A10</font>
<font face="Arial, Verdana"> #define ENCA 20</font>
<font face="Arial, Verdana"> #define ENCB 21</font>
<font face="Arial, Verdana"> #define LCDSC A8</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> U8GLIB_ST7920_128X64_4X u8g(SCK, MOSI, A8);</font>
<font face="Arial, Verdana"> //SCK,MOSI,</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> #define SERIALTYPE SerialUSB</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">void u8g_prepare(void) {</font>
<font face="Arial, Verdana"> u8g.setFont(u8g_font_6x10);</font>
<font face="Arial, Verdana"> u8g.setFontRefHeightExtendedText();</font>
<font face="Arial, Verdana"> u8g.setDefaultForegroundColor();</font>
<font face="Arial, Verdana"> u8g.setFontPosTop();</font>
<font face="Arial, Verdana">}</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">void draw(void) {</font>
<font face="Arial, Verdana"> u8g_prepare();</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> char s[2] = " ";</font>
<font face="Arial, Verdana"> uint8_t x, y;</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> u8g.drawStr( 0, 10, "Back:");</font>
<font face="Arial, Verdana"> if (digitalRead(SW_BACK) == 1)</font>
<font face="Arial, Verdana"> u8g.drawStr( 100, 10, "Down");</font>
<font face="Arial, Verdana"> else</font>
<font face="Arial, Verdana"> u8g.drawStr( 100, 10, "Up");</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> u8g.drawStr( 0, 20, "Enc sw:");</font>
<font face="Arial, Verdana"> if (digitalRead(SW_ENC) == 1)</font>
<font face="Arial, Verdana"> u8g.drawStr( 100, 20, "Down");</font>
<font face="Arial, Verdana"> else</font>
<font face="Arial, Verdana"> u8g.drawStr( 100, 20, "Up");</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> u8g.drawStr( 0, 30, "Enc A:");</font>
<font face="Arial, Verdana"> if (digitalRead(ENCA) == 1)</font>
<font face="Arial, Verdana"> u8g.drawStr( 100, 30, "Down");</font>
<font face="Arial, Verdana"> else</font>
<font face="Arial, Verdana"> u8g.drawStr( 100, 30, "Up");</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> u8g.drawStr( 0, 40, "Enc B:");</font>
<font face="Arial, Verdana"> if (digitalRead(ENCB) == 1)</font>
<font face="Arial, Verdana"> u8g.drawStr( 100, 40, "Down");</font>
<font face="Arial, Verdana"> else</font>
<font face="Arial, Verdana"> u8g.drawStr( 100, 40, "Up");</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">}</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">void setup(void) {</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> pinMode(65, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(52, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(51, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(50, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(59, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(61, OUTPUT);</font>
<font face="Arial, Verdana"> digitalWrite(65, HIGH);</font>
<font face="Arial, Verdana"> digitalWrite(51, HIGH);</font>
<font face="Arial, Verdana"> digitalWrite(52, HIGH);</font>
<font face="Arial, Verdana"> digitalWrite(50, HIGH);</font>
<font face="Arial, Verdana"> digitalWrite(59, HIGH);</font>
<font face="Arial, Verdana"> digitalWrite(61, HIGH);</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> pinMode(MISO, INPUT);</font>
<font face="Arial, Verdana"> pinMode(MOSI, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(SCK, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(SS, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(LCDSC, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(SDSC, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(LCDSC, OUTPUT);</font>
<font face="Arial, Verdana"> pinMode(SDSC, HIGH);</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> pinMode(SW_BACK, INPUT_PULLUP);</font>
<font face="Arial, Verdana"> pinMode(SW_ENC, INPUT_PULLUP);</font>
<font face="Arial, Verdana"> pinMode(ENCA, INPUT_PULLUP);</font>
<font face="Arial, Verdana"> pinMode(ENCB, INPUT_PULLUP);</font>
<font face="Arial, Verdana"> digitalWrite(LCDSC, HIGH);</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> digitalWrite(SW_BACK, HIGH);</font>
<font face="Arial, Verdana"> digitalWrite(SW_ENC, HIGH);</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> SERIALTYPE.begin(115200);</font>
<font face="Arial, Verdana"> SERIALTYPE.print("\nInitializing SD card...");</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">}</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">unsigned long nextMillis = 0;</font>
<font face="Arial, Verdana">void loop(void) {</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> if (nextMillis < millis()) {</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> nextMillis = millis() + 5000;</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana"> }</font>
<font face="Arial, Verdana"> // picture loop</font>
<font face="Arial, Verdana"> u8g.firstPage();</font>
<font face="Arial, Verdana"> do {</font>
<font face="Arial, Verdana"> draw();</font>
<font face="Arial, Verdana"> } while ( u8g.nextPage() );</font>
<font face="Arial, Verdana">}</font>