Sd cards

Robbie Trencheny edited this page Jan 13, 2015 · 12 revisions

SD Cards

Status table

Size Mfg Class Success Fail
16GB Team 2 2
16GB Kingston 4 2 2
16GB SanDisk 1 4
16GB G.Skill 6 2
16GB Patriot 1
32GB Zap Glider 4 1

Description of the problem

There have been problems reported with 16 GB cards, possibly this is due to power consumption in some cases. Sometimes a different brand or class will function which might indicate compatibility problems with the SD card controller's implementation of the SPI protocol. The WikiReader does not have a dedicated SD Card interface so must communicate with the Card entirely with SPI; processors with SD Card interface (e.g. PC, USB reader) use SPI only to switch the SD Card out of SPI mode.

One email I received has another possible explanation that the number of sectors is a problem, FAT32 actually groups sectors into allocation units and these are then used for file storage. So he reformatted the card with 64K allocation unit size. The email is reproduce below with permission.

(See also: Hardware Specifications#wiki-MicroSD)

A Modified Kernel May Help

Please try this modified kernel.elf and report back as to whether it solves the problem or not.


This kernel is in the latest update

Hypothesis: some 16GB and 32GB cards take longer to load, and the watchdog times out; modified kernel triggers the watchdog more frequently during file load.

This appears to be the correct explanation, only a small sample though, 3 previously non-booting cards all worked with this fix.

Email received

With some continued experimentation last night and this morning before I got your email I was able to get most of the things working! I think I have narrowed down the issue to an upper limit to the accessible sectors on the disk in the reader.

The card is a Kingston MicroSDHC 16 GB Class 4 that I got yesterday. The model number looks like it's either C16G or SDC4/16GB

Here are the results of a chkdsk on the card after I had formatted it to 4k sectors from the original 32k ones which were not working:

The type of the file system is FAT32.
Volume Serial Number is 4849-A019
Windows is verifying files and folders...
File and folder verification is complete.
Windows has checked the file system and found no problems.

15,302,656 KB total disk space.
         4 KB in 1 folders.
 3,839,472 KB in 115 files.
11,463,176 KB are available.

    4,096 bytes in each allocation unit.
3,825,664 total allocation units on disk.
2,865,794 allocation units available on disk.

Now one of the latest things I tried to do after I emailed you was to copy the contents of a working 4GB card onto the 16 to see if that got it working. This card contained an older version of the base and wiki from last summer (VERSION: 20100619). This boots but searches turn up no results and pressing random gets me an error "Article, 219f28, failed to load" and it asks me to restart the reader.

Then I tried putting the latest base with an old wikipedia on my 4G card. That worked no problem.

I then tried formatting the 16G card with 64k sectors as I was beginning to suspect the issue was due to more sectors on the disk than the reader can handle.

The type of the file system is FAT32.
Volume Serial Number is A0EA-803C
Windows is verifying files and folders...
File and folder verification is complete.
Windows has checked the file system and found no problems.

15,331,328 KB total disk space.
       448 KB in 7 folders.
 9,044,608 KB in 366 files.
 6,286,208 KB are available.

    65,536 bytes in each allocation unit.
   239,552 total allocation units on disk.
    98,222 allocation units available on disk.

I copied the old wikipedia and base on to it and it worked! I then put the new base and new wiki and it worked too. I added Gutenburg and it worked. I filled it up with all the remaining available English items, and well, some of them work. Wikipedia, Quotes, Dictionary and Gutenburg show up on the choose encyclopedia screen but not appro, wikihow or wikitravel.

So I suspect the issue is largely due to an upper limit to the sectors on the disk. Beyond a certain number and it just can't access the files. I am not sure if this is something you can fix with a software change or not but it could explain why some cards work and some don't. It depends on the allocation unit size the manufacturer choose for the default formatting.

Hope this helps with further development! I'm not worried about the things I can't get to work I didn't really need them so I'm just going to delete them from the card. However if future updates continue to expand the size of the other items then they could start moving out of the usable range on the disk so I hope you are able to come out with a fix in the base files to expand the usable sector range.

Thanks for you help! I love the Wikireader! Mark