Meadow.Foundation.Displays.Il0398
Il0398 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
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).
Class Il0398
Represents an Il0398 ePaper color display 400x300, 4.2inch e-Ink three-color display, SPI interface
Assembly: EPaper.dll
View Source
public class Il0398 : EPaperTriColorBase, ISpiPeripheral, IDisposable, IPixelDisplay, IDisplay
Inheritance: System.Object
-> Meadow.Foundation.Displays.EPaperBase
Derived:
Meadow.Foundation.Displays.Epd4in2bc
Implements:
Meadow.Hardware.ISpiPeripheral
, System.IDisposable
, Meadow.Peripherals.Displays.IPixelDisplay
, Meadow.Peripherals.Displays.IDisplay
Properties
IsBlackInverted
Does the display invert data for black pixels
View Source
protected override bool IsBlackInverted { get; }
IsColorInverted
Does the display invert data for color pixels
View Source
protected override bool IsColorInverted { get; }
Methods
Initialize()
Initialize the display
View Source
protected override void Initialize()
SetPartialWindow(byte[], byte[], int, int, int, int)
Set partial window for display updates
View Source
protected void SetPartialWindow(byte[] bufferBlack, byte[] bufferColor, int x, int y, int width, int height)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | bufferBlack | The buffer with black pixel data |
System.Byte[] | bufferColor | The buffer with color pixel data |
System.Int32 | x | The x start position in pixels |
System.Int32 | y | The y start position in pixels |
System.Int32 | width | The width to update in pixels |
System.Int32 | height | The height to update in pixels |
SetPartialWindowBlack(byte[], int, int, int, int)
Set partial window for display updates
View Source
protected void SetPartialWindowBlack(byte[] bufferBlack, int x, int y, int width, int height)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | bufferBlack | The buffer with black pixel data |
System.Int32 | x | The x start position in pixels |
System.Int32 | y | The y start position in pixels |
System.Int32 | width | The width to update in pixels |
System.Int32 | height | The height to update in pixels |
SetPartialWindowColor(byte[], int, int, int, int)
Set partial window for display updates
View Source
protected void SetPartialWindowColor(byte[] bufferColor, int x, int y, int width, int height)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | bufferColor | The buffer with color pixel data |
System.Int32 | x | The x start position in pixels |
System.Int32 | y | The y start position in pixels |
System.Int32 | width | The width to update in pixels |
System.Int32 | height | The height to update in pixels |
Show(int, int, int, int)
Copy the display buffer to the display for a set region
View Source
public override void Show(int left, int top, int right, int bottom)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | left | left bounds of region in pixels |
System.Int32 | top | top bounds of region in pixels |
System.Int32 | right | right bounds of region in pixels |
System.Int32 | bottom | bottom bounds of region in pixels |
Show()
Copy the display buffer to the display
View Source
public override void Show()
ClearFrame()
Clear the frame data from the SRAM, this doesn't update the display
View Source
protected virtual void ClearFrame()
DisplayFrame()
Send a refresh command to the display Does not transfer new data
View Source
public void DisplayFrame()
Sleep()
Set the device to low power mode
View Source
protected virtual void Sleep()
Implements
Meadow.Hardware.ISpiPeripheral
System.IDisposable
Meadow.Peripherals.Displays.IPixelDisplay
Meadow.Peripherals.Displays.IDisplay