Remarks

SSD1608
Status
Source code GitHub
NuGet package

The SSD1608 is a two-color display controller for ePaper displays. Data is sent to the controller via SPI and supports full screen updates only.

The SSD1608 is paired with a wide range of two color ePaper display sizes and resolutions.

Sample projects available on GitHub

Code Example

public MeadowApp()
{
    Console.WriteLine("Initialize ...");

    var display = new Ssd1608(device: Device,
        spiBus: Device.CreateSpiBus(),
        chipSelectPin: Device.Pins.D02,
        dcPin: Device.Pins.D01,
        resetPin: Device.Pins.D00,
        busyPin: Device.Pins.D03,
        width: 200,
        height: 200);

    var graphics = new GraphicsLibrary(display);

   graphics.DrawRectangle(1, 1, 126, 32, Meadow.Foundation.Color.Black);

    graphics.CurrentFont = new Font8x12();
    graphics.DrawText(2, 2, "SSD1608", Meadow.Foundation.Color.Black);
    graphics.DrawText(2, 20, "Meadow F7", Meadow.Foundation.Color.Black);

    graphics.Show();
}

Sample project(s) available on GitHub

Wiring Example

To control a SSD1608 from Meadow, connect the following:

SSD1608 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 EpdBase > Ssd1608
Inherited Members EpdBase.ColorMode EpdBase.imageBuffer EpdBase.Width EpdBase.Height EpdBase.Clear(Boolean) EpdBase.Clear(Color, Boolean) EpdBase.Clear(Boolean, Boolean) EpdBase.DrawPixel(Int32, Int32, Boolean) EpdBase.DrawPixel(Int32, Int32) EpdBase.DrawPixel(Int32, Int32, Color) EpdBase.InvertPixel(Int32, Int32) EpdBase.DrawPixel(Int32, Int32, Byte, Byte, Byte) EpdBase.Refresh() EpdBase.Show() EpdBase.SetFrameMemory(Byte[], Int32, Int32, Int32, Int32) EpdBase.SetFrameMemory(Byte[]) EpdBase.ClearFrameMemory(Byte) EpdBase.DisplayFrame() EpdBase.Sleep() EpdBase.DRIVER_OUTPUT_CONTROL EpdBase.BOOSTER_SOFT_START_CONTROL EpdBase.GATE_SCAN_START_POSITION EpdBase.DEEP_SLEEP_MODE EpdBase.DATA_ENTRY_MODE_SETTING EpdBase.SW_RESET EpdBase.TEMPERATURE_SENSOR_CONTROL EpdBase.MASTER_ACTIVATION EpdBase.DISPLAY_UPDATE_CONTROL_1 EpdBase.DISPLAY_UPDATE_CONTROL_2 EpdBase.WRITE_RAM EpdBase.WRITE_VCOM_REGISTER EpdBase.WRITE_LUT_REGISTER EpdBase.SET_DUMMY_LINE_PERIOD EpdBase.SET_GATE_TIME EpdBase.BORDER_WAVEFORM_CONTROL EpdBase.SET_RAM_X_ADDRESS_START_END_POSITION EpdBase.SET_RAM_Y_ADDRESS_START_END_POSITION EpdBase.SET_RAM_X_ADDRESS_COUNTER EpdBase.SET_RAM_Y_ADDRESS_COUNTER EpdBase.TERMINATE_FRAME_READ_WRITE 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 Ssd1608 : EpdBase

Constructors

Ssd1608(IMeadowDevice, ISpiBus, IPin, IPin, IPin, IPin, Int32, Int32)

Declaration
public Ssd1608(IMeadowDevice device, ISpiBus spiBus, IPin chipSelectPin, IPin dcPin, IPin resetPin, IPin busyPin, int width = 200, int height = 200)

Parameters

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

Fields

LUT_Full_Update

Declaration
public static readonly byte[] LUT_Full_Update

Field Value

Type Description
System.Byte[]

LUT_Partial_Update

Declaration
public static readonly byte[] LUT_Partial_Update

Field Value

Type Description
System.Byte[]

Methods

Initialize()

Declaration
protected override void Initialize()

Overrides