Výměna e-ink displeje u čtečky.

Václav Ovsík vaclav.ovsik na gmail.com
Čtvrtek Březen 7 14:09:58 CET 2019

On Thu, Mar 07, 2019 at 01:45:18PM +0100, Jaroslav Lukesh wrote:
> Zajímalo, děkuji!

Moc si to nepamatuju, ale psal jsem si v Zimu nějaké poznámky,
zdroj stránky (Wiki markup) přikládám... (jsou to jen hesla a odkazy
a citace co mi přišlo zajímavé...)
Je tam popsaná varianta, že se obsah té flash přenese nějakým trikem
přehazováním prasklého a nového displaye. To se mi nějak nezadařilo
a šel jsem cestou toho serprog...
Pro nasměrování by to snad mohlo stačit, pokud by to někdo také řešil.
Ten obsah flash a možná fotky mám zřejmě někde doma v cestě, kterou si
nesyncuju do práce.
------------- další část ---------------
===== Kalibrace screenu? =====

This problem of the bad waveform almost exclusively lies with the 3G models of the Kindle Keyboard (and also with the 3g Kindle Touches). Here is a practical solution to your problem which, although not perfect, works most of the time: (1) Save the old, broken screen that you have removed from a 3G model of K3. (2) While the Kindle is still open, attach the new screen to it and navigate to "Reset to Factory Defaults" in the system submenu of the Kindle, and press Enter. (3) Press the arrow to navigate to "OK" of the Cancel-OK prompt which appears in the popup window for Reset to Factory Defaults, but do not press Enter yet. (4) Remove the new screen and re-connect the original broken screen; you will now be running blind, but you know that the Kindle is poised to reset with the pressing of the enter key. After the old screen is re-attached, go ahead and press Enter. (5) The Kindle will now reset to factory defaults, (hopefully) accessing the eprom chip on the ribbon cable of the old broken screen and loading the good waveform that resides there. Since you cannot watch the progress of this reset, give the Kindle at least FIVE minutes to complete the process before unplugging the old screen and re-plugging the new screen. Then slide the power bar and take a look: your 'wireframe' pictures should now be restored to solid rich grayscale!

I have repaired hundreds of Kindles and followed this procedure with around a 90% success rate. Unfortunately I have had some units (all 3G) which persistently reset to a bad, or missing, waveform, but the process has worked most of the time. Due to those failures, however, I have built up an inventory of around 50 broken 3G screens so that I can keep trying to find one to boot to which the subject Kindle will successfully read.

By the way, you should follow this procedure only after upgrading to 3.4 OS, since a later system upgrade (with a replacement screen installed) can again lead to a 'bad waveform' problem.

Good luck! 

E-ink corp sells various different types of sc7 screen:

c1 h1 h2 h3 h3-0B

However, i cant find info about differences. What i know, that C1 and H3-0B works with kindle normally, buy h1, h2, h3 makes troubles.

Bez HW blbosti?:	http://www.mobileread.com/forums/showpost.php?p=2952198&postcount=62

Nejaka rekapitulace:	http://www.mobileread.com/forums/showpost.php?p=3056162&postcount=82

===== Diagnostika =====
I booted the Kindle into diagnostic mode (placing an empty file named ENABLE_DIAGS on the user memory of the Kindle and rebooting) with the new panel attached.

===== DOCS =====
eInk:			[[./ED060SC7 Ver 20.pdf]]
Controller:		[[./S1D13521B01_Spec.pdf]] 
Controller new:	[[./x93ac001.f01.3 (S1D13522 Product Brief Rev 1.3).pdf]] 	[[./x93aa003.f01.0 (S1D13522 Development Spec Rev 1.0).pdf]]	[[./S1D13522 Reference Circuit for Spectra.zip]]

Popis co je waveform:	http://wenku.baidu.com/view/187d53956bec0975f465e245.html

 *  linux/drivers/video/eink/broadsheet/broadsheet_waveform.h --
 *  eInk frame buffer device HAL broadsheet waveform defs
 *      Copyright (C) 2005-2009 Lab126
 *  This file is subject to the terms and conditions of the GNU General Public
 *  License. See the file COPYING in the main directory of this archive for
 *  more details.


#define EINK_WAVEFORM_FILESIZE          131072  // 128K..
#define EINK_WAVEFORM_COUNT             0       // ..max

#define EINK_ADDR_CHECKSUM1             0x001F  // 1 byte  (checksum of bytes 0x00-0x1E)
#define EINK_ADDR_CHECKSUM2             0x002F  // 1 byte  (checksum of bytes 0x20-0x2E)
#define EINK_ADDR_CHECKSUM              0x0000  // 4 bytes (was EINK_ADDR_MFG_DATA_DEVICE)
#define EINK_ADDR_FILESIZE              0x0004  // 4 bytes (was EINK_ADDR_MFG_DATA_DISPLAY)
#define EINK_ADDR_MFG_CODE              0x0015  // 1 byte  (0x01=PVI, 0x02=LGD)
#define EINK_ADDR_SERIAL_NUMBER         0x0008  // 4 bytes (little-endian)

#define EINK_ADDR_RUN_TYPE              0x000C  // 1 byte  (0x00=[B]aseline, 0x01=[T]est/trial, 0x02=[P]roduction, 0x03=[Q]ualification, 0x04=V110[A])

#define EINK_ADDR_FPL_PLATFORM          0x000D  // 1 byte  (0x00=2.0, 0x01=2.1, 0x02=2.3; 0x03=Vizplex 110, 0x04=V110A; other values undefined)
#define EINK_ADDR_FPL_SIZE              0x0014  // 1 byte  (0x32=5", 0x3C=6", 0x50=8", 0x61=9.7")
#define EINK_ADDR_FPL_LOT               0x000E  // 2 bytes (little-endian)
#define EINK_ADDR_ADHESIVE_RUN_NUM      0x0010  // 1 byte  (mode version when EINK_ADDR_FPL_PLATFORM is 0x03 or later)
#define EINK_ADDR_MODE_VERSION          0x0010  // 1 byte  (0x01 -> 0 INIT, 1 DU, 2 GC16, 3 GC4)

#define EINK_ADDR_WAVEFORM_VERSION      0x0011  // 1 byte  (BCD)
#define EINK_ADDR_WAVEFORM_SUBVERSION   0x0012  // 1 byte  (BCD)
#define EINK_ADDR_WAVEFORM_TYPE         0x0013  // 1 byte  (0x0B=TE, 0x0E=WE; other values undefined)

#define EINK_FPL_SIZE_60                0x3C    // 6.0-inch panel,  800x600
#define EINK_FPL_SIZE_97                0x61    // 9.7-inch panel, 1200x825

struct broadsheet_waveform_info_t
	unsigned char   waveform_version,           // EINK_ADDR_WAVEFORM_VERSION
					waveform_subversion,        // EINK_ADDR_WAVEFORM_SUBVERSION
					waveform_type,              // EINK_ADDR_WAVEFORM_TYPE
					run_type,                   // EINK_ADDR_RUN_TYPE
					fpl_platform,               // EINK_ADDR_FPL_PLATFORM
					fpl_size,                   // EINK_ADDR_FPL_SIZE
					adhesive_run_number,        // EINK_ADDR_ADHESIVE_RUN_NUM
					mode_version,               // EINK_ADDR_MODE_VERSION
					mfg_code;                   // EINK_ADDR_MFG_CODE

	unsigned short  fpl_lot;                    // EINK_ADDR_FPL_LOT
	unsigned long   filesize,                   // EINK_ADDR_FILESIZE
					serial_number,              // EINK_ADDR_SERIAL_NUMBER
typedef struct broadsheet_waveform_info_t broadsheet_waveform_info_t;

struct broadsheet_waveform_t
	unsigned char   version,
	unsigned long   serial_number;
	bool            parse_wf_hex;
typedef struct broadsheet_waveform_t broadsheet_waveform_t;

struct broadsheet_fpl_t
	unsigned char   platform,
	unsigned short  lot;
typedef struct broadsheet_fpl_t broadsheet_fpl_t;

extern void broadsheet_get_waveform_info(broadsheet_waveform_info_t *info);
extern void broadsheet_get_waveform_version(broadsheet_waveform_t *waveform);
extern void broadsheet_get_fpl_version(broadsheet_fpl_t *fpl);
extern char *broadsheet_get_waveform_version_string(void);

extern bool broadsheet_waveform_valid(void);


===== Screen =====
Nový:	ED060SC7(LF)NH			HER60LA040(E157)	E5H0A8F71LAVD1879AP
Orig:	ED060SC7(LF)			CMT60A8024(C14)	E2N006141K8V30616AY

Serial Flash: [[~/data/hw/ds/W25X20BL.pdf]]
Flashrom samotný je balík v Debianu. Serprog je potřeba dostat do arduina.

Další informace o konferenci Hw-list