Remarks

Pcd8544
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Pcd8544

The PCD8544 display, also known as a Nokia 5110 LCD, is a single color 84x84 LCD display. Data is sent to the display via SPI. The also typically also include an led backlight controlled via a single pin.

These displays have excellent visibility in daylight, even without the backlight, making them a good choice for builds with low-power restrictions and require visibility is bright light or daylight.

Purchasing

Code Example

public MeadowApp()
{
    Console.WriteLine("Initializing...");

    var config = new Meadow.Hardware.SpiClockConfiguration(Pcd8544.DEFAULT_SPEED, Meadow.Hardware.SpiClockConfiguration.Mode.Mode0);

    var display = new Pcd8544
    (
        device: Device,
        spiBus: Device.CreateSpiBus(Device.Pins.SCK, Device.Pins.MOSI, Device.Pins.MISO, config),
        chipSelectPin: Device.Pins.D01,
        dcPin: Device.Pins.D00,
        resetPin: Device.Pins.D02
    );

    var graphics = new MicroGraphics(display);

    graphics.Clear(true);
    graphics.CurrentFont = new Font8x12();
    graphics.DrawText(0, 0, "PCD8544");
    graphics.DrawRectangle(5, 14, 30, 10, true);

    graphics.Show();
}

Sample project(s) available on GitHub

Wiring Example

To wire a PCD8544 to your Meadow board, connect the following:

PCD8544 Meadow Pin
GND GND
LIGHT GND
VCC 3V3
CLK SCK
DIN MOSI
DC D00
CE D01
RST D02

Characteristic Locus
Inheritance System.Object > Pcd8544
Implements IGraphicsDisplay
Namespace Meadow.Foundation.Displays
Assembly Pcd8544.dll

Syntax

public class Pcd8544 : object, IGraphicsDisplay

Constructors

Pcd8544(IMeadowDevice, ISpiBus, IPin, IPin, IPin)

Declaration
public Pcd8544(IMeadowDevice device, ISpiBus spiBus, IPin chipSelectPin, IPin dcPin, IPin resetPin)

Parameters

Type Name Description
IMeadowDevice device
ISpiBus spiBus
IPin chipSelectPin
IPin dcPin
IPin resetPin

Fields

chipSelectPort

Declaration
protected IDigitalOutputPort chipSelectPort

Field Value

Type Description
IDigitalOutputPort

commandBuffer

Declaration
protected Memory<byte> commandBuffer

Field Value

Type Description
Memory<System.Byte>

dataCommandPort

Declaration
protected IDigitalOutputPort dataCommandPort

Field Value

Type Description
IDigitalOutputPort

DEFAULT_SPEED

Declaration
public static Frequency DEFAULT_SPEED

Field Value

Type Description
Frequency

imageBuffer

Declaration
protected Buffer1bpp imageBuffer

Field Value

Type Description
Buffer1bpp

resetPort

Declaration
protected IDigitalOutputPort resetPort

Field Value

Type Description
IDigitalOutputPort

spiDisplay

Declaration
protected ISpiPeripheral spiDisplay

Field Value

Type Description
ISpiPeripheral

Properties

ColorMode

Declaration
public ColorType ColorMode { get; }

Property Value

Type Description
ColorType

Height

Declaration
public int Height { get; }

Property Value

Type Description
System.Int32

IgnoreOutOfBoundsPixels

Declaration
public bool IgnoreOutOfBoundsPixels { get; set; }

Property Value

Type Description
System.Boolean

IsDisplayInverted

Declaration
public bool IsDisplayInverted { get; }

Property Value

Type Description
System.Boolean

Width

Declaration
public int Width { get; }

Property Value

Type Description
System.Int32

Methods

Clear(Boolean)

Clear the display

Declaration
public void Clear(bool updateDisplay = false)

Parameters

Type Name Description
System.Boolean updateDisplay

If true, it will force a display update

Remarks

Clears the internal memory buffer

DrawBuffer(Int32, Int32, IDisplayBuffer)

Declaration
public void DrawBuffer(int x, int y, IDisplayBuffer displayBuffer)

Parameters

Type Name Description
System.Int32 x
System.Int32 y
IDisplayBuffer displayBuffer

DrawPixel(Int32, Int32, Color)

Coordinates start with index 0

Declaration
public void DrawPixel(int x, int y, Color color)

Parameters

Type Name Description
System.Int32 x

Abscissa of the pixel to the set / reset.

System.Int32 y

Ordinate of the pixel to the set / reset.

Color color

any value other than black will make the pixel visible

DrawPixel(Int32, Int32, Boolean)

Coordinates start with index 0

Declaration
public void DrawPixel(int x, int y, bool colored)

Parameters

Type Name Description
System.Int32 x

Abscissa of the pixel to the set / reset.

System.Int32 y

Ordinate of the pixel to the set / reset.

System.Boolean colored

True = turn on pixel, false = turn off pixel

Fill(Color, Boolean)

Declaration
public void Fill(Color clearColor, bool updateDisplay = false)

Parameters

Type Name Description
Color clearColor
System.Boolean updateDisplay

Fill(Int32, Int32, Int32, Int32, Color)

Declaration
public void Fill(int x, int y, int width, int height, Color color)

Parameters

Type Name Description
System.Int32 x
System.Int32 y
System.Int32 width
System.Int32 height
Color color

InvertDisplay(Boolean)

Declaration
public void InvertDisplay(bool inverse)

Parameters

Type Name Description
System.Boolean inverse

InvertPixel(Int32, Int32)

Declaration
public void InvertPixel(int x, int y)

Parameters

Type Name Description
System.Int32 x
System.Int32 y

Show()

Declaration
public void Show()

Show(Int32, Int32, Int32, Int32)

Declaration
public void Show(int left, int top, int right, int bottom)

Parameters

Type Name Description
System.Int32 left
System.Int32 top
System.Int32 right
System.Int32 bottom