Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Bluetooth Keyboards #122

Closed
b4be1 opened this issue Nov 19, 2020 · 18 comments
Closed

Support Bluetooth Keyboards #122

b4be1 opened this issue Nov 19, 2020 · 18 comments

Comments

@b4be1
Copy link

b4be1 commented Nov 19, 2020

Hi @ddvk,

This may be slightly off-topic but you may be the only person who knows the answer. And given the popularity of remarkable-hacks, I think others may face a similar issue.

I want to connect a Bluetooth keyboard to Remarkable 2 to be able to type in text as on a typewriter. To achieve that, I first need to pair the Bluetooth keyboard with the Remarkable 2. But there seems to be no Bluetooth module on the Linux system on the device. Do you have a suggestion how to proceed? Is there a way to build Bluez on the Codex Linux?

The app I want to use is Crazy Cow and I provide some more details on my setup in machinelevel/sp425-crazy-cow#7.

I think adding support for Bluetooth in remarkable-hacks would enable cool applications. E.g., see the list of requests for supporting Bluetooth keyboards on Remarkable 2 here machinelevel/sp425-crazy-cow#2 (comment).

Best,
Boris

@ddvk
Copy link
Owner

ddvk commented Nov 19, 2020

well, there is a bt module but it us not physically conected. i used a usb bt dongle for the rm1 once, and i compiled bluez, but for the rm2 you ll have to use the pogo pins

@b4be1
Copy link
Author

b4be1 commented Nov 19, 2020

My plan was to also use a bt dongle on rm2. Is this not possible on rm2?

I am not sure I understood exactly what you mean by using the pogo pins. Do you mean there is a physical bt module available on rm2 but not connected, and I should open the casing and connect it by hand?

@ddvk
Copy link
Owner

ddvk commented Nov 19, 2020

i haven't found a way to put the usb-c port in host mode. the pogo pins (the 5 dots you see on the side of the rm2 close to the usb port) is a second usb port that can be put in host mode

@b4be1
Copy link
Author

b4be1 commented Nov 20, 2020

Got it, thanks for the clarification. Then I will explore this direction.

@b4be1
Copy link
Author

b4be1 commented Nov 20, 2020

In case someone stumbles upon this thread, there is more info related to this question on reddit https://www.reddit.com/r/RemarkableTablet/comments/j9g1d5/rm2_with_an_external_keyboard_accessory_port_usage/ and in discord https://discord.gg/qEnCVcd in the rm2 channel.

@ddvk
Copy link
Owner

ddvk commented Nov 28, 2020

closing this as i can't do much about it.

@ddvk ddvk closed this as completed Nov 28, 2020
@b4be1
Copy link
Author

b4be1 commented Mar 13, 2021

Now it is possible to use the USB-C port machinelevel/sp425-crazy-cow#6 (comment)

@gap736uk
Copy link

gap736uk commented Mar 17, 2023

@ddvk - just picking this thread up now as i'm looking at using a bluetooth keyboard with my RM1 and spotted in this thread you said that you did this once. I have managed to connect up a bluetooth keyboard with the dongle that came with the keyboard, but it isn't really a portable keyboard, so not ideal for travelling....

As such I'm looking to see if there's a way to use a generic bluetooth dongle to allow me to pair with any bluetooth keyboard.

couple of quick questions for you if I may:

  1. above you mentioned that there is a bluetooth module, but it isn't physically connected.. does that mean in there is the hardware inside the RM1 case, just not actually connected for some reason (never mind the lack of software stack!)?
  2. I assume you used a bluetooth dongle to connect such a device to your keyboard... was this by installing 'bluez' stack onto the RM1 and then getting that to pair with your keyboard initially? (I have seen some hints elsewhere that this is the method to get this to work).... it would be so much easier if this case as part of the standard software and then there was a pairing option available on the settings menu
  3. Is there any way to get the onscreen keyboard to be suppressed at all when using such a keyboard? (The success I had above was slightly marred by this popping up unnecessarily.

Beyond that, with a MOFT tablet stand and a possible way to connect a keyboard i've got something close to the new fancy keyboard filo-case working for a RM1! :)

@ddvk
Copy link
Owner

ddvk commented Mar 18, 2023

  1. the wifi chip has a bt module , but it is not physically connected i.e. the pins are not used.
  2. yes, bt dongle, here's https://github.com/ddvk/remarkable-hacks/releases/download/0.0.0/bt.tar.gz the stuff I used back then (https://www.reddit.com/r/RemarkableTablet/comments/e8p22h/remarkablekeywriter_with_a_bluetooth_keyboard/)
  3. haven't tested

@dodosocial
Copy link

dodosocial commented Mar 27, 2023

@ddvk I would like to try to use bluetooth keyboard + 3rd party bluetooth dongle on my RM2.
I downloaded the bluetooth tar.gz file. And I'm trying to follow the steps in readme file. I didn't compile anything at my end and I'm simply using the files found in the tar file.

  • copy dbus policy rule
    cp etc/dbus-1/system.d/bluetooth.conf /etc/dbus-1/system.d

#kernel modules (in lib/modules/4.9.84-zero-gravitas/
insmod bluetooth.ko

When I tried to insmod the .ko files in RM2, I hit errors like below:
insmod: ERROR: could not insert module bluetooth.ko: Invalid module format

What could be problem be? Thanks!

@ddvk
Copy link
Owner

ddvk commented Mar 27, 2023

the modules were compiled for an older kernel version. also not sure whether modules are enabled on the newesr kernel...

@dodosocial
Copy link

I see, got it. Super thanks for your prompt reply! I will check if there is any chance to compile with the current kernel version...
Just got my RM2. Will check how to setup my Mac with qtcreator, toolchain to make things work.

@Eeems
Copy link
Contributor

Eeems commented Mar 27, 2023

the modules were compiled for an older kernel version. also not sure whether modules are enabled on the newesr kernel...

The latest kernel ships with modules that aren't embedded in the initrd that are required for the keyboard folio, so I would assume that they are enabled.

I see, got it. Super thanks for your prompt reply! I will check if there is any chance to compile with the current kernel version...
Just got my RM2. Will check how to setup my Mac with qtcreator, toolchain to make things work.

you wouldn't need qtcreator for compiling kernel modules.

@dodosocial
Copy link

Thanks Eeems! That's very helpful! It has been painful to install qt5 on my mac

@Eeems
Copy link
Contributor

Eeems commented Mar 28, 2023

Thanks Eeems! That's very helpful! It has been painful to install qt5 on my mac

Running it from a docker container might be the better option if you need it in the future

@dodosocial
Copy link

Thanks @Eeems ! Kindly let me know if my planned steps are correct:
1, use the base image of toolchain docker https://github.com/toltec-dev/toolchain
2, run the docker, and copy in bluez source code
3, compile bluez to generate .ko files
4, insmod the .ko files to RM2

@Eeems
Copy link
Contributor

Eeems commented Mar 28, 2023

2, run the docker, and copy in bluez source code

It would be easier to just mount it as a volume. If you want to see an example of building a kernel module: https://github.com/toltec-dev/toltec/blob/afa2840abae9113d46ec978aec661ebbcf74960b/package/wireguard/package#L50-L79

@dodosocial
Copy link

Hi @ddvk , I am curious about the need of "bluez" here.
If I can get the 4 listed .ko files from Linux Kernel, do I still need to compile or install anything from bluez?
I want to understand this because I hit glib version errors when runing ./configure in bluez. If the 4 .kos from linux can make bluetooth dongle work. I will just leave it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants