DOGL-128 LCD Module

DOGL-128 LCD module is made by Electronic Assembly. It needs a couple of capacitors but can work from a single 3.3V supply otherwise.

It uses ST7565 controller and SPI interface. I used the following connection:

+-DOG LCD-+      +--mbed--+ 
|36 SI    |------| 5 mosi |
|37 CLK   |------| 7 sck  |
|38 A0    |------| 20     |
|39 Reset |------| 19     |
|40 CS    |------| 18     |
|35 VDD   |------| 17     |
|34 VDD2  |------| 17     |
|26 VSS   |------| GND    |
|33 VSS   |------| GND    |
+---------+      +--------+

To demonstrate the LCD I used as a base Mike Sheldon's 3D rotating Tie Fighter demo. Get it here: DOGLCDDemo.

The LCD routines are in DogLCD.h/cpp, wrapped in a class DogLCD.


15 Jan 2010

This is very cool!

If you run MBED from a PC, do you need any particular powersupply arrangement, or MBED will provide the power (as it appears)?


15 Jan 2010

Yes, I used just 3.3v out.

27 Dec 2010

Thanks for the Library, but there is a bug in _set_xy function:

in DogLCD.cpp change lines 39 and 40 to:

cmd[1] = 0x10 | ((x>>4)&0xF);
cmd[2] = x&0xF;

(high and low nibbles of x were swapped...)

Then you also get horizontal lines :-)


03 Apr 2011

Hi Igor,

I recently purchased a DOGL128 LCD and I used your demo to check it out. Thanks, it saved me a lot of time!

I plan to use the DOG in an mbed-based heating controller project and need to augment the display support classes. Have you done any more work on this? I don't want to re-invent any wheels.



03 Apr 2011

Hi Paul,

Glad it was useful to someone :) I haven't done much since then, but feel free to post any issues you run into.

16 Sep 2013

Tested with EA DOGS-102 ( EADOGS ) or EA DOGS102, it works great.

Changed DogLCD.h

#define LCDWIDTH 102 // 128   // DOGS = 102 DOGM=128

plus contrast needed to be adjusted from 0x16 to 0x09 in


void DogLCD::init()
    const unsigned char init_seq[] = {
        0x40,    //Display start line 0
        0xa1,    //ADC reverse
        0xc0,    //Normal COM0...COM63
        0xa6,    //Display normal
        0xa2,    //Set Bias 1/9 (Duty 1/65)
        0x2f,    //Booster, Regulator and Follower On
        0xf8,    //Set internal Booster to 4x
        0x27,    //Contrast set
        0x09,   //0x16,
        0xac,    //No indicator
        0xaf,    //Display on

13 Jun 2014
Hi Igor, i use the DOGLCDDemo with a nucleo board. Why connect the VDD and VDD2 to a portpin? Regards, Andreas

You need to log in to post a comment