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:
That being said, the tablet has two blatant drawbacks:
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.
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.
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.
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.
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.
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:
It sure doesn't bode well for the evolution of the software...
You can connect to your reMarkable tablet with SSH out of the box. Here are the steps to connect to your tablet:
Settings > Help > Copyrights and License > General information
.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.
It's always better to connect using private key cryptography rather than antiquated passwords. To do so :
mkdir /home/root/.ssh
touch /home/root/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub | ssh root@10.11.99.1 "cat >> .ssh/authorized_keys"
Find a full explanation on the unofficial reMarkable wiki
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:
Find more info about Yubikeys configuration for SSH on DrDuh's guide
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.
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.
Filename | Type | Purpose |
---|---|---|
\<UUID>.metadata | File | Stores metadata about the file: name, last page consulted, is it deleted ?, ... |
\<UUID>.content | File | Stores the pencil preferences, PDF adjustments: zoom, orientation, size, ... |
\<UUID>.pagedata | File | Lists the template selected on each page (one line = one page) |
\<UUID>.epub | File | The epub book imported |
\<UUID>.pdf | File | The pdf book imported. This file is auto generated for epub files. It appears tha the tablet only displays pdf files |
\<UUID>.thumbnails/ | Folder | Contains a small .png image for each page of the book / notebook. They are used as a preview of each page in the overview |
\<UUID>/ | Folder | Stores the .rm files that contains the actual scribbles |
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:
.png
file that is quite large, this file is the one displayed on the reMarkable.svg
file, much smaller, this one is used to generate the .pdf file when exportingA 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:
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.
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.
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:
xochitl
adding new features: pinch-to-zoom, bookmarks.