plato icon indicating copy to clipboard operation
plato copied to clipboard

BLE keyboard and Kobo Remote support

Open ewired opened this issue 2 months ago • 3 comments

The Kobo Remote is new, and I don't have one yet, but I'm hoping that it's a BLE HID. Guessing so, because they recently revamped the Bluetooth UI in Nickel to be more user-friendly for connecting HIDs. I will have a branch of Plato with HID hotplug support soon, for BLE keyboards and probably the Kobo remote, and I can contribute this separately from all my other out-of-scope Plato work if interested.

ewired avatar Dec 07 '25 00:12 ewired

have a look at: https://ogkevin.github.io/kobo.koplugin/dev/investigations/bluetooth/00-overview.html if you need pointers.

I also want to contribute to plato, but I believe the project is dead :( I have a private fork that added support for transparent screensavers. It needs some cleaning tho.

If you are down to maintain a fork, I would love to join as well. And get this project some love.

OGKevin avatar Dec 07 '25 09:12 OGKevin

Thanks for the support @OGKevin. I'm on a Libra 2 and most of this information seems to be about the Clara/Libra C series, unfortunately my device's kernel and wireless stack is very different from this. I heavily depend on my forks of Plato so I have been thinking about maintaining a fork as a new public project. There will be a GNOME extension for full remote desktop like my Firefox remote display, and potentially a terminal emulator for mosh or ssh.

I've tried a few times to get keyboards working in Plato before Kobo Remote was announced. Previously I would have to install uhid.ko after boot. This wasn't as interesting for me to pursue until the Kobo Remote came out. It's not present in lsmod after removing my config and it still works, so Kobo builds it into their recent kernels, which is even more evidence of Kobo Remote being a BLE HID.

So far I'm able to get new devices hotplugged and producing button events in Plato. There were big problems blocking me from using this the way I wanted. The issue with Libra 2's rtl8723d driver, if not just my own hardware, is that BLE HIDs specifically cause terrible WiFi issues. Having a BLE keyboard connected for a minute or two causes major packet loss where only open TCP connections work, but no new connections can be made and UDP is unusable. Once the device is disconnected, everything starts working again shortly after. I've replicated this behavior with a Steam Controller and a Targus foldable keyboard. This is also apparently mitigated by having the Kobo plugged in, telling me this is some conflict created by a power saving feature. I have been chasing down some error logs in dmesg related to Bluetooth coexistence and might try a backported driver. Actually, I found that a Bluetooth speaker does not produce these issues, and apparently mitigates them, as everything works great while a speaker and keyboard are both connected.

All of this happens even in Nickel with NickelMenu without ever launching Plato. Nickel's browser and storefront will start throwing network error dialogs while I have the keyboard connected. If this is indeed an issue with Kobo's 2015-era drivers and not my device having broken software mods or hardware, people with Libra 2 and Clara 2E are probably going to have trouble with the Kobo Remote.

ewired avatar Dec 08 '25 03:12 ewired

Those are some wild findings 😆. I don't have a Libra 2 to help with these investigations 😔.

If you move forward with this new project, give me a ping. I am most certainly interesting in contributing/maintaining. We can also establish communication via Discord or some other medium if desired.

OGKevin avatar Dec 08 '25 09:12 OGKevin