pub enum Command {
Show 21 variants
DriverOutputControl = 1,
BoosterSoftStartControl = 12,
DeepSleepMode = 16,
DataEntryModeSetting = 17,
SwReset = 18,
TemperatureSensorControl = 26,
MasterActivation = 32,
DisplayUpdateControl1 = 33,
DisplayUpdateControl2 = 34,
WriteRam = 36,
WriteOldRam = 38,
WriteVcom = 44,
WriteLut = 50,
SetDummyLinePeriod = 58,
SetGateLineWidth = 59,
BorderWaveformControl = 60,
SetRamXStartEnd = 68,
SetRamYStartEnd = 69,
SetRamX = 78,
SetRamY = 79,
Noop = 255,
}Expand description
Low-level commands for the Epd2In9. You probably want to use the other methods exposed on the Epd2In9 for most operations, but can send commands directly with Epd2In9::send for low-level control or experimentation.
Variants§
DriverOutputControl = 1
Used to initialise the display.
BoosterSoftStartControl = 12
Used to configure the on chip voltage booster and regulator.
DeepSleepMode = 16
Used to enter deep sleep mode. Requires a hardware reset and reinitialisation to wake up.
DataEntryModeSetting = 17
Changes the auto-increment behaviour of the address counter.
SwReset = 18
Resets all commands and parameters to default values (except deep sleep mode).
TemperatureSensorControl = 26
Writes to the temperature register.
MasterActivation = 32
Activates the display update sequence. This must be set beforehand using Command::DisplayUpdateControl2. This operation must not be interrupted.
DisplayUpdateControl1 = 33
Used for a RAM “bypass” mode when using RefreshMode::Partial. This is poorly explained in the docs, but essentially we have three options:
0x00(default): just update the pixels that have changed between the two internal frame buffers. This normally does what you expect. You can hack it a bit to do interesting things by writing to both the old and new frame buffers.0x80: just update the white (BinaryColor::On) pixels in the current frame buffer. It doesn’t matter what is in the old frame buffer.0x90: just update the black (BinaryColor::Off) pixels in the current frame buffer. It doesn’t matter what is in the old frame buffer.
Options 2 and 3 are what the datasheet calls “bypass” mode.
DisplayUpdateControl2 = 34
Configures the display update sequence for use with Command::MasterActivation.
WriteRam = 36
Writes data to the current frame buffer, auto-incrementing the address counter.
WriteOldRam = 38
Writes data to the old frame buffer, auto-incrementing the address counter.
WriteVcom = 44
Writes to the VCOM register.
WriteLut = 50
Writes the LUT register (30 bytes, exclude the VSH/VSL and dummy bits).
SetDummyLinePeriod = 58
? Part of magic config.
SetGateLineWidth = 59
? Part of magic config.
BorderWaveformControl = 60
Register to configure the behaviour of the border.
SetRamXStartEnd = 68
Sets the start and end positions of the X axis for the auto-incrementing address counter. Note that the x position can only be configured as a multiple of 8.
SetRamYStartEnd = 69
Sets the start and end positions of the Y axis for the auto-incrementing address counter.
SetRamX = 78
Sets the current x coordinate of the address counter. Note that the x position can only be configured as a multiple of 8.
SetRamY = 79
Sets the current y coordinate of the address counter.
Noop = 255
Does nothing, but can be used to terminate other commands such as Command::WriteRam