GDEW0154Z04

From Exploitee.rs
Revision as of 20:47, 24 May 2018 by Rena (talk | contribs) (created page with command set)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

"Although the information we release has been verified and shown to work to the best our knowledge, we cant be held accountable for bricked devices or roots gone wrong."

GDEW0154Z04 is the controller for the Waveshare 1.54inch ePaper display module. This display module can be found for ~$30 online and is ideal for projects that require very little power consumption and infrequent updates. It features a black layer and a red layer.

Command Set

This controller accepts commands over SPI. While the basics are documented by the manufacturer, several commands and parameters are poorly or not documented.


Command Parameter bytes Description Notes
00 1 Panel Setting Parameter bits:
  • 0x80: Unknown, set in documentation.
  • 0x40: Unknown, set in documentation.
  • 0x20: Unknown, unset in documentation.
  • 0x10: If set, disables the red layer. This makes refreshes twice as fast, but can leave a red tint. It's possible to set this bit after drawing on the red layer; any unrefreshed pixels will remain red.
  • 0x08: If set, flips the image horizontally.
  • 0x04: If set, rotates the image 180 degrees.
  • 0x02: If unset, the display will not refresh.
  • 0x01: If unset, the display will not power on. (Image remains, but does not respond to commands.)
01 4 Power Setting First parameter bits:
  • 0x04: Unknown; if unset, the display seems to not work correctly.
  • 0x02: Same as 0x01?
  • 0x01: If set, use internal generation circuit for +VDH; if unset, use external source. (There does not seem to be any way to provide the external source with this module.)

Second parameter: unknown; documentation says it should always be zero.

Third parameter: Positive voltage for red LUT. Range 2.4 to 8.0V, step 0.2V. High 3 bits unused.

Fourth parameter: Negative voltage for red LUT. Range -2.4 to -8.0V, step 0.2V. High 3 bits unused.

02 0 Power Off Turn off logic. BUSY line will go low. Image remains on screen.
03 1 Gate Voltage
04 0 Power On Turn on logic.
06 3 Booster Soft Start Unknown use; possibly not supported by this controller.

Each parameter byte is a drive strength. The manual states that all should be zero, but in its example code uses values 0x07, 0x06, 0x05, and states that bits 3 and 4 are used as well.

0C 3 Soft Start Possibly same as 0x06 for a different controller.
10 varies Start Transmission (Black) Issue this command, then send data for black pixels.
11 ? RAM Data Entry Mode Possibly not supported by this controller.
12 0 Refresh Refreshes the display. Takes ~8 seconds (or 4 if red layer is disabled).
13 varies Start Transmission (Red) Issue this command, then send data for red pixels.
20 15 Upload Waveform (Black layer VCOM) Parameters are the waveform LUT data.
21 15 Upload Waveform (White)
22 15 Upload Waveform (Black)
23 15 Upload Waveform (G1) Unknown what G1 refers to. Doesn't seem to do anything.
24 15 Upload Waveform (G2) Unknown what G2 refers to.
25 15 Upload Waveform (Red layer VCOM)
26 15 Upload Waveform (Red layer white)
27 15 Upload Waveform (Red)
2C 1 VCOMVol Unknown. Possibly meant for another controller.
30 1 PLL Control Parameter bits 0-2 are N, 3-5 are M.

Manual suggests value 0x39 for temperatures >= 30, 0x2A otherwise. (But doesn't specify Celsius or Fahrenheit, and there's no way to read out the temperature with this module.) Changing these values can make the display refresh very slowly. I haven't found any value that makes it faster.

3A 1 Dummy Line Apparently sets the number of extra lines transferred but not shown. May be for another controller.
3B 1 Gate Time Unknown, maybe for another controller.
3C 1 Border Unknown, maybe for another controller.
40 0 Temperature Sensor Command (TSC) Returns 2-byte temperature over DOUT. However, this module does not expose DOUT, so this is not useful.
41 1 Temperature Sensor Setting Parameter: 0x80=use external sensor, 0x00=internal. (No way to connect external sensor to this module.)
42 3 TSW (Temperature Sensor Write?)
43 2 TSR (Temperature Sensor Read?)
44 2 Set RAM Area X Unknown, maybe for another controller.
45 4 Set RAM Area Y
4E 1 Set RAM Pointer X
4F 2 Set RAM Pointer Y
50 1 VCOMM & Data Interval Setting Parameter bits:
  • 0x10: If set, inverts the display (swaps black/white).
  • 0x0F: Unknown; mentioned in manual but not explained.
60 1 Unknown Undocumented; affects update region. Parameter:
  • 00 to 17: Updates normally.
  • 18: Blanks most pixels; updates the border; updates the display very faintly.
  • 19 to FF: Updates border only.
61 3 Resolution Setting Tells the controller the resolution of the display.
  • First parameter: vertical size.
  • Second parameter: horizontal size (high byte).
  • Third parameter: horizontal size (low byte).

This can be changed after drawing, allowing to refresh only some rows.

71 0 Get Status Useless, since no DOUT line.
80 1 Unknown Undocumented. If parameter bit 0x01 is set, the module shuts down immediately. (Will not respond to commands until powered on again.)
82 1 VCM_DC Setting Parameter: VCOM value (0 to -3.0V, step 0.1V). Anything beyond -3.0 is clamped to -3.0.
F0 1 Booster Source Voltage Unknown, maybe for different controller.