Skip to main content

Meadow.Foundation.Displays.St7789

St7789
StatusStatus badge: working
Source codeGitHub
Datasheet(s)GitHub
NuGet packageNuGet Gallery for Meadow.Foundation.Displays.TftSpi

The ST7789 is a display controller used to drive color displays over SPI using 12, 16 or 18 bbp. These displays require a backlight. These are typically paired with high pixel density displays, the most common being a 1.5" 240x240 display.

ST7789 displays typically use SPI mode 3, but you may find variants that require different modes.

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

Purchasing​

You can get ST7789 displays from the following suppliers:

Code Example​

MicroGraphics graphics;
St7789 display;

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

var spiBus = Device.CreateSpiBus();

display = new St7789(
spiBus: spiBus,
chipSelectPin: Device.Pins.A03,
dcPin: Device.Pins.A04,
resetPin: Device.Pins.A05,
width: 240, height: 240, colorMode: ColorMode.Format16bppRgb565);

display.Clear(Color.AliceBlue);
display.Show();

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

return base.Initialize();
}

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

graphics.DrawRectangle(120, 0, 120, 220, Color.White, true);
graphics.DrawRectangle(0, 0, 120, 20, Color.Red, true);
graphics.DrawRectangle(0, 20, 120, 20, Color.Purple, true);
graphics.DrawRectangle(0, 40, 120, 20, Color.Blue, true);
graphics.DrawRectangle(0, 60, 120, 20, Color.Green, true);
graphics.DrawRectangle(0, 80, 120, 20, Color.Yellow, true);
graphics.DrawRectangle(0, 100, 120, 20, Color.Orange, true);

graphics.Show();

DisplayTest();

return base.Run();
}

Sample project(s) available on GitHub

Wiring Example​

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

ST7789Meadow Pin
GNDGND
VCC3V3
SCLSCK
SDAMOSI
RESETD00
DCD01

It should look like the following diagram:

Wiring a ST7789 to a Meadow F7