A few days back my reMarkable paper tables arrived. A couple of friends asked me to do a review of this device, so here we go.

The Device

It is a E-Ink tablet for reading, writing and sketching using a small stylus. It is very thin (approx. 7mm) and with its 360 gramm it is very lightweight and fits into every laptop bag. Like any common mobile device today it uses micro USB for charging its 3000mAh battery. Its build in wireless can be used to sync with the vendors cloud, and with its 8GB internal storage it provides space for several thousand of pages of documents.

The device itself is run by a ARM A9 CPU running on the vendors own Linux derivate called ‘Codex’. The vendor publishes the source code for his uBoot and linux kernel on their GitHub account. With Linux kernel 4.1.28 they do not run a very recent kernel for a device that ships since September 2017.

First steps with Linux

The device officially can only be synced with Windows or macOS or be synced using the vendor’s closed cloud with the Android or iOS app.

But this is only partly true. The device, when connected with micro USB to a Linux machine, announces itself as a network device:

zobel@gjallar ~ % sudo tail -f /var/log/kern.log
Mar 16 20:15:07 gjallar kernel: [52605.362166] usb 1-1: new high-speed USB device number 43 using xhci_hcd
Mar 16 20:15:08 gjallar kernel: [52605.512014] usb 1-1: New USB device found, idVendor=04b3, idProduct=4010
Mar 16 20:15:08 gjallar kernel: [52605.512020] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Mar 16 20:15:08 gjallar kernel: [52605.512024] usb 1-1: Product: RNDIS/Ethernet Gadget
Mar 16 20:15:08 gjallar kernel: [52605.512028] usb 1-1: Manufacturer: Linux 4.1.28-fslc+g7f82abb with 2184000.usb
Mar 16 20:15:08 gjallar kernel: [52606.078698] cdc_ether 1-1:1.0 usb0: register 'cdc_ether' at usb-0000:00:14.0-1, CDC Ethernet Device, c2:1f:85:68:47:d8
Mar 16 20:15:08 gjallar kernel: [52606.078746] usbcore: registered new interface driver cdc_ether
Mar 16 20:15:08 gjallar kernel: [52606.091233] cdc_ether 1-1:1.0 enp0s20f0u1: renamed from usb0

So if you do DHCP on that device, your interface will be assigned an IP:

zobel@gjallar ~ % ip addr sh dev enp0s20f0u1
12: enp0s20f0u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether c2:1f:85:68:47:d8 brd ff:ff:ff:ff:ff:ff
    inet brd scope global dynamic noprefixroute enp0s20f0u1
       valid_lft 43sec preferred_lft 43sec
    inet6 fe80::f358:7473:1050:ed9b/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

You can even log into the device. When you click on the “rM” sign on the top left corner, and then click “About” you get the information how to log into the device using SSH. The device runs busybox and dropbear.

About screen on reMarkable

So, here we go, lets to to log into the device!

zobel@gjallar ~ % ssh -l root
root@ password:
╺━┓┏━╸┏━┓┏━┓   ┏━╸┏━┓┏━┓╻ ╻╻╺┳╸┏━┓┏━┓
┏━┛┣╸ ┣┳┛┃ ┃   ┃╺┓┣┳┛┣━┫┃┏┛┃ ┃ ┣━┫┗━┓
┗━╸┗━╸╹┗╸┗━┛   ┗━┛╹┗╸╹ ╹┗┛ ╹ ╹ ╹ ╹┗━┛
remarkable: ~/ 

Syncing data with Linux

After a bit of searching around on the reMarkable wiki pages, i found out that the documents are saved into ~/.local/share/remarkable/xochitl/ but you can not simply copy files there, the tablet wants some meta data next to the PDF or epub files.

The best and probably easiest way to copy PDF or epub files to your device is curl (thanks Ganneff for that hint!). This needs the USB web interface enabled. This can be found in the ‘Storage Settings’. Tab the switch next to the IP address of your device to enable it.

With the USB web interface enable you can now send data to the device using curl:

So first, lets get a free epub document to read on the reMarkable device:

zobel@gjallar ~/Documents % wget https://www.debian.org/doc/debian-policy/policy.epub

Once you have downloaded that, here is how you upload it:

zobel@gjallar ~/Documents % curl '' -H 'Origin:' -H 'Accept: */*' -H 'Referer:' -H 'Connection: keep-alive' -F "file=@policy.epub;filename=policy.epub;type=application/epub"
Upload successfull

Et voilà, here we go with the Debian Policy Manual on the reMarkable.

Debian Policy Manual

Now we get to the really interesting parts. The reMarkable tablet with its stylus offers the possibility to make remarks on pages or highlight paragraphs. Once you found the uuid of your document, there is a $uuid.cache subdirectory, which contains PNG files of your document, including the overlay of your remarks and highlights.

Annotated Debian Policy

Next steps and conclusion

The reMarkable wiki describes a couple of other syncing methods, using ssh or curl. One other method i will try to setup the next days is rclone. Using this, i hope to find a way to sync data using my own cloud other other public cloud storage (e.g. Microsoft Azure Blob Storage).

I will keep you posted on my progress with other syncing methods.

Even though reMarkable does not officialy offer syncing with Linux the device can be used with Linux. The documentation on their wiki pages is good enough to write an own syncing client for Linux.