Project: Kobo Glo cracked screen unresponsive

  • Post author:
  • Post category:Kobo

I picked this Kobo Glo up on the classifieds, it’s the first one I have played with. The Kobo looks quite similar to a Kindle and is a similar size and weight. This model is equivalent to a Kindle Paperwhite. The backlight can be turned on or off with a button on the top, as well as brightness adjustment once the Kobo has booted. The button on this broken one works to turn the light on or off but I can’t change the brightness as it won’t boot fully.  

One other major difference I noticed is the Kobo has a slot for a Micro SD card on the side. This can be used to expand the storage capacity of the device, that’s a major win versus a Kindle. 

The Kobo models are a bit easier to identify than Kindle. This Glo has the model number on the bottom, N613.

See this post for model numbers and how to identify your Kobo: What model Kobo do I have? (opens in new tab), 

The power button appeared to do nothing for this Kobo so I decided to take it apart and see if I could put a serial port on it. 

 

What a pleasant surprise, the serial ports are labelled and are proper anchor holes that look like you can put pins in them rather than need to solder. 

Surprisingly though there were multiple serial ports, I had to search on which one to use. It’s the one on the right at the bottom that gives serial access to the console. I read reports that using the wrong serial ports can damage the Kobo so I didn’t try other ports and this one worked fine. 

Close up of the serial ports, the holes are large enough to fit pins into. I’d be interested to see what the factory connector they use for this lserial connection looks like. 

Connecting the serial cables to the Kobo was much easier than a Kindle, I was able to use a pin header connected to a double ended cable, no soldering required at all, very easy. Also notice there is a 4GB MicroSD which apparently holds the OS, even better for troubleshooting. This device seems to be much more focused on simplicity and more open to user access and modification. The cli didn’t even have a root password set, with this being second hand I’m not sure if that is normal, if so that’s wide open and very user friendly. 

I couldn’t readily find any information on what voltage the serial connector is supposed to run at. I used 1.8v the same as the Kindle and that worked fine. If you want to see how to make a cheap 1.8v USB to serial connector I have a post that covers it here: http://ebookrepairs.com/kindle-tips/how-can-i-connect-a-serial-port-to-a-kindle/ (opens in a new tab)

This is the serial output from the Glo as it booted. Seems to be indicating a graphics fault which pointed to the screen being damaged.

[root@(none) /]# reboot
[root@(none) /]# umount: can’t remount /dev/mmcblk0p3 read-only
umount: none busy – remounted read-only
umount: none busy – remounted read-only
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
Requesting system reboot
Restarting system.
msp430_write: write reg error : Reg 0x90 = 0xff00à
U-Boot 2009.08-dirty-svn ( 8? 29 2012 – 11:15:18)
CPU: Freescale i.MX50 family 1.1V at 800 MHz
mx50 pll1: 800MHz
mx50 pll2: 400MHz
mx50 pll3: 216MHz
ipg clock : 66666666Hz
ipg per clock : 66666666Hz
uart clock : 24000000Hz
ahb clock : 133333333Hz
axi_a clock : 400000000Hz
axi_b clock : 200000000Hz
weim_clock : 100000000Hz
ddr clock : 200000000Hz
esdhc1 clock : 80000000Hz
esdhc2 clock : 80000000Hz
esdhc3 clock : 80000000Hz
esdhc4 clock : 80000000Hz
Board: MX50 RDP board
Boot Reason: [POR]
Boot Device: SD
I2C: ready
DRAM: 256 MB
MMC: FSL_ESDHC: 0, FSL_ESDHC: 1, FSL_ESDHC: 2
In: serial
Out: serial
Err: serial
[_get_sd_number] g_sd_number:0
MMC read: dev # 0, block # 1023, count 1 partition # 0 …
1 blocks read: OK
MMC read: dev # 0, block # 1024, count 1 partition # 0 …
1 blocks read: OK
no ramdisk env ,default rd->70d00000
MMC read: dev # 0, block # 8191, count 1 partition # 0 …
1 blocks read: OK
no ramdisk image signature ! skip load initrd !
MMC read: dev # 0, block # 12287, count 1 partition # 0 …
1 blocks read: OK
no ramdisk image signature ! skip load initrd !
ram p=70000000,size=268435456
MMC read: dev # 0, block # 18431, count 1 partition # 0 …
1 blocks read: OK
no “logo” bin header
MMC read: dev # 0, block # 14335, count 1 partition # 0 …
1 blocks read: OK
MMC read: dev # 0, block # 14336, count 2205 partition # 0 …
2205 blocks read: OK
Kernel RAM visiable size=254M->254M
init TPS65185 power …
Hit any key to stop autoboot: 0
MMC read: dev # 0, block # 2047, count 1 partition # 0 …
1 blocks read: OK
no kernel image signature !
MMC read: dev # 0, block # 2048, count 8192 partition # 0 …
8192 blocks read: OK
## Booting kernel from Legacy Image at 70800000 …
Image Name: r5535_#604 Oct 15 15:37:28
Created: 2012-10-15 7:37:32 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1925456 Bytes = 1.8 MB
Load Address: 70008000
Entry Point: 70008000
Loading Kernel Image … OK
OK
Starting kernel …
Uncompressing Linux… done, booting the kernel.
drivers/video/mxc/lk_tps65185.c(456):tps65185_int_func fault on VCOM detected !
drivers/video/mxc/lk_tps65185.c(456):tps65185_int_func fault on VCOM detected !
[zForce_ir_touch_recv_data-176] command BootComplete (0)…
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=0!
1+0 records in
1+0 records out
512 bytes (512B) copied, 0.000226 seconds, 2.2MB/s
cannot open /dev/null
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=1!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=2!
dosfsck 3.0.6, 04 Oct 2009, FAT32, LFN
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=3!
/dev/mmcblk0p3: 34 files, 1186/348630 clusters
FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
/etc/init.d/rcS: line 121: /usr/local/Kobo/hindenburg: not found
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=4!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=5!
(none) login: drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=6!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=7!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=8!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=9!
[PROGRESS_BAR-2857] No progess …
drivers/video/mxc/lk_tps65185.c(456):tps65185_int_func fault on VCOM detected !
drivers/video/mxc/lk_tps65185.c(456):tps65185_int_func fault on VCOM detected !
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=0!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=1!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=2!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=3!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=4!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=5!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=6!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=7!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=8!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=9!
mxc_epdc_fb mxc_epdc_fb: Flush updates timeout! ret = 0x0
Screen resolution is.. 758 x 1024
drivers/video/mxc/lk_tps65185.c(456):tps65185_int_func fault on VCOM detected !
drivers/video/mxc/lk_tps65185.c(456):tps65185_int_func fault on VCOM detected !
> ApplicationBase: loading locale: “:/translations/trans_it_IT”
sh: you need to specify whom to kill
sh: you need to specify whom to kill
sh: you need to specify whom to kill
sh: you need to specify whom to kill
getenv “/mnt/onboard/.kobo/KoboReader.sqlite”
sh: you need to specify whom to kill
> WebSyncScheduler: scheduleTimer: No need to schedule a sync
loadPlugin: loaded plugin for QFontEngine
Loading iType.. YES
> FTE Startup stage: 0. Language selection…
> MainWindowController: Pop: Trying to pop a controller that’s not in the list. LanguageSelectionController(0x10fa498)
> FTE Startup stage: 1. Select setup type…
> FSCheckThread: dbMalformed: false fsCorrupted: false
static bool DictionaryParser::initialize(QString, QString) LANG: “en” TRANS: “”
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=0!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=1!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=2!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=3!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=4!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=5!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=6!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=7!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=8!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=9!
mxc_epdc_fb mxc_epdc_fb: Flush updates timeout! ret = 0x0
drivers/video/mxc/lk_tps65185.c(456):tps65185_int_func fault on VCOM detected !
drivers/video/mxc/lk_tps65185.c(456):tps65185_int_func fault on VCOM detected !
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=0!
loadPlugin: loaded plugin for QRasterPaintEngine
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=1!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=2!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=3!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=4!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=5!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=6!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=7!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=8!
drivers/video/mxc/lk_tps65185.c(1059):wait power on timeout lpcnt=9!

Decided to take it apart and inspect the screen. The first challenge was disconnecting the battery, it not obvious how to get the connector off without damaging it.

In the end it’s very easy once you know how, just use a spudger or tweezers to apply a gentle pressure to lift the connector directly upwards and it will pop off. Refitting it is the reverse, it pushes onto the pins.

Remove the screws marked in red that are holding the board down, use a Phillips screwdriver. 

Remove the screen connectors with the following steps:

1. The black strip is a hinged connector, move it to the right to lift it up.

2. Gently pull out the ribbon cable, it will come away from the cream connector housing. 

3. On the smaller connector there is also a hinged connector move that up to lift it up.

4. Gently pull out the second smaller screen connector.

5. Lift the PCB out of the case, there is a hole cutout for the screen cables to thread through. 

Remove the screws holding the cage to the front Bezel (case)

Next is the tricky part, the screen is glued to the cage with adhesive strips. It can be quite difficult to remove the screen from the cage without flexing it too much and breaking or cracking the glass. 

I found using a plastic spudger pushed down gradually to release the adhesive didn’t do too much damage. You want to avoid actually breaking the glass if possible. 

If I wasn’t already pretty sure the screen was damaged I would be very reluctant to remove it, they are easily broken.

Pretty obvious what the problem here is! Nice big crack in the substrate.

I have ordered a new screen for this Kobo Glo, it will take a few weeks to arrive, once I have it I will update this post with the refit of new screen. I expect it to be a simple reverse procedure of the teardown. 

 

Replacing a broken screen is not really a very economical repair, the replacement screen has cost me $50. Fortunately I can repair it myself but if you had to pay someone to replace it for you then I think it would probably not be worth doing.  

You could consider a new Kobo instead, the Aura (opens a new Amazon window) is a good ereader and is only around $100 now