Fixing the problem of slow page turns on Kobo (ePub)

One of the things I love about the Kobo eReaders is the fact I can read books that haven't only come from the Kobo store.  While this isn't unique to Kobo's products, it does seem very easy to drop the file over to the device and read.  Sometimes though I've ended up with slow page turns, and that's a problem - especially when the slowness duration hasn't been consistent.

Quite by chance I found the fix while browsing the Kobo subreddit, so I've documented the solution here as much for my own notes as anything else.  The solution is to convert your books to KePub format.

"But I don't want to convert my books!" - use the Kobo app instead

You're not obliged to convert your books 🙂.  If you're happy to continue with slow page turns then carry on with your original source file regardless.  For me, the inconsistent duration of a page turn broke my reading flow, so I needed to sort that problem out.

Alternatively, you can use the Kobo app on your phone (tested with Android) to read the standard ePub as the app doesn't have the slow page turn problem:

  1. From the home screen in the app, tap the account icon in the top right (it looks like a person's head and shoulders)
  2. The account screen will open
  3. Tap  import items
  4. A file chooser will open - for me I get taken to the Downloads folder to start with
  5. Locate the ePub file and tap it
  6. The select items to import screen opens, and the ePub file you just tapped should have a tick next to it
  7. Tap import selected at the bottom of the screen
  8. You will be returned to the account screen
  9. Tap the back button
  10. You will be back at the home screen
  11. Tap my books
  12. You should find your imported book in the list (possibly at the top depending on your sort order)

The problem: It's all about file formats

When you buy a book from the Kobo store your device downloads a "Kobo ePub".  I thought that was just a way to tell what came from the store, and what came from elsewhere, but it turns out Kobo makes some changes.

The commonly used ePub format (more on Wikipedia and also in this interesting article) is really just a zip file containing XHTML and XML files - the same file structures that power the web today.  The book you want to read is made up of multiple files inside the zip archive, and the reading device is told what section / chapter is where.  ePub has been around since 2007 and I remember my first eReader (a Sony PRS-505) also supported ePub.

When it comes to Kobo, the Kobo ePub is actually an extension of ePub that has (as I understand it) added the ability to reference words or sentences in an easier way, for example for highlighting or annotating, and optimises the file for use on a Kobo device.  Books in Kobo's ePub format (KePub) give page numbers and chapter progress that's accurate when read on a Kobo, rather than an ePub that doesn't adjust the number of pages per chapter based on font and screen size.  You might notice when reading a normal ePub, there are page numbers in the right hand margin part way down the screen, for example.

The solution to my slow page turning was to convert the ePub files to KePub.

Introducing Calibre

Calibre is an e-book management tool that was originally released in 2006.  Through Calibre we gain the ability to easily convert files to KePub, and can also copy book to, or remove books from, our Kobo.  You can read more about it on its official website and on Wikipedia.  Note that Calibre is not officially supported by Rakuten or Kobo.

The author has kindly made Calibre open source, and importantly the program is available for Windows, MacOS, and Linux.  I have used Calibre on Windows and Linux (I don't have a Mac) and it's a really useful application.

Download Calibre for your operating system from the author's website and install it as you normally would.  For Ubuntu users (tested on Ubuntu 24.04 in June 2024) you can simply run sudo apt install calibre.

Adding plug-ins

⚠️
Be warned that these plug-ins are not officially supported by Kobo or Rakuten. If changes are made to the file format specification, or the Kobo's operating system, the plug-in may stop working.

A plug-in allows you to add functionality to a piece of software, in this case Calibre.  You might be familiar with plug-ins already as your possibly use some in your web browser  - browsers tend to call plug-ins "extensions" which is the same principle.

First we need to download the plug-ins from GitHub: https://github.com/jgoguen/calibre-kobo-driver/releases.  These plug-ins are open source, meaning that you can read the code, contribute features or fixes, or even audit the code if you'd like.  I decided to trust the plug-in based on what the rest of the community was saying, but as with all code from individuals on the Internet you should make your own decision (the same is true for Calibre and anything you ever download).

From that GitHub releases page you want the following files:

  • KePub.Input.zip
  • KePub.Metadata.Reader.zip
  • KePub.Metadata.Writer.zip
  • KePub.Output.zip
  • KoboTouchExtended.zip

I won't go into detail on what each of those does - the author explains that in their readme.  As I write this I'm using version 3.6.7 of the plug-ins from 1st December 2023.

Once you have downloaded the five zip files:

  • Open Calibre
  • Click the drop down arrow on the right of the preferences button
  • Hover over Advanced and then choose Plugins
Finding the "Plugins" option in the advanced preferences menu.
  • The plugins window opens.  Choose the Load plugin from file button from the bottom right
  • A file chooser dialog will open, and this will look different based on your operating system
  • Browse to the zip files you downloaded and choose the first one to install.  You will see a warning about installing plug-ins - click yes if you are happy to continue
  • Once the plugin is installed you'll be told it was successful
  • Repeat the process for each of the plugins
  • Do not close the plugins window yet

Disable the original Kobo Touch driver

The author recommends disabling the original Kobo Touch driver after installing the KoboTouchExtended driver.

  • In the plugins window that you already have open, search for kobo touch in the search at the top
  • You will see two results - Kobo Touch by David Forrester and KoboTouchExtended by Joel Goguen (each will have a version number in brackets)
  • Select Kobo Touch by David Forrester and click Enable/Disable plugin
  • The plugin will show with a grey puzzle piece, and will say "this plugin has been disabled" underneath
  • Click Apply which will also close the Plugins window
  • Restart Calibre

Adding your books to Calibre

In order to convert books we first have to add them to Calibre.

  • Click the Add Books button from the leftmost edge of the toolbar
  • Browse to the epub file you want to add (that we'll convert)
  • Click add / open / ok (this option will be different based on your operating system)

Converting your books

Before we get started, a warning from the plug-in's author:

⚠️
WARNING: THE KEPUB FILE STRUCTURE IS NOT YET FULLY UNDERSTOOD. DO NOT, UNDER ANY CIRCUMSTANCES, DELETE THE FILES FOR THE SOURCE FORMAT. ALWAYS HAVE A NON-KEPUB FORMAT FOR YOUR BOOKS.

If you follow the process as outlined here, Calibre will keep your original source file (ePub, PDF, or any other format Calibre supports).

Books can be converted either individually (select a single book, start conversion) or in batches (select multiple books, start conversion).  For these instructions I'll focus on converting a single book at a time.

  • From the list of books in the middle pane, click the book you want to convert.  For this example I'm choosing Attack Surface
  • From the toolbar, click Convert Books
  • A new window will appear providing us options for converting the book
  • In the top right hand corner there is a drop down menu for output format
  • Click the menu and choose KEPUB as the format
  • From the bottom right corner, click OK
  • The convert books window will close
  • In the bottom right corner of Calibre you'll be told there is one background job running - this is the conversion taking place.  Your operating system might show a notification to tell you Calibre is "starting conversion of the book"
  • When the conversion finishes, the jobs count will say zero.  Your operating system might show a notification to tell you Calibre has completed the conversion

Sending the file to your Kobo

It's important to make  sure you send the right format to your Kobo!

  • Turn on your Kobo and wait for it to show the main screen
  • Plug your Kobo into your computer
  • The Kobo should detect that it is plugged in to the computer and ask if you want to connect
  • Tap Connect on the Kobo
  • In Calibre, right click the book you want to send to your Kobo - a menu appears
  • Move the mouse to send to device
  • From the sub menu, move the mouse to send specific format to
  • Click main memory
  • A window will pop up asking you to choose the format you want to send, choose KEPUB
  • Click OK
  • Calibre will send the book to your device
  • Once you're done sending books to the device, click the drop down arrow next to the device icon on the toolbar at the top of Calibre
  • Click eject this device
  • Unplug your Kobo and the importing content screen will appear (this might be very quick)
  • Your books will be available

You should now be able to open your converted books and read them with fast speed turns.


Banner image: Screenshot of the "convert book" screen in Calibre