Remarks

IL0373
Status
Source code GitHub
NuGet package

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

The IL0373 is commonly paired with 1.54", 2.13" or 2.9" dual or tri-color ePaper displays of various resolutions.

Code Example

public class MeadowApp : App<F7Micro, MeadowApp>
{
    Il0373 display;

    public MeadowApp()
    {
        var spiBus = Device.CreateSpiBus();

        Console.WriteLine("Create display driver instance");
        display = new Il0373(device: Device, spiBus: spiBus,
            chipSelectPin: Device.Pins.D02,
            dcPin: Device.Pins.D01,
            resetPin: Device.Pins.D00,
            busyPin: Device.Pins.D03,
            width: 102,
            height: 212);

        var graphics = new GraphicsLibrary(display);

        //any color but black will show the ePaper alternate color 
        graphics.DrawRectangle(1, 1, 126, 32, Meadow.Foundation.Color.Red, false);

        graphics.CurrentFont = new Font8x12();
        graphics.DrawText(2, 2, "IL0373");
        graphics.DrawText(2, 20, "Meadow F7");

        int ySpacing = 6;

        for (int i = 0; i < 3; i++)
        {
            graphics.DrawLine(2, 70 + ySpacing * i, 22, 50 + ySpacing * i);
            graphics.DrawLine(22, 50 + ySpacing * i, 42, 70 + ySpacing * i);
            graphics.DrawLine(44, 70 + ySpacing * i, 64, 50 + ySpacing * i);
            graphics.DrawLine(64, 50 + ySpacing * i, 84, 70 + ySpacing * i);
            graphics.DrawLine(86, 70 + ySpacing * i, 106, 50 + ySpacing * i);
            graphics.DrawLine(106, 50 + ySpacing * i, 126, 70 + ySpacing * i);
        }

        Console.WriteLine("Show");

        graphics.Show();
    }
}

Sample projects available on GitHub

Wiring Example

To control a ILI0373 from Meadow, connect the following:

IL0373 Meadow Pin
BUSY D15
RST D14
DC D13
CS D12
CLK SCK
DIN MOSI
GND GND
VCC 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 System.Object DisplayBase SpiDisplayBase EpdColorBase > Il0373
Inherited Members EpdColorBase.ColorMode EpdColorBase.blackImageBuffer EpdColorBase.colorImageBuffer EpdColorBase.xRefreshStart EpdColorBase.yRefreshStart EpdColorBase.xRefreshEnd EpdColorBase.yRefreshEnd EpdColorBase.Width EpdColorBase.Height EpdColorBase.Show() EpdColorBase.Clear(Boolean) EpdColorBase.Clear(Color, Boolean) EpdColorBase.Clear(Boolean, Boolean) EpdColorBase.DrawPixel(Int32, Int32) EpdColorBase.DrawPixel(Int32, Int32, Boolean) EpdColorBase.InvertPixel(Int32, Int32) EpdColorBase.DrawColoredPixel(Int32, Int32, Boolean) EpdColorBase.DrawPixel(Int32, Int32, Color) EpdColorBase.DrawPixel(Int32, Int32, Byte, Byte, Byte) EpdColorBase.PANEL_SETTING EpdColorBase.POWER_SETTING EpdColorBase.POWER_OFF EpdColorBase.POWER_OFF_SEQUENCE_SETTING EpdColorBase.POWER_ON EpdColorBase.POWER_ON_MEASURE EpdColorBase.BOOSTER_SOFT_START EpdColorBase.DEEP_SLEEP EpdColorBase.DATA_START_TRANSMISSION_1 EpdColorBase.DATA_STOP EpdColorBase.DISPLAY_REFRESH EpdColorBase.DATA_START_TRANSMISSION_2 EpdColorBase.PARTIAL_DATA_START_TRANSMISSION_1 EpdColorBase.PARTIAL_DATA_START_TRANSMISSION_2 EpdColorBase.PARTIAL_DISPLAY_REFRESH EpdColorBase.LUT_FOR_VCOM EpdColorBase.LUT_WHITE_TO_WHITE EpdColorBase.LUT_BLACK_TO_WHITE EpdColorBase.LUT_WHITE_TO_BLACK EpdColorBase.LUT_BLACK_TO_BLACK EpdColorBase.PLL_CONTROL EpdColorBase.TEMPERATURE_SENSOR_CALIBRATION EpdColorBase.TEMPERATURE_SENSOR_SELECTION EpdColorBase.TEMPERATURE_SENSOR_WRITE EpdColorBase.TEMPERATURE_SENSOR_READ EpdColorBase.VCOM_AND_DATA_INTERVAL_SETTING EpdColorBase.LOW_POWER_DETECTION EpdColorBase.TCON_SETTING EpdColorBase.RESOLUTION_SETTING EpdColorBase.SOURCE_AND_GATE_START_SETTING EpdColorBase.GET_STATUS EpdColorBase.AUTO_MEASURE_VCOM EpdColorBase.READ_VCOM_VALUE EpdColorBase.VCM_DC_SETTING EpdColorBase.PARTIAL_WINDOW EpdColorBase.PARTIAL_IN EpdColorBase.PARTIAL_OUT EpdColorBase.PROGRAM_MODE EpdColorBase.ACTIVE_PROGRAM EpdColorBase.READ_OTP_DATA EpdColorBase.POWER_SAVING SpiDisplayBase.spiBOneByteBuffer SpiDisplayBase.dataCommandPort SpiDisplayBase.resetPort SpiDisplayBase.busyPort SpiDisplayBase.spi SpiDisplayBase.currentPen SpiDisplayBase.Data SpiDisplayBase.Command SpiDisplayBase.Write(Byte) SpiDisplayBase.SetPenColor(Color) SpiDisplayBase.Reset() SpiDisplayBase.DelayMs(Int32) SpiDisplayBase.SendCommand(Byte) SpiDisplayBase.SendData(Int32) SpiDisplayBase.SendData(Byte) SpiDisplayBase.SendData(Byte[]) SpiDisplayBase.WaitUntilIdle() DisplayBase.IgnoreOutOfBoundsPixels
Namespace Meadow.Foundation.Displays.ePaper
Assembly EPaper.dll

Syntax

public class Il0373 : EpdColorBase

Constructors

Il0373(IIODevice, ISpiBus, IPin, IPin, IPin, IPin, Int32, Int32)

Declaration
public Il0373(IIODevice device, ISpiBus spiBus, IPin chipSelectPin, IPin dcPin, IPin resetPin, IPin busyPin, int width, int height)

Parameters

Type Name Description
IIODevice device
ISpiBus spiBus
IPin chipSelectPin
IPin dcPin
IPin resetPin
IPin busyPin
System.Int32 width
System.Int32 height

Properties

IsBlackInverted

Declaration
protected override bool IsBlackInverted { get; }

Property Value

Type Description
System.Boolean

Overrides

IsColorInverted

Declaration
protected override bool IsColorInverted { get; }

Property Value

Type Description
System.Boolean

Overrides

Methods

ClearFrame()

Declaration
protected void ClearFrame()

DisplayFrame()

Declaration
public void DisplayFrame()

Initialize()

Declaration
protected override void Initialize()

Overrides

Refresh()

Declaration
protected override void Refresh()

Overrides

SetPartialWindow(Byte[], Byte[], Int32, Int32, Int32, Int32)

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

Parameters

Type Name Description
System.Byte[] bufferBlack
System.Byte[] bufferColor
System.Int32 x
System.Int32 y
System.Int32 width
System.Int32 height

SetPartialWindowBlack(Byte[], Int32, Int32, Int32, Int32)

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

Parameters

Type Name Description
System.Byte[] bufferBlack
System.Int32 x
System.Int32 y
System.Int32 width
System.Int32 height

SetPartialWindowColor(Byte[], Int32, Int32, Int32, Int32)

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

Parameters

Type Name Description
System.Byte[] bufferColor
System.Int32 x
System.Int32 y
System.Int32 width
System.Int32 height

Sleep()

Declaration
protected virtual void Sleep()