[Guide] Turn a Wear OS Watch into a KOReader Remote, No Phone Needed While Reading
A couple of weeks ago I posted my first prototype here, using the rotating bezel on my Galaxy Watch 8 Classic as a KOReader page turner. A few of you were interested in a proper guide, so here is the slightly supersized version 😅
There are already some great projects for remotely controlling KOReader, including the Kindle Bluetooth Controller plugin and this cool DIY Wi-Fi page turner. I wanted to try a different approach using hardware I already had, with minimal Kindle-side setup.
My original version used Tasker + AutoWear, with the phone relaying commands to KOReader. While experimenting with it, I discovered that AutoWear can send the HTTP requests directly from the watch. That means Tasker and the phone can be removed from the runtime entirely.
So, after the initial configuration, the whole setup is simply:
Wear OS Watch → Wi-Fi → KOReader
The finished Four Screen controller handles page and chapter navigation, frontlight brightness, warmth, night mode and suspend, with optional rotary bezel/crown page turning on supported watches.
Setup should take around 30 minutes, and the phone is only needed for the initial AutoWear configuration.
What you need
- Wear OS watch
- Android phone for initial AutoWear setup
- AutoWear app installed on phone and watch
- E-Reader running KOReader
- All 3 devices connected to the same trusted Wi-Fi network. Phone required only for initial setup.
1. Enable KOReader's HTTP server
First, make sure the e-reader is connected to Wi-Fi.
In KOReader, open the Network menu under the settings tab ⚙️ and select: Network Info
Note the e-reader's IP address. For example: 192.168.3.5
Your IP will probably be different. Next open:
Tools🛠️ → More Tools → KOReader HTTP Inspector
Select: Start HTTP server. I left the default port unchanged: 8080
Your base URL will therefore be: http://YOUR-EREADER-IP:8080/koreader/event
For example: http://192.168.3.5:8080/koreader/event
>❗Security note: KOReader's HTTP server allows devices on your network to trigger KOReader actions. I recommend only enabling it on networks you trust.
2. Test KOReader before configuring AutoWear
On your phone connected to the same network, open:
http://YOUR-EREADER-IP:8080/koreader/event
You should see KOReader's list of available events. Now open a book in KOReader and test:
http://YOUR-EREADER-IP:8080/koreader/event/GotoViewRel/1
The page should move forward.
You can also test for the previous page:
http://YOUR-EREADER-IP:8080/koreader/event/GotoViewRel/-1
If the book moves forward and backward, the KOReader/network side is working.
3. Create a basic AutoWear test screen
Before building the full controller, I recommend testing AutoWear with a simple screen to make sure it all works.
On the Android phone open:
AutoWear → Screens → + → Single Screen
Give the screen any name, for example:
KOReader Test
Under Actions, enter:
| Setting | Enter |
|---|---|
| Tap | http://YOUR-IP:8080/koreader/event/GotoViewRel/1 |
| Long Tap | http://YOUR-IP:8080/koreader/event/GotoViewRel/-1 |
| Double Tap | http://YOUR-IP:8080/koreader/event/RequestSuspend |
| Command to Show | &APPOPENEDCOMMUTE& |
| Trigger Events | OFF |
Trigger events are set to off as we are not sending commands back to Tasker. The watch itself is sending the HTTP request. Save this for now.
On the watch, open AutoWear App Settings and scroll down till you see Launcher Apps. Enable the Commute Launcher app. This creates an app icon in the Wear OS apps tray. Opening the Commute app will now display your KOReader screen that was configured due to Command to Show setting. Save this and try it out and see if these functions work on the E-reader.
Once this works, you can move on to the Four Screen controller.
4. Create the Four Screen controller
In AutoWear on the phone go to:
Screens → + → Four Screen
Main settings
| Setting | Value |
|---|---|
| Screen Name | Any name you want |
| Command to Show | &APPOPENEDCOMMAND& |
| Command Prefix | Leave blank |
| Trigger Events | Off |
| Animation | None, or change to preference |
The text settings are not important if you plan to use a custom background image later.
Configure the Zone controls
Use the following mappings:
Anywhere you see YOUR-IP replace it with your e-reader's actual IP address.
| Zone | Interaction | KOReader Action | Full URL |
|---|---|---|---|
| Right | Tap | Next Page | http://YOUR-IP:8080/koreader/event/GotoViewRel/1 |
| Right | Long Tap | Next Chapter | http://YOUR-IP:8080/koreader/event/GotoNextChapter |
| Left | Tap | Previous Page | http://YOUR-IP:8080/koreader/event/GotoViewRel/-1 |
| Left | Long Tap | Previous Chapter | http://YOUR-IP:8080/koreader/event/GotoPrevChapter |
| Top | Tap | Frontlight +2 | http://YOUR-IP:8080/koreader/event/IncreaseFlIntensity/2 |
| Top | Swipe Down | Cooler / Warmth -2 | http://YOUR-IP:8080/koreader/event/DecreaseFlWarmth/2 |
| Bottom | Tap | Frontlight -2 | http://YOUR-IP:8080/koreader/event/DecreaseFlIntensity/2 |
| Bottom | Swipe Up | Warmer / Warmth +2 | http://YOUR-IP:8080/koreader/event/IncreaseFlWarmth/2 |
| Center | Tap | Toggle Frontlight | http://YOUR-IP:8080/koreader/event/ToggleFrontlight |
| Center | Long Tap | Toggle Night Mode | http://YOUR-IP:8080/koreader/event/ToggleNightMode |
| Center | Double Tap | Suspend | http://YOUR-IP:8080/koreader/event/RequestSuspend |
For all five screen zones, set:
Color: #00101010
I use this because leaving the colour blank sometimes caused unexpected colour overlays in AutoWear. This keeps the zones effectively transparent over the background image.
Advanced settings
My current settings are:
| Setting | Value |
|---|---|
| Screen Mode | Keep On |
| Animation | None |
| Time Out | 180 seconds |
| Haptic Feedback | On |
| Rotary Command Down | http://YOUR-IP:8080/koreader/event/GotoViewRel/1 |
| Rotary Command Up | http://YOUR-IP:8080/koreader/event/GotoViewRel/-1 |
You can shorten the timeout or disable haptic feedback if you want to reduce watch battery usage.
If your watch supports rotary input, set up rotary commands. If the direction feels backwards on your watch, simply swap the two.
I keep haptics enabled because it gives useful tactile feedback when watch successfully sends the HTTP request to Koreader.
Enable the Command Launcher App on the AutoWear Watch Settings
>On my Galaxy Watch I then mapped:
Double-press Home → Command App
So opening the controller only takes a double press. Other Wear OS watches can use whatever app shortcut method they support.
5. Add a custom background
The background is purely visual. AutoWear's transparent touch zones still handle the actual controls.
You can use one of the provided backgrounds
(I can't attach images directly to this post because it contains a video.)
Or, if you've changed any of the controls, you can easily create a background that matches your own setup.
Create a background for your own configuration
- Finish configuring your Four Screen controller in AutoWear.
- Open the configuration overview - the page that lists all of your sections, gestures and commands. Take a long/scrolling screenshot of the whole page. [My example is uploaded to Imgur.]
- Upload that screenshot to an image generator. Because the screenshot contains your actual AutoWear configuration, the AI can use it as a reference for what each area of the watch should represent.
- Ask it to create a 1:1 square image designed for a circular smartwatch display. Keep important icons and text away from the extreme corners, since those areas will be outside the visible circle on a round watch.
- Once you're happy with the generated image, save it to your phone and select it under Background Image in the AutoWear Four Screen configuration.
- When AutoWear asks whether it should create/copy the file for the watch, allow it to do so.
6. Troubleshooting
If something is not responding, first test the KOReader URL again in a browser:
http://YOUR-IP:8080/koreader/event/GotoViewRel/1
If that also fails, check:
- the e-reader is still connected to Wi-Fi
- the watch and e-reader are on the same network
- the KOReader HTTP server is still running
- the e-reader's IP address has not changed
You can also open:
http://YOUR-IP:8080/koreader/event
to see KOReader's full list of available events.
That page is useful if you want to experiment with additional commands or verify the correct endpoint for your KOReader version.
I have occasionally found AutoWear becomes slow after a lot of testing/configuration. Restarting the watch has usually fixed it for me.
If your e-reader's IP changes regularly, a DHCP reservation on your router can make the setup more reliable.
That's it!!🥂
Once everything is configured I turned off Toast notifications on the AutoWear phone settings as it is no longer part of my runtime setup. The watch sends commands directly to KOReader over the local network.
Hopefully this guide helps y'all! If anyone tries this on another Wear OS watch, I'd be interested to know if you made any changes. Lemme know if you have any questions
If you found this useful, consider supporting the developer by purchasing full AutoWear access. I started with the 1-week trial to make sure the setup worked for me, then bought the full version... it was around AUD $2.50 in my case.
Happy reading / modding!