Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

Characteristic Locus
Inheritance object EPaperBase EPaperTriColorBase > Il0398 > Epd4in2bc
Implements ISpiPeripheral IDisposable IGraphicsDisplay
Inherited Members EPaperTriColorBase.EnabledColor EPaperTriColorBase.DisabledColor EPaperTriColorBase.ColorMode EPaperTriColorBase.SupportedColorModes EPaperTriColorBase.imageBuffer EPaperTriColorBase.Width EPaperTriColorBase.Height EPaperTriColorBase.PixelBuffer EPaperTriColorBase.CreateBuffer(int, int) EPaperTriColorBase.Clear(bool) EPaperTriColorBase.Fill(Color, bool) EPaperTriColorBase.Fill(int, int, int, int, Color) EPaperTriColorBase.Clear(bool, bool) EPaperTriColorBase.DrawPixel(int, int, bool) EPaperTriColorBase.DrawBlackPixel(int, int, bool) EPaperTriColorBase.InvertPixel(int, int) EPaperTriColorBase.DrawColoredPixel(int, int, bool) EPaperTriColorBase.DrawPixel(int, int, Color) EPaperTriColorBase.WriteBuffer(int, int, IPixelBuffer) EPaperTriColorBase.SendCommand(EPaperTriColorBase.Command) EPaperBase.DefaultSpiBusSpeed EPaperBase.SpiBusSpeed EPaperBase.DefaultSpiBusMode EPaperBase.SpiBusMode EPaperBase.IsDisposed EPaperBase.commandBuffer EPaperBase.dataCommandPort EPaperBase.resetPort EPaperBase.chipSelectPort EPaperBase.busyPort EPaperBase.spiComms EPaperBase.DataState EPaperBase.CommandState EPaperBase.createdPorts EPaperBase.Write(byte) EPaperBase.Reset() EPaperBase.DelayMs(int) EPaperBase.SendCommand(byte) EPaperBase.SendData(int) EPaperBase.SendData(byte) EPaperBase.SendData(byte[]) EPaperBase.WaitUntilIdle() EPaperBase.Dispose() EPaperBase.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 EPaper.dll

Syntax

public class Il0398 : EPaperTriColorBase, ISpiPeripheral, IDisposable, IGraphicsDisplay

Constructors

Il0398(ISpiBus, IDigitalOutputPort, IDigitalOutputPort, IDigitalOutputPort, IDigitalInputPort)

Create a new Il0398 ePaper 400x300 pixel display object

Declaration
public Il0398(ISpiBus spiBus, IDigitalOutputPort chipSelectPort, IDigitalOutputPort dataCommandPort, IDigitalOutputPort resetPort, IDigitalInputPort busyPort)

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

IDigitalInputPort busyPort

Busy input port

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

Il0398(ISpiBus, IPin, IPin, IPin, IPin)

Create a new Il0398 400x300 pixel display object

Declaration
public Il0398(ISpiBus spiBus, IPin chipSelectPin, IPin dcPin, IPin resetPin, IPin busyPin)

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

IPin busyPin

Busy pin

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

Properties

IsBlackInverted

Does the display invert data for black pixels

Declaration
protected override bool IsBlackInverted { get; }

Property Value

Type Description
bool

Overrides

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

IsColorInverted

Does the display invert data for color pixels

Declaration
protected override bool IsColorInverted { get; }

Property Value

Type Description
bool

Overrides

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

Methods

ClearFrame()

Clear the frame data from the SRAM, this doesn't update the display

Declaration
protected virtual void ClearFrame()

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

DisplayFrame()

Send a refresh command to the display Does not transfer new data

Declaration
public void DisplayFrame()

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

Initialize()

Initialize the display

Declaration
protected override void Initialize()

Overrides

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

SetPartialWindow(byte[], byte[], int, int, int, int)

Set partial window for display updates

Declaration
protected void SetPartialWindow(byte[] bufferBlack, byte[] bufferColor, int x, int y, int width, int height)

Parameters

Type Name Description
byte[] bufferBlack

The buffer with black pixel data

byte[] bufferColor

The buffer with color pixel data

int x

The x start position in pixels

int y

The y start position in pixels

int width

The width to update in pixels

int height

The height to update in pixels

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

SetPartialWindowBlack(byte[], int, int, int, int)

Set partial window for display updates

Declaration
protected void SetPartialWindowBlack(byte[] bufferBlack, int x, int y, int width, int height)

Parameters

Type Name Description
byte[] bufferBlack

The buffer with black pixel data

int x

The x start position in pixels

int y

The y start position in pixels

int width

The width to update in pixels

int height

The height to update in pixels

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

SetPartialWindowColor(byte[], int, int, int, int)

Set partial window for display updates

Declaration
protected void SetPartialWindowColor(byte[] bufferColor, int x, int y, int width, int height)

Parameters

Type Name Description
byte[] bufferColor

The buffer with color pixel data

int x

The x start position in pixels

int y

The y start position in pixels

int width

The width to update in pixels

int height

The height to update in pixels

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

Show()

Copy the display buffer to the display

Declaration
public override void Show()

Overrides

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

Show(int, int, int, int)

Copy the display buffer to the display for a set region

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

Parameters

Type Name Description
int left

left bounds of region in pixels

int top

top bounds of region in pixels

int right

right bounds of region in pixels

int bottom

bottom bounds of region in pixels

Overrides

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).

Sleep()

Set the device to low power mode

Declaration
protected virtual void Sleep()

Remarks

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

The IL0398 is a tri-color display controller for ePaper displays. Data is sent to the controller via SPI and supports partial screen updates.

The IL0398 is commonly paired with 4.2" 400x300 tri-color ePaper display.

Sample projects available on GitHub

Code Example

Il0398 display;
MicroGraphics graphics;

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

    display = new Il0398(
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D03,
        dcPin: Device.Pins.D02,
        resetPin: Device.Pins.D01,
        busyPin: Device.Pins.D00);

    graphics = new MicroGraphics(display)
    {
        Rotation = RotationType._270Degrees
    };

    return Task.CompletedTask;
}

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

    for (int i = 0; i < 100; i++)
    {
        graphics.DrawPixel(i, i, Color.Black);
    }

    graphics.DrawRectangle(10, 40, 160, 60, Color.Black, true);
    graphics.DrawRectangle(20, 80, 200, 90, Color.Yellow, true);

    graphics.CurrentFont = new Font12x16();
    graphics.DrawText(2, 20, "Meadow F7", Color.Black);
    graphics.DrawText(30, 50, "Yellow", Color.Yellow);
    graphics.DrawText(50, 90, "Black", Color.Black);
    graphics.DrawText(50, 120, "White", Color.White);

    graphics.Show();

    Resolver.Log.Info("Run complete");

    return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To control a IL0398 from Meadow, connect the following:

IL0398 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
3V3 3V3

If your display does not include any of the above pins, they can be omitted. Pass NULL into the constructor for the missing pin(s).