/remarkable-wifi-conf

Utility to configure WiFi on the Remarkable paper tablet via the CLI. For WiFi networks with password characters unsupported by the Remarkable software keyboard.

Primary LanguagePython

Remarkable-wifi-conf

remarkable-wifi-conf is a small utility to configure WiFi on Remarkable devices.
The Remarkable only supports a limited set of characters on its on-screen keyboard. If your WiFi password happens to contain a character that is not supported by the Remarkable keyboard, you're out of luck.

Well, until this tool :-)

Prerequisites

  • SSH access to your Remarkable. See remarkablewiki.com for details.
  • Python >= 3
  • Only tested on MacOS and Linux. For Windows use WSL if you can.

Usage

  1. Clone this repo.
  2. Install Python dependencies (pip install -r ./requirements.txt)

Now depending on how much you trust this script you can either follow a manual process where you update your xochitl.conf manually, or follow the fully automated process.

Manual process

The Remarkable OS stores WiFi credentials in /home/root/.config/remarkable/xochitl.conf. The WiFi configuration part looks something like this:

[wifinetworks]
MyNetwork=@Variant(\0\0\0\b\0\0\0\x3\0\0\0\b\0s\0s\0i\0\x64\0\0\0\n\0\0\0\x6\0\x66\0o\0o\0\0\0\x10\0p\0r\0o\0t\0o\0\x63\0o\0l\0\0\0\n\0\0\0\x6\0p\0s\0k\0\0\0\x10\0p\0\x61\0s\0s\0w\0o\0r\0\x64\0\0\0\n\0\0\0\x6\0\x62\0\x61\0r)

To generate this for your network run the following command:

echo '' | python ./remarkable_wifi_conf.py

The script will ask your WiFi SSID (network name) and password and print a wifinetworks section. Now SSH into your Remarkable and open /home/root/.config/remarkable/xochitl.conf with a text editor. Scroll down until you find a [wifinetworks] section and append the generated line containing the WiFi configuration.

Now restart the Remarkable system (systemctl restart xochitl) and presto! Your Remarkable will be able to connect to your WiFi network. Depending on how many WiFi networks you have configured you might need to go into the system settings to select your WiFi network. You will not have to enter a password at this point.

Automated process

If you trust this script and my Linux fu you can run the oneliner below.

Note that if you haven't set up SSH keys, you'll be prompted for your password 3 times.

export remarkable=remarkable; ssh $remarkable 'cp /home/root/.config/remarkable/xochitl.conf{,.bak} && cat /home/root/.config/remarkable/xochitl.conf' | python ./remarkable_wifi_conf.py > >(ssh $remarkable 'cat > /tmp/rmwifi') && ssh $remarkable 'mv /tmp/rmwifi /home/root/.config/remarkable/xochitl.conf && systemctl restart xochitl'

This will:

  1. Make a backup of your xochitl.conf in /home/root/.config/remarkable/xochitl.conf.bak, just in case.
  2. Prompt for your WiFi SSID (network name) and password.
  3. Update xochitl.conf with a configuration for your network.
  4. Restart the xochitl service so the configuration changes become effective.

Presto! Your Remarkable will be able to connect to your WiFi network. Depending on how many WiFi networks you have configured you might need to go into the system settings to select your WiFi network. You will not have to enter a password at this point.

Credits

Credits to GitHub user Evidlo for their example here.