Hamberthm / esp32-bt2ps2

Use a Bluetooth or BLE keyboard and mouse with your machine with a PS/2 port
MIT License
26 stars 6 forks source link

Beta v6. Mouse will pair, but keyboard won't #16

Open jfed6000 opened 2 weeks ago

jfed6000 commented 2 weeks ago

I tried both compiling and using the binary. Mouse will pair, but keyboard will not (blue light turns on and flashes when I click mouse button). Also, blue light doesn't flash in pairing mode (I thought it did on the old one).

The keyboard I'm using paired fine under the prior version. Is there a log I can look at to get more info? I've tried this with 2 different esp32s just to make sure.

I double checked the pins with a multimeter. So I'm pretty sure those are correct.

Hamberthm commented 2 weeks ago

Hi!

Make sure the mouse is OFF while you pair the keyboard, otherwise once it connects to the mouse, it will exit pairing mode.

Another option is pressing the "boot" button (or shorting GPIO 0 to ground ) after the LED turns on, then the LED will turn off again and enter pairing mode again.

Remember LED off=pairing mode, LED ON=normal operation, no pairing only connecting.

Please check the README on the v0.6 release to understand better the new pairing methods:

https://github.com/Hamberthm/esp32-bt2ps2/releases/tag/v0.6-beta

jfed6000 commented 2 weeks ago

It might be the keyboard. It still connects to the old esp32, but it won't connect to anything new. I'll look into it from that angle. Thanks!

Hamberthm commented 2 weeks ago

It might be the keyboard. It still connects to the old esp32, but it won't connect to anything new. I'll look into it from that angle. Thanks!

Try the older 0.4v also on the new board so to be sure the problem is v0.6.

If for sure the problem is v0.6, then ramp up log level verbosity to "VERBOSE" and copy here a dump when the keyboard tries to connect (where it spits out the report map).

Is this a BLE keyboard (no code pairing)? There's a new connection parameter detection on BLE that could be causing problems.

Humberto

Hamberthm commented 2 weeks ago

To quickly test if the new parameter update call is causing problems, comment out or delete the following line on bt_beyboard.cpp :

https://github.com/Hamberthm/esp32-bt2ps2/blob/476959c3458d72e9029eb84692fb1d29abcbeba7/main/bt_keyboard.cpp#L1201

jfed6000 commented 2 weeks ago

No. It was the keyboard. Apparently this is a known issue. It supports up to three devices. The internet is full of instructions to hold down FN +ESC to reset. Holding down FN + Bluetooth channel finally reset it, and it sync'd right up. Sorry for the issue. Just didn't expect the keyboard to have a fixed device list with no instructions on how to reset it. Looks like I'm back in business!! Thanks! Awesome project! I'm in the process of writing a mouse driver for the device this is hooked up to. I'll shoot you a note once I get it debugged. Looking forward to having this all working!

Hamberthm commented 2 weeks ago

No. It was the keyboard. Apparently this is a known issue. It supports up to three devices. The internet is full of instructions to hold down FN +ESC to reset. Holding down FN + Bluetooth channel finally reset it, and it sync'd right up. Sorry for the issue. Just didn't expect the keyboard to have a fixed device list with no instructions on how to reset it. Looks like I'm back in business!! Thanks! Awesome project! I'm in the process of writing a mouse driver for the device this is hooked up to. I'll shoot you a note once I get it debugged. Looking forward to having this all working!

Awesome! Looking forward to it!!

Once you get all paired up, try the new fast boot and see if it speeds up the connections 😉

Also, I'm currently debugging serial mouse support, so that's coming soon.

Will leave this open for a while.

Cheers! Humberto

Hamberthm commented 1 week ago

Hi @jfed6000

v0.7 is out! It includes optimizations related to task core assignation, so you might find it works better when using KB and Mouse at the same time.

Now core 1 is dedicated to mouse and core 0 to KB. This prevents critical sections like PS/2 packet transmission to halt the rest of the system and introducing lag.

Humberto

jfed6000 commented 1 week ago

I used the binary package for 0.7, but something is off on the keyboard. The shift gets stuck somehow and I end up with all caps all the time (and the shift symbols instead of numbers). Tried it under 0.5, and it worked fine. I'm also having trouble getting data out of the mouse, but that may be an issue with the driver I'm working on. I'll keep testing. (My issues with 0.7 could all revolve around the mouse, but it is possible that I'm using an incompatible mouse - although it looks like it connects, and the blue light flashes when I click any button).

Hamberthm commented 1 week ago

I used the binary package for 0.7, but something is off on the keyboard. The shift gets stuck somehow and I end up with all caps all the time (and the shift symbols instead of numbers). Tried it under 0.5, and it worked fine. I'm also having trouble getting data out of the mouse, but that may be an issue with the driver I'm working on. I'll keep testing. (My issues with 0.7 could all revolve around the mouse, but it is possible that I'm using an incompatible mouse - although it looks like it connects, and the blue light flashes when I click any button).

Mmm. Try using the keyboard in very short range to the board to see if it'srelated to signal strenght. I was having some signal problems with my Redragon and could be my fault (not sure).

If the mouse connects and the LED flashes, then at least the clicks should work (movement may fail). If the clicks don't work, then we need to check the PS/2 side. Enable PS/2 debugging by uncommenting this line:

https://github.com/Hamberthm/esp32-bt2ps2/blob/24fda38e1501bab4ab8c18ecd7df12b508dbb222/main/esp32-ps2dev.cpp#L7

And come back with a log of the messages the host sends to the mouse module on boot (do it without anything connected to bluetooth to avoid spamming the serial console).

If you need a debugging build, ask me!

Also recheck pin assignation and connections. Remember mouse uses a separate bus (another cable). Also remember to connect one ground wire per system, although I don't think you're using a keyboard and mouse on different systems 😝

I hope we can get you up and running soon :)

EDIT: Just tested the 0.7 binary as is in case I compiled it wrong and everything works on my side!