View Single Post
Old 07-02-2010, 01:52 AM   #1
mTamblyn is on a distinguished road
Posts: 12
Karma: 60
Join Date: May 2010
Device: Kobo eReader, iPhone, iPad
Behind the Scenes - The Kobo eReader Firmware Upgrade

Hi -- it's Michael Tamblyn, EVP Content, Sales & Merchandising at Kobo.

We thought it might be interesting to give a truly detailed blow-by-blow account on what’s going on inside the firmware upgrade for that handful of propellerheads (like us!) who care about these things. It’s worth noting that you can go through the whole upgrade completely happily without knowing any of this. The feeling was that we could save our friends on the phone in Customer Care from head-scratching calls like: “Can you tell me at what point in the upgrade process you do an overwrite of the device’s boot firmware?” I’m not saying our valiant Call Centre friends wouldn’t find out, but why not get it first hand instead? We’ll check in on this forum to answer any questions.

In the Beginning: Your Desktop Reader throws you a popup box that says: “There is an update for the Kobo eReader available. Would you like to download it?”

(This happens if you let your Kobo Desktop auto-update. If you force the issue by downloading a new version of the Desktop, you won’t see this message.)

On Mac:
It mounts the .dmg and you drag and drop to your Applications folder.

On Windows:
It downloads the installer, launches it, and autoinstalls. Along the way, Windows may prompt you with the "Would you like to install this device software?" as it copies the new drivers for the eReader onto your computer.

The application is pretty quiet after the upgrade and you don’t see any changes until... you plug in a reader running v1.0 of the Kobo eReader software. Then the fun starts.

The Upgrade Starts: Intro Screen 1
You see the first screen of a wizard that will walk you through the upgrade process. I won’t repeat what’s on every screen – just call out the interesting bits.

One of the first things we call out is to Adobe Digital Editions users. If you are an ADE person, you should know that the upgrade process removes your authentication authorization from the device. Once the upgrade is complete, you will need to reauthorize the device in ADE. (If you are a Calibre user, insert smirk here.)

Intro Screen 2 – Introducing “The Upgrade Tool”
It’s a paperclip. We ask you to find one now so you aren’t scrambling in the middle of the upgrade process. In our user testing, we were surprised how many people just don’t have paperclips in their homes. Unfortunately, most other things that are that thin (sewing needle, pin, stiletto, syringe) are also sharp, which can damage the innards of the eReader, so paperclip is the best. Complaints that we did not have the foresight to package a paperclip with the eReader can be directed to We predict a spate of very very minor office supply thefts in the coming days.

Step 1 - Downloading
The wizard downloads the firmware update from our servers. It puts a zip file in your temporary folder. The .zip contains three files that we’re going to update your device with (we’ll talk about them later). When the download is done, it automatically ejects your reader safely.

Step 2 – Unplug Your eReader
Why? Because you need to power it off and you can’t power it off if it is plugged in.

Step 3 – Power Off Your Reader, Take Out Your SD Card
If you have an SD Card in the eReader, you need to take it out so that the device doesn’t get confused thinking you’re trying to provide a firmware upgrade from the SD Card. (It’s unlikely, but in a hundred tests, we did see it once, so better safe than sorry.)

Step 4 – Putting the Device into Upgrade Mode (aka The Soon-to-Be Famous “Three Finger Salute”)
You need to press three buttons to put the device into Upgrade mode: Menu, the centre button of the D-Pad, and Power, all at once. “That’s ludicrous!” you say. “Why would anyone have such a random and difficult key combination?” It’s supposed to be hard – it keeps you from putting the device into upgrade mode by accident in the course of normal usage, which we can all agree is a bad thing. (Think “control-alt-delete”.)

If you have small hands, arthritis, or any number of other legitimate conditions, pressing all three buttons yourself can be difficult. So we came up with our innovative “two fingers + table edge” method that you will see diagrammed in the wizard. (Yes, we actually ran tests on this, because that’s the way we are. Two-fingers + table beat out all other methods. So really it should be called “Two-Finger + Table Edge Salute”. Not as catchy and therefore vetoed by Marketing.)

“What’s with this Upgrade Mode hassle? Why can’t you just copy a file over?” you ask?

We aren’t just upgrading our application. We are also upgrading the kernel and the boot firmware, so the device has to be put into a special state to overwrite that software. Good news is our new boot firmware and kernel will help with battery life, indicator light issues, and to make future upgrades easier. Bad news is that you won’t ever have to do the three-finger salute again, which makes us a little sad, since we worked so hard to figure out how to do it well.

If you do the Three Finger Salute correctly, the red light goes on and the screen goes blank. You are now in upgrade mode. If you see anything else, try again.

Step 5 - Plug your reader back in and start the update
There is a spinning thing on the screen that keeps spinning until you plug your eReader back in.

Step 6 - Transferring the files
As soon as you plug it in, it will start updating the software on the eReader right away. The “time remaining” counter starts very conservatively (mine started at 20:00) and then quickly gets more accurate (mine jumped to 5:20 right away).

It’s doing three things: First it copies the boot firmware, then the kernel. They get updated in the first 30 seconds. Then the application gets transferred over.

If you unplug during the update, while various pieces of critical software are getting written to the device, you will be in trouble. It’s the equivalent of unplugging your computer in the middle of an OS upgrade. The device can end up in an unusable state if you only have half of your boot firmware. If this does happen, there is a way out, but it means getting in touch with Customer Care to get an SD Card with a new version of kernel, firmware, and application. There are very non-digital envelopes and shipping involved, with time measured in days, not hours. Best avoided.

Usually the transfer takes about 5-6 minutes – the app is about 40Mb, but it is going through a special interface in the device that is slower than a normal USB data transfer.

Step 7 – Return of The Upgrade Tool
You use the magical upgrade tool (paperclip) to reboot your device. (Make sure you hear the click!)

Once you’ve done that, the wizard will ask you to wait. You don’t actually have to – the device is rebooting and the final stage of the upgrade takes place: the compressed update files are getting decompressed and installed and your content is getting migrated from an older database format to a newer, better one.

This takes 5 minutes or so (longer if you have lots of books). But don’t panic. It will get there. When it finishes, the wizard will tell you you’re ready. If you have already unplugged, you’ll see your library and be able to start reading.

Put your feet up. Grab a cold drink. Get a tattoo. (We will be doing all three.)

Most Difficult Part of Developing the Upgrade
We had to develop new software that allowed us to flash the device from multiple platforms without blowing away device contents. Not glamorous, but it was tough.

Most Fun Part of Developing the Upgrade
Chants emanating from one of the offices: “Brick it! Brick it! Brick it!” as we tried to pinpoint at which exact point pulling your USB cable would turn the eReader into an unusable brick.

Like I said at the beginning, looking forward to your questions. I’ll be checking in when I can. If you try to match skills with me on kernel optimization for low-power eInk devices (or something equally not-my-thing), I will almost certainly send in our ninjas instead.
mTamblyn is offline