-
Notifications
You must be signed in to change notification settings - Fork 139
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
IoS 13 compatibility? #3
Comments
Unfortunately there is probably nothing you can do. Your phone most likely only supports normal Bluetooth mice, but not Bluetooth LE ones. |
https://github.com/asterics/esp32_mouse_keyboard |
I'd be very surprised if the 6th gen iPad really doesn't work with this library. At least people have reported that my keyboard library (which uses almost the exact same code as this mouse library for the Bluetooth communication), works fine on the following iPads: iPad Air2, iPad Pro 2, the lastest iPad Air Can you confirm that you can connect your ESP32 with other devices (e.g. Android, Windows, OS X ) successfully? |
Yes, my code work in Android & MacOS 10.14.6 too (sorry, no windows for testing), but it does not work in my iPad 6th gen. My ipad can discover the mouse and connect to it, but can't move on any direction or click the left button. |
I just tested this. Wired to a button and paired to my samsung galaxy note 9. Worked there. However, tested on an iphone 6s with iOS 13.3. That failed. As mentioned by lawleo, iphone detects my device but after going through the required setting changes on the phone, nothing happens. To confirm and test general mouse support, i paired the same iPhone with my logitech MX Master 2 mouse and that worked. |
It's really hard to say what the problem is here. An incomplete or buggy BLE implementation on Apple's side seems most likely to me (be it a hardware-, firmware- or driver issue). I mean it seems to work on Android, Windows, MacOS, some iPhones and some iPads... Your mouse is probably not a BLE mouse or it has a fallback to support the older non-BLE protocol. At least that's my guess... |
Thanks. Hmmm so here's the requirements for the Logitech MX Master 2s that I have. Indicates BLE is required (unless of course you use the Logitech Unifier dongle). https://www.logitech.com/en-roeu/product/mx-master-2s-flow Will try and check out another person's iPad. |
delete line 28 in BleMouse.cpp. |
@nori-dev-akg Does that help? |
This worked |
Alright...I'll have to give it a go! Thx |
This worked for me too! Thank you so much. |
I can confirm this work for me too! Thanks a lot. |
That works for me as well, iPad Air 2, IOS 13.5.1 REPORT_ID is only for multiple collections i.e. combo mouse and keyboard |
Hi there, |
IOS 14.0 seems to reconnect ok. If I turn the esp32 off it says not connected, when I turn it back on it connects and the pointer re-appears |
Has anyone of you removed line 28 as mentioned here by nori-dev-akg and then tested if it then still works on Windows, Linux or Android? |
Just tested on my Surface Pro and it doesn't work. So, you need to delete the line for IOS and keep it for Windows. Windows will see it and pair but the pointer won't move now. Edit, just tried my Apple Magic Mouse and it works on IOS and Windows so there must be an issue with the descriptor. |
@T-vK Your descriptor (uint8_t _hidReportDescriptor) uses constants i.e. |
Those macros are defined here: Since |
@T-vK The difference are further down the code, so I copied and pasted the full set from the above link into the descriptor as this should be the minimum needed for a standard mouse. Nothing else was changed but it doesn't work on Windows or IOS: 0x05, 0x01, // USAGE_PAGE (Generic Desktop) |
It's been too long for me, so I can't quite remember what exactly a valid device descriptor would look like. But the most obvious differences that I see are:
But I'm not sure if any of these are the actual problem. From my experience I can tell you though, that most of the descriptors that you'll find online are not valid and even if you have a perfectly valid one, that is by no means a guarantee that it'll work on all operating systems. |
@T-vK I've now got it working with IOS and Windows using your descriptor. The REPORT_ID is invalid as it is only used for combo devices like a keyboard and trackpad so that line needs deleting. Doing that means this line of code is no longer valid:
so it needs changing to:
I've tested it on IOS 13.7 and 14 using iPhones and iPads and a Surface Pro and a ThinkPad with a BT 5.0 dongle. |
Thank you so much! |
This has been fixed in the new release (0.3.1). I hope I did everything as described. |
Hey everyone, I am trying to make a list of apple devices that work or don't work with this library. |
mark this issure ,my iphone did not work |
Hi,
I would like to use the new feature in IoS 13 to use an external mouse and tried your lib. However, it seems that ESP32-BLE-Mouse does not work for me to an iPhone 7 with IoS 13.1.2. I e, the ESP connects to the phone but then nothing. Same library work fine to a MacBookPro with MacOS 10.14.6. The ESP32-BLE-Keyboard library works fine (but only a few keys tested) with both these devices. Accessibility settings on the phone seem to be correct. ESP used is a Sparkfun ESP32 Thing.
Anything I can test or try?
Göran
The text was updated successfully, but these errors were encountered: