Hands on the reMarkable Tablet 2

2020 December 30

reMarkable 2

I recently got my hands on the reMarkable Tablet 2. This e-ink tablet lets you read ebooks and take notes with a 'paper feel' experience. But the best part of the tablet: it runs linux and is very hackable. This lead to the rise of a thriving hacker community. Here is what the tablet looks like in action:

This tablet has many strengths:

  • it runs on linux with a native SSH access open
  • the writing experience is great, apparently one of the best out of the other writing tablets out there
  • the semi-openess of the tablet makes it relatively easy to hack it
  • the community around the tablet has already developped many tools to add new features
  • the company is European (norwegian to be precise)
  • you don't have to use their cloud if you don't want to

That being said, the tablet has two blatant drawbacks:

  • the software on the tablet has very limited features, for instance you cannot use it with your personal cloud without hacking it
  • the company is very unresponsive towards their users

I detail the drawbacks of tablet in the next section, if you're not interested, skip it and learn how to establish a ssh connection to the tablet!

In this post I'll detail the first things you might want to do with your tablet and give you some links to the interesting tools already developped by the community.

reMarkable 2 drama

Covid delay

The reMarkable team is infamously known for its bad communication. The best example at hand is the way they handled the Covid pandemic. The first batch of the new reMarkable 2 tablet was due in June. When the pandemic was declared and every country closed their borders and quarantined their citizens, they ensured that there would be no delay whatsoever in their production. June came, but no tablets with it, the people who pre-ordered the tablet had to wait for mid June to finally learn that there would be a delay.

Jagged lines issue

The second example I could give is the "jagged lines" issue. The reMarkable 2 has quite a serious issue of weird squiggly lines (see picture below). A lot of users have been vocal about this on Reddit and Youtube.

Jagged lines

But it looks like the company doesn't really care about this problem, their template response is :

We are continuously working on improving the user experience of the reMarkable paper tablet. Out team is now aware of your concerne and will consider if this is something that might be worked on in the future.

So basically they are saying that it doesn't look like a problem to them.

Poor software

Another major drawback of the tablet is its software. The only thing the tablet is really great at is taking notes, you get layers, different kind of markers. But even here, there is a lack of fundamental features: you can't draw basic shapes (straight line, circle, square, ...), the user experience to navigate in an ebook or a notepad is terrible.

The worst aspect of the software relates to ebook reading. First off, you don't have bookmarks. Then the tablet can only read .pdf or .epub files. You can basically forget about .epub files actually because their reader is atrocious: you get weird spaces between lines, weird breaks between works, all-in-all I would not recommend it.

So if you have an .epub file, you'd better convert it to a .pdf first with Calibre. Then when, reading a PDF, there is no pinch-to-zoom feature: you can adjust the viewport for the entire pdf or zoom by clicking on the zoom icon. There is also no way to split your screen to take notes while reading a file, or quickly switch between two files as a workaround.

A glimmer of hope

So why even buy this tablet ? Whenever I say "it's impossible to...", I kind of lie, there are ways to do "impossible" things by hacking your device. A lot of very skilled developers have created tools to add new features to the tablet.

Still, I think it's a shame the reMarkable team doesn't acknowledge that their software crucially lacks features and don't plan on hiring software engineers to solve these issues.

At the moment they are hiring:

  • 3 hardware experts
  • 3 marketing experts
  • 1 design expert

It sure doesn't bode well for the evolution of the software...

SSH connection

First connection

You can connect to your reMarkable tablet with SSH out of the box. Here are the steps to connect to your tablet:

  1. Connect your tablet to your Wi-Fi or connect it in USB to your computer.
  2. On your tablet, go in Settings > Help > Copyrights and License > General information.
  3. In the section GPLv3 Compliance, you will find the SSH password and the IP addresses available to connect to (one of them is USB, the other Wi-Fi).

You need to activate the USB web interface each time you connect your tablet to your computer. To do so go in Settings > Storage and check the slider USB web interface

You now have all the information required to connect to your tablet with SSH:

ssh root@10.11.99.1

Save the password in your password manager. If you lose it, you're screwed.

Adding an ssh key

It's always better to connect using private key cryptography rather than antiquated passwords. To do so :

  1. Create a '.ssh' folder: mkdir /home/root/.ssh
  2. Create a 'authorized_keys' file: touch /home/root/.ssh/authorized_keys
  3. Copy your public key in this file: cat ~/.ssh/id_rsa.pub | ssh root@10.11.99.1 "cat >> .ssh/authorized_keys"

Find a full explanation on the unofficial reMarkable wiki

Connecting with a Yubikey

I love Yubikeys, and I use them to store authentication GPG keys, which I use to connect to my servers. To get the equivalent of the public key I run ssh-add -L when my key is plugged in. Then I can copy the output the authorized_keys file to connect with my yubikey!

The advantages of doing it this way are:

  • the private key cannot be stolen as it is in the hardware security key (.i.e the Yubikey)
  • I can use my Yubikey with another computer to connect to my servers, or in this case, my reMarkable tablet

Find more info about Yubikeys configuration for SSH on DrDuh's guide

File system

The reMarkable tablet runs linux, so after connecting to your tablet you will find a usual Linux file system. In this section, I will highlight the most interesting and important folders on the tablet.

Notes and ebooks

Your notebooks and imported books can be found in /home/root/.local/share/remarkable/xochitl. Each book, notebook and folder you create gets a UUID (unique ID) assigned. And for each of these a set of files is created to store the data.

For example, when you import a new book named "Black Hat Go", the device generates a UUID like "daf42439-c073-4006-b836-8b0f49609337", a folder with this name and a set of file with this name but different extensions.

FilenameTypePurpose
\<UUID>.metadataFileStores metadata about the file: name, last page consulted, is it deleted ?, ...
\<UUID>.contentFileStores the pencil preferences, PDF adjustments: zoom, orientation, size, ...
\<UUID>.pagedataFileLists the template selected on each page (one line = one page)
\<UUID>.epubFileThe epub book imported
\<UUID>.pdfFileThe pdf book imported. This file is auto generated for epub files. It appears tha the tablet only displays pdf files
\<UUID>.thumbnails/FolderContains a small .png image for each page of the book / notebook. They are used as a preview of each page in the overview
\<UUID>/FolderStores the .rm files that contains the actual scribbles

Templates

You can choose a template for your notebooks. This is the background of each page: it can be a grid, small dots, a weekly planner, and so on. These templates are store in /usr/share/remarkable/templates.

For each template you will find two files:

  • a .png file that is quite large, this file is the one displayed on the reMarkable
  • a .svg file, much smaller, this one is used to generate the .pdf file when exporting

Proprietary .rm files

A lot of talented users have reversed engineered the .rm file format (see Axel Hübl and u/stucule).

A .rm file starts with a header and then contains a lists of layers. Each layer contains a list of strokes, and each stroke is itself the combination of segments. Here is a diagram to help understand how it works:

reMarkable lines format v3

xochitl

The reMarkable tablet runs on linux and the process you are interacting with to use the tablet is called xochitl, which is a Qt application. From what we know, this process also runs the web interface and the file synchronisation. You can find the binary file in /usr/bin/xochitl, if you are so inclined you could backup this file and try to reverse-engineer it, or patch it to add functionalities. This is actually how most community developers add new features on the tablet.

Backup

I am personally not interested in using the reMarkable cloud. First off, they are using Google Cloud platform and I don't feel like trusting Google or the reMarkable team with my private data. If you're like me, chances are you will want to perform backups nonetheless. To do so, you can just copy your important files from /home/root/.local/share/remarkable/xochitl.

scp root@10.11.99.1:/home/root/.local/share/remarkable/xochitl ~/remarkable-backup

That's pretty much it! You could also use a software to automate this task for you regularly, but this is worth an entire blog post.

Community

In my opinion, the greatest strength of the reMarkable tablet is the community that formed around it. It truly is a shame that the company does not embrace the community more, giving them better tools to hack the product, or giving them way to develop applications for it.

Most of the reMarkable hackers can be found on discord and reddit.

There is an unofficial wiki where you will find very detailed information about the reMarkable reverse engineering efforts so far.

You can find a list of many tools written to augment the capabilities of the tablet on awesome-reMarkable. Here are some notable programs developped:

  • reMarkable Connection Utility is a paid but open-source utility providing all-in-one offline management (backups, import/export, templates, ...)
  • remarkable-hacks contains patches of xochitl adding new features: pinch-to-zoom, bookmarks.
  • remarkable-tools a collection of tools to export .lines files to svg, export notebooks to PDF, ...
  • remy, a tool allowing simple interaction with the reMarkable tablet over ssh, without needing the cloud service, nor the USB Web UI