Remarks

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

The ILI9163 is a display controller used to drive color displays over SPI using 12, 16 or 18 bbp. These displays require a backlight.

The Meadow.Foundation ILI9163 driver currently only supports 16bpp RGB565.

Purchasing

You can get ILI9163 displays from the following suppliers:

Code Example

MicroGraphics graphics;

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

    var config = new SpiClockConfiguration(new Frequency(12000, Frequency.UnitType.Kilohertz), SpiClockConfiguration.Mode.Mode0);
    var spiBus = Device.CreateSpiBus(Device.Pins.SCK, Device.Pins.MOSI, Device.Pins.MISO, config);

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

    var display = new Ili9163
    (
        spiBus: spiBus,
        chipSelectPin: Device.Pins.D02,
        dcPin: Device.Pins.D01,
        resetPin: Device.Pins.D00,
        width: 128, height: 160
    );

    graphics = new MicroGraphics(display)
    {
        IgnoreOutOfBoundsPixels = true,
        CurrentFont = new Font8x8()
    };


    return base.Initialize();
}

public override Task Run()
{
    graphics.Clear();

    graphics.DrawTriangle(10, 10, 50, 50, 10, 50, Meadow.Foundation.Color.Red);
    graphics.DrawRectangle(20, 15, 40, 20, Meadow.Foundation.Color.Yellow, false);
    graphics.DrawCircle(50, 50, 40, Meadow.Foundation.Color.Blue, false);
    graphics.DrawText(5, 5, "Meadow F7");

    graphics.Show();

    return base.Run();
}

Sample project(s) available on GitHub

Wiring Example

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

Ili9163 Meadow Pin
LED- 3V3
LED+ GND
MOSI MOSI
SCK SCK
RESET D00
A0 D01
CS D02
VCC 3V3
GND GND

It should look like the following diagram:

Characteristic Locus
Inheritance System.Object TftSpiBase > Ili9163
Implements IGraphicsDisplay
Inherited Members TftSpiBase.ColorMode TftSpiBase.Rotation TftSpiBase.Width TftSpiBase.Height TftSpiBase.PixelBuffer TftSpiBase.dataCommandPort TftSpiBase.resetPort TftSpiBase.chipSelectPort TftSpiBase.spiDisplay TftSpiBase.imageBuffer TftSpiBase.readBuffer TftSpiBase.Data TftSpiBase.Command TftSpiBase.IsColorTypeSupported(ColorMode) TftSpiBase.CreateBuffer(ColorMode, Int32, Int32) TftSpiBase.Clear(Boolean) TftSpiBase.Fill(Color, Boolean) TftSpiBase.WriteBuffer(Int32, Int32, IPixelBuffer) TftSpiBase.DrawPixel(Int32, Int32, Boolean) TftSpiBase.DrawPixel(Int32, Int32, Color) TftSpiBase.DrawPixel(Int32, Int32, Byte, Byte, Byte) TftSpiBase.InvertPixel(Int32, Int32) TftSpiBase.Fill(Int32, Int32, Int32, Int32, Color) TftSpiBase.Show() TftSpiBase.Show(Int32, Int32, Int32, Int32) TftSpiBase.Write(Byte) TftSpiBase.Write(Byte[]) TftSpiBase.DelayMs(Int32) TftSpiBase.SendCommand(TftSpiBase.Register) TftSpiBase.SendCommand(TftSpiBase.LcdCommand) TftSpiBase.SendCommand(Byte) TftSpiBase.SendData(Int32) TftSpiBase.SendData(Byte) TftSpiBase.SendData(Byte[]) TftSpiBase.Clear(Color)
Namespace Meadow.Foundation.Displays
Assembly TftSpi.dll

Syntax

public class Ili9163 : TftSpiBase, IGraphicsDisplay

Constructors

Ili9163(ISpiBus, IDigitalOutputPort, IDigitalOutputPort, IDigitalOutputPort, Int32, Int32, ColorMode)

Create a new Ili9163 color display object

Declaration
public Ili9163(ISpiBus spiBus, IDigitalOutputPort chipSelectPort, IDigitalOutputPort dataCommandPort, IDigitalOutputPort resetPort, int width, int height, ColorMode colorMode = default(ColorMode))

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

System.Int32 width

Width of display in pixels

System.Int32 height

Height of display in pixels

ColorMode colorMode

The color mode to use for the display buffer

Ili9163(ISpiBus, IPin, IPin, IPin, Int32, Int32, ColorMode)

Create a new Ili9163 color display object

Declaration
public Ili9163(ISpiBus spiBus, IPin chipSelectPin, IPin dcPin, IPin resetPin, int width, int height, ColorMode colorMode = default(ColorMode))

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

System.Int32 width

Width of display in pixels

System.Int32 height

Height of display in pixels

ColorMode colorMode

The color mode to use for the display buffer

Properties

DefautColorMode

The default display color mode

Declaration
public override ColorMode DefautColorMode { get; }

Property Value

Type Description
ColorMode

Overrides

SupportedColorModes

The color modes supported by the display

Declaration
public override ColorMode SupportedColorModes { get; }

Property Value

Type Description
ColorMode

Overrides

Methods

Initialize()

Initalize the display

Declaration
protected override void Initialize()

Overrides

SetAddressWindow(Int32, Int32, Int32, Int32)

Set the address window to update the display

Declaration
protected override void SetAddressWindow(int x0, int y0, int x1, int y1)

Parameters

Type Name Description
System.Int32 x0

X0

System.Int32 y0

Y0

System.Int32 x1

X1

System.Int32 y1

Y1

Overrides