Remarks

Gc9a01
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Displays.TftSpi

Code Example

MicroGraphics graphics;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing ...");

    var spiBus = Device.CreateSpiBus();

    Resolver.Log.Info("Create display driver instance");

    var display = new Gc9a01
    (
        spiBus: spiBus,
        chipSelectPin: Device.Pins.A02,
        dcPin: Device.Pins.D01,
        resetPin: Device.Pins.D00
    );

    graphics = new MicroGraphics(display)
    {
        IgnoreOutOfBoundsPixels = true,
        CurrentFont = new Font12x20(),
        Rotation = RotationType._180Degrees
    };

    return base.Initialize();
}

public override Task Run()
{
    graphics.Clear();
    graphics.DrawCircle(120, 120, 100, Meadow.Foundation.Color.Cyan, false);
    graphics.DrawRoundedRectangle(50, 50, 140, 140, 50, Meadow.Foundation.Color.BlueViolet, false);
    graphics.DrawText(120, 120, "Meadow F7", alignmentH: HorizontalAlignment.Center, alignmentV: VerticalAlignment.Center);
    graphics.Show();

    return base.Run();
}

Sample project(s) available on GitHub

Wiring Example

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

Gc9a01 Meadow Pin
GND GND
VCC 3V3
SCL SCK
SDA MOSI
CS D02
DC D01
RESET D00

It should look like the following diagram:

Characteristic Locus
Inheritance object TftSpiBase > Gc9a01
Implements IGraphicsDisplay ISpiPeripheral IDisposable IRotatableDisplay
Inherited Members TftSpiBase.SetAddressBuffer TftSpiBase.ColorMode TftSpiBase.Rotation TftSpiBase.Width TftSpiBase.Height TftSpiBase.PixelBuffer TftSpiBase.DefaultSpiBusSpeed TftSpiBase.SpiBusSpeed TftSpiBase.DefaultSpiBusMode TftSpiBase.SpiBusMode TftSpiBase.IsDisposed TftSpiBase.dataCommandPort TftSpiBase.resetPort TftSpiBase.chipSelectPort TftSpiBase.spiDisplay TftSpiBase.imageBuffer TftSpiBase.readBuffer TftSpiBase.Data TftSpiBase.Command TftSpiBase.nativeHeight TftSpiBase.nativeWidth TftSpiBase.setAddressLastX0 TftSpiBase.setAddressLastX1 TftSpiBase.setAddressLastY0 TftSpiBase.setAddressLastY1 TftSpiBase.IsColorTypeSupported(ColorMode) TftSpiBase.CreateBuffer(ColorMode, int, int) TftSpiBase.SetAddressWindow(int, int, int, int) TftSpiBase.Clear(bool) TftSpiBase.Fill(Color, bool) TftSpiBase.WriteBuffer(int, int, IPixelBuffer) TftSpiBase.DrawPixel(int, int, bool) TftSpiBase.DrawPixel(int, int, Color) TftSpiBase.DrawPixel(int, int, byte, byte, byte) TftSpiBase.InvertPixel(int, int) TftSpiBase.Fill(int, int, int, int, Color) TftSpiBase.Show() TftSpiBase.Show(int, int, int, int) TftSpiBase.Write(byte) TftSpiBase.Write(byte[]) TftSpiBase.DelayMs(int) TftSpiBase.SendCommand(TftSpiBase.Register) TftSpiBase.SendCommand(TftSpiBase.LcdCommand) TftSpiBase.SendCommand(byte) TftSpiBase.SendData(int) TftSpiBase.SendData(byte) TftSpiBase.SendData(byte[]) TftSpiBase.Clear(Color) TftSpiBase.UpdateBuffer() TftSpiBase.Dispose() TftSpiBase.Dispose(bool) object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString()
Namespace Meadow.Foundation.Displays
Assembly TftSpi.dll

Syntax

public class Gc9a01 : TftSpiBase, IGraphicsDisplay, ISpiPeripheral, IDisposable, IRotatableDisplay

Constructors

Gc9a01(ISpiBus, IDigitalOutputPort, IDigitalOutputPort, IDigitalOutputPort)

Create a new Gc9a01 color display object

Declaration
public Gc9a01(ISpiBus spiBus, IDigitalOutputPort chipSelectPort, IDigitalOutputPort dataCommandPort, IDigitalOutputPort resetPort)

Parameters

Type Name Description
ISpiBus spiBus

SPI bus connected to display

IDigitalOutputPort chipSelectPort

Chip select output port

IDigitalOutputPort dataCommandPort

Data command output port

IDigitalOutputPort resetPort

Reset output port

Remarks

Gc9a01
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Displays.TftSpi

Code Example

MicroGraphics graphics;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing ...");

    var spiBus = Device.CreateSpiBus();

    Resolver.Log.Info("Create display driver instance");

    var display = new Gc9a01
    (
        spiBus: spiBus,
        chipSelectPin: Device.Pins.A02,
        dcPin: Device.Pins.D01,
        resetPin: Device.Pins.D00
    );

    graphics = new MicroGraphics(display)
    {
        IgnoreOutOfBoundsPixels = true,
        CurrentFont = new Font12x20(),
        Rotation = RotationType._180Degrees
    };

    return base.Initialize();
}

public override Task Run()
{
    graphics.Clear();
    graphics.DrawCircle(120, 120, 100, Meadow.Foundation.Color.Cyan, false);
    graphics.DrawRoundedRectangle(50, 50, 140, 140, 50, Meadow.Foundation.Color.BlueViolet, false);
    graphics.DrawText(120, 120, "Meadow F7", alignmentH: HorizontalAlignment.Center, alignmentV: VerticalAlignment.Center);
    graphics.Show();

    return base.Run();
}

Sample project(s) available on GitHub

Wiring Example

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

Gc9a01 Meadow Pin
GND GND
VCC 3V3
SCL SCK
SDA MOSI
CS D02
DC D01
RESET D00

It should look like the following diagram:

Gc9a01(ISpiBus, IPin, IPin, IPin)

Create a new Gc9a01 color display object

Declaration
public Gc9a01(ISpiBus spiBus, IPin chipSelectPin, IPin dcPin, IPin resetPin)

Parameters

Type Name Description
ISpiBus spiBus

SPI bus connected to display

IPin chipSelectPin

Chip select pin

IPin dcPin

Data command pin

IPin resetPin

Reset pin

Remarks

Gc9a01
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Displays.TftSpi

Code Example

MicroGraphics graphics;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing ...");

    var spiBus = Device.CreateSpiBus();

    Resolver.Log.Info("Create display driver instance");

    var display = new Gc9a01
    (
        spiBus: spiBus,
        chipSelectPin: Device.Pins.A02,
        dcPin: Device.Pins.D01,
        resetPin: Device.Pins.D00
    );

    graphics = new MicroGraphics(display)
    {
        IgnoreOutOfBoundsPixels = true,
        CurrentFont = new Font12x20(),
        Rotation = RotationType._180Degrees
    };

    return base.Initialize();
}

public override Task Run()
{
    graphics.Clear();
    graphics.DrawCircle(120, 120, 100, Meadow.Foundation.Color.Cyan, false);
    graphics.DrawRoundedRectangle(50, 50, 140, 140, 50, Meadow.Foundation.Color.BlueViolet, false);
    graphics.DrawText(120, 120, "Meadow F7", alignmentH: HorizontalAlignment.Center, alignmentV: VerticalAlignment.Center);
    graphics.Show();

    return base.Run();
}

Sample project(s) available on GitHub

Wiring Example

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

Gc9a01 Meadow Pin
GND GND
VCC 3V3
SCL SCK
SDA MOSI
CS D02
DC D01
RESET D00

It should look like the following diagram:

Properties

DefaultColorMode

The display default color mode

Declaration
public override ColorMode DefaultColorMode { get; }

Property Value

Type Description
ColorMode

Overrides

Remarks

Gc9a01
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Displays.TftSpi

Code Example

MicroGraphics graphics;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing ...");

    var spiBus = Device.CreateSpiBus();

    Resolver.Log.Info("Create display driver instance");

    var display = new Gc9a01
    (
        spiBus: spiBus,
        chipSelectPin: Device.Pins.A02,
        dcPin: Device.Pins.D01,
        resetPin: Device.Pins.D00
    );

    graphics = new MicroGraphics(display)
    {
        IgnoreOutOfBoundsPixels = true,
        CurrentFont = new Font12x20(),
        Rotation = RotationType._180Degrees
    };

    return base.Initialize();
}

public override Task Run()
{
    graphics.Clear();
    graphics.DrawCircle(120, 120, 100, Meadow.Foundation.Color.Cyan, false);
    graphics.DrawRoundedRectangle(50, 50, 140, 140, 50, Meadow.Foundation.Color.BlueViolet, false);
    graphics.DrawText(120, 120, "Meadow F7", alignmentH: HorizontalAlignment.Center, alignmentV: VerticalAlignment.Center);
    graphics.Show();

    return base.Run();
}

Sample project(s) available on GitHub

Wiring Example

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

Gc9a01 Meadow Pin
GND GND
VCC 3V3
SCL SCK
SDA MOSI
CS D02
DC D01
RESET D00

It should look like the following diagram:

SupportedColorModes

The color modes supported by the display

Declaration
public override ColorMode SupportedColorModes { get; }

Property Value

Type Description
ColorMode

Overrides

Remarks

Gc9a01
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Displays.TftSpi

Code Example

MicroGraphics graphics;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing ...");

    var spiBus = Device.CreateSpiBus();

    Resolver.Log.Info("Create display driver instance");

    var display = new Gc9a01
    (
        spiBus: spiBus,
        chipSelectPin: Device.Pins.A02,
        dcPin: Device.Pins.D01,
        resetPin: Device.Pins.D00
    );

    graphics = new MicroGraphics(display)
    {
        IgnoreOutOfBoundsPixels = true,
        CurrentFont = new Font12x20(),
        Rotation = RotationType._180Degrees
    };

    return base.Initialize();
}

public override Task Run()
{
    graphics.Clear();
    graphics.DrawCircle(120, 120, 100, Meadow.Foundation.Color.Cyan, false);
    graphics.DrawRoundedRectangle(50, 50, 140, 140, 50, Meadow.Foundation.Color.BlueViolet, false);
    graphics.DrawText(120, 120, "Meadow F7", alignmentH: HorizontalAlignment.Center, alignmentV: VerticalAlignment.Center);
    graphics.Show();

    return base.Run();
}

Sample project(s) available on GitHub

Wiring Example

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

Gc9a01 Meadow Pin
GND GND
VCC 3V3
SCL SCK
SDA MOSI
CS D02
DC D01
RESET D00

It should look like the following diagram:

Methods

Initialize()

Initialize the display

Declaration
protected override void Initialize()

Overrides

Remarks

Gc9a01
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Displays.TftSpi

Code Example

MicroGraphics graphics;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing ...");

    var spiBus = Device.CreateSpiBus();

    Resolver.Log.Info("Create display driver instance");

    var display = new Gc9a01
    (
        spiBus: spiBus,
        chipSelectPin: Device.Pins.A02,
        dcPin: Device.Pins.D01,
        resetPin: Device.Pins.D00
    );

    graphics = new MicroGraphics(display)
    {
        IgnoreOutOfBoundsPixels = true,
        CurrentFont = new Font12x20(),
        Rotation = RotationType._180Degrees
    };

    return base.Initialize();
}

public override Task Run()
{
    graphics.Clear();
    graphics.DrawCircle(120, 120, 100, Meadow.Foundation.Color.Cyan, false);
    graphics.DrawRoundedRectangle(50, 50, 140, 140, 50, Meadow.Foundation.Color.BlueViolet, false);
    graphics.DrawText(120, 120, "Meadow F7", alignmentH: HorizontalAlignment.Center, alignmentV: VerticalAlignment.Center);
    graphics.Show();

    return base.Run();
}

Sample project(s) available on GitHub

Wiring Example

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

Gc9a01 Meadow Pin
GND GND
VCC 3V3
SCL SCK
SDA MOSI
CS D02
DC D01
RESET D00

It should look like the following diagram:

SetRotation(RotationType)

Set the rotation of the display

Declaration
public void SetRotation(RotationType rotation)

Parameters

Type Name Description
RotationType rotation

The rotation

Remarks

Gc9a01
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.Displays.TftSpi

Code Example

MicroGraphics graphics;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing ...");

    var spiBus = Device.CreateSpiBus();

    Resolver.Log.Info("Create display driver instance");

    var display = new Gc9a01
    (
        spiBus: spiBus,
        chipSelectPin: Device.Pins.A02,
        dcPin: Device.Pins.D01,
        resetPin: Device.Pins.D00
    );

    graphics = new MicroGraphics(display)
    {
        IgnoreOutOfBoundsPixels = true,
        CurrentFont = new Font12x20(),
        Rotation = RotationType._180Degrees
    };

    return base.Initialize();
}

public override Task Run()
{
    graphics.Clear();
    graphics.DrawCircle(120, 120, 100, Meadow.Foundation.Color.Cyan, false);
    graphics.DrawRoundedRectangle(50, 50, 140, 140, 50, Meadow.Foundation.Color.BlueViolet, false);
    graphics.DrawText(120, 120, "Meadow F7", alignmentH: HorizontalAlignment.Center, alignmentV: VerticalAlignment.Center);
    graphics.Show();

    return base.Run();
}

Sample project(s) available on GitHub

Wiring Example

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

Gc9a01 Meadow Pin
GND GND
VCC 3V3
SCL SCK
SDA MOSI
CS D02
DC D01
RESET D00

It should look like the following diagram: