Question 1: Why don't I just use a mouse? Because of the laser, the mouse must always be held in the air or still otherwise the pointer will move and interfere. And because I like soldering.
Question 2: Why do I not use a Bluetooth device? I do not need it. There is nothing wrong with using an ESP32 and BT for it.
Question 3: Why don't you use the deep sleep function of the controller, wake up with interrupts? I tried, the USB device is disconnected from the poke every deep sleep.
Question 4: Only for KOReader? No, but this is the best reading program in the world. You should use it.
I like to read with the reader on the table in a holder, also on the train, in bed... etc. In order not to have to move my hand towards the reader all the time, I have made a small device.
It is a small device out of an Arduino with Atmega 32u4.
The controller connects via OTG as standard USB keyboard and mouse. There are eight buttons connected to the pins of the controller. At the inputs the internal pullup resistors are active. Six buttons are mouse (L, R, T, D, Left, Right), and two other buttons are page up and page down.
In the program there is code to use a scroll wheel and a third mouse button.
https://pastebin.com/iVGqH9NX
Still to do: Remove the Power and TX LED to save energy. Make the sharp edges round and cut off the pins. It now uses less energy than a normal optical mouse. If the USB socket on the controller breaks, I solder the cable directly.