Arduino GLCD Library: Diagnostic Sketch

# Diagnostic Sketch

GLCDdiags is a test sketch included in the examples folder. It will validate the connections and test the memory of GLCD module as well as report the active configuration information to the serial port. Unfortunately, the nature of glcd hardware interfaces is such that nearly all the pins have to be correctly configured and wired up correctly in order to initialize the glcd and see anything. If your display is not working properly then check the information displayed in the serial monitor. This shows what information the library is using and you can use this to help verify if the library is configured correctly.

The tests conclude with a final display screen that indicates whether all the tests finished successfully and also reports the speed of the glcd::SetDot() API function call when setting non contiguous pixels which is a worst case (slowest) scenario as it requires additional low level glcd commands to reposition the glcd X & Y addresses between each glcd::SetDot() call.

Below is a sample of the diagnostic information available on the glcd display.

Draws from upper left to lower right | Flashes each chip# sequentially
Library versions and Test Pattern | Testing chip0 memory
Testing chip1 memory | Results and SetDot speed (thousands/sec)

Below is a sample of the diagnostic information available on the serial port. The information includes library versioning information, all the configuration settings, which includes pin configurations as well as delay settings, and data port modes. It also includes results from all the diagnostic tests as they are being performed.

All the pin configuration information is displayed in both Arduino pin::s as well as AVR pin values.

Note:
  It is possible that under certain pin misconfigurations or wiring errors, no information will be presented to the serial port. In the event that no diagnostic information is showing up on the serial port, it may be necessary to disconnect the glcd to rule out that no misconfigured or miswired pins are conflicting with the serial port pins.

    Serial initialized
    --------------------------------------------------------------------
    GLCD Lib Configuration: glcd ver: 3 glcd_Device ver: 1 gText ver: 1
    Panel Configuration:ks0108
    Pin Configuration:ks0108-Arduino
    --------------------------------------------------------------------
    GLCD:ks0108 DisplayWidth:128 DisplayHeight:64
    Chips:2 ChipWidth:64 ChipHeight:64
     CSEL1:14(PIN_C0) CSEL2:15(PIN_C1)
     RW:16(PIN_C2) DI:17(PIN_C3) EN:18(PIN_C4)
     D0:8(PIN_B0) D1:9(PIN_B1) D2:10(PIN_B2) D3:11(PIN_B3)
     D4:4(PIN_D4) D5:5(PIN_D5) D6:6(PIN_D6) D7:7(PIN_D7)
    Delays: tDDR:320 tAS:140 tDSW:200 tWH:450 tWL:450
    ChipSelects: CHIP0:(14,0x1, 15,0x0) CHIP1:(14,0x0, 15,0x1)
    Data mode:
     d0-d3:nibble mode
     d4-d7:nibble mode
    --------------------------------------------------------------------

    Diag Loop: 1
    Initializing GLCD
    Displaying ChipSelect Screens
    Walking 1s data test
    Wr/Rd Chip Select Test
    Testing GLCD memory pages
    Horizonal Page Test Chip: 0 Pixels 0-63
    Vertical Page Test Chip: 0 Pixels 0-63
    Horizonal Page Test Chip: 1 Pixels 64-127
    Vertical Page Test Chip: 1 Pixels 64-127
    Full Module Horizontal Page Test:Pixels 0-127
    Full Module Vertical Page Test:Pixels 0-127
    Tests PASSED
    GLCD.SetDot() speed (K ops/sec): 16.39