Restoring a Digma E629 eBook — troubleshooting from battery to E-Ink waveform

It all started when the Digma E629 eBook had been sitting unused for quite a long time, and when I finally decided to charge it and use it again — it refused to turn on. At that moment the device was almost 10 years old, so it was not surprising that the first disassembly immediately revealed a completely discharged Li-Ion battery (3.7V 306573, 1500mAh). Fortunately, this is a common form factor, so I easily found and ordered a replacement.
However, after replacing it… the problem remained. The display did not refresh, although the device was detected via USB and the battery was charging normally. I connected to the UART port (standard speed 115200) and started digging deeper.

IMG_20260306_212337

Symptoms

  • The device would not power on with the original battery
  • After replacing the battery, the system started showing signs of life
  • Linux boot process visible over UART
  • E-Ink screen does not refresh

The logs showed the new battery charging, meaning it was detected correctly and the PMIC AXP192 could see it:

ac_line_status = 1 
battery_status = 3 
path:/usr/share/splash/charging.jpg

It also showed that the system was calling display refresh:

Refresh():(0,0,758,1024)
eink:3 (0,0,758,1024)
FBIO_UPD_DISPLAY

This means the driver is working, but physically the screen does not change.

Checking display power

E-Ink displays require several high-voltage power rails. In my case the display was ED060XD4 (GEN60D9006), and it had six power lines:

22V
15V
-20V
-15V
VCOM
3.3V

There were labeled test pads near the display connector on the board.
At first it seemed that the DC-DC converter was not working because there were no voltages present.

IMG_20260306_224251

But during device startup the voltages briefly appeared and then turned off.
This is normal — E-Ink power rails are enabled only during screen refresh.

Searching for the E-Ink power block

The board has a separate shielded block with inductors, diodes, and analog ICs.

Inside were:

  • 2 inductors
  • several diodes
  • GS358S (LM358 equivalent)
  • chip marked LTTS
  • trimmer resistor (VCOM)

This turned out to be the E-Ink power supply block.

But it was working correctly.

Flash memory on the display cable

There is a separate SPI flash chip on the display FPC cable:

MXIC L132803

After some research I found that this flash stores:

  • waveform (LUT)
  • refresh tables
  • VCOM calibration
  • panel data

If the waveform is corrupted, the screen will not refresh even though everything else (power, data) works.
On the internet I found a utility for reading and writing waveform data for the Rockchip RK2818 via USB:
RK2818_waveform update tool

Reading waveform via USB

To use the tool, the reader must be put into firmware mode: power it off completely, hold the joystick down button, and connect it to a Windows PC via USB.
If everything is correct, a device called Rockusb Device will appear.

e629-windows-rockusb-device

Important: default drivers may not work, so I manually downgraded them to the old ones included with the Rockchip flashing tools:
Rockusb-Device-Driver-win8-win10-x64

I decided to read the contents first. The tool is minimalistic and not very intuitive — you need to set the dump size (first red box) and select the output file using “…”.
The flash size is 512 KB, so I specified 524288 bytes (0x80000):

Spi-flash-tools-digma

The arrow shows how your device should look if the drivers are installed correctly.

Inspecting the dump in hex revealed:

  • valid header
  • panel ID
  • repeating blocks
  • strange structure at the end of the file

Comparison with original waveform

From the dump string
rkf:v1.0.104/10/15 Einks 320_G036_AA1701_ED060XD4C1_TC
I managed to find the original file:
320_G036_AA1701_ED060XD4C1_TC

Comparison showed:

  • header matches
  • panel ID matches
  • format matches
  • but part of the data differs

This meant the flash was partially corrupted.

Reflashing waveform

Using the same utility, I wrote the original file back to flash.

Spi-flash-tools-digma-write

After writing:

  • the device booted
  • the screen refreshed
  • the reader fully worked

This confirmed that the problem was exactly the waveform.

Why the waveform could be corrupted

The most likely reason is power failure during flash write.

In my case:

  • battery was dead
  • device was unused for a long time
  • there may have been a failed update attempt
  • part of the flash was written incorrectly

SPI NOR flash can be corrupted in a single sector, and that is enough for the display to stop working.

Conclusion

If an E-Ink device:

  • boots normally
  • HV power is present
  • refresh is called
  • but the screen does not change

check the panel waveform flash.

Sometimes the problem is not the display or power, but damaged refresh tables.

In my case the repair was just reflashing the flash chip.

Result

✔ battery replaced
✔ E-Ink power checked
✔ waveform dump read
✔ original file found
✔ flash reflashed
✔ device fully restored

A rare but very interesting repair.