BLE Mouse is not detected by iPadOS13

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
KeMa_1120931
Level 2
Level 2
First like given

iPadOS13 has two Bluetooth connection menus.

When you proceed with Settings / Bluetooth and when you proceed with Settings / Accessibility / Touch / AssistiveTouch / Device.

The former connection is OK.

In the latter connection, “BLE Mouse” is not displayed in the device list.

Attach the debug output file.

Please give me advice.

My environment

KIT: CY8CKIT-042-BLE

CPUKIT: CY8C4247LQI-BL483

Project: BLE_HID_Mouse (Code Exmple)

PSoC Creator: 4.2 (4.2.0.641)

0 Likes
17 Replies
KeMa_1120931
Level 2
Level 2
First like given

In the following procedure, it was found that BLE was detected on iPadOS13.

Advance the procedure with Accessibility/Touch/AssistiveTouch/Devices/Bluetooth Devices.

When I turn on the BLE Mouse in the Bluetooth detection menu, a list is displayed.

If the BLE Mouse is turned on before the detection menu is displayed, it will not be detected.

0 Likes

My request is to know how to reset the BLE Mouse after a timeout if the device is not searched.

Please give me advice.

0 Likes

We have to apologize for our delay.

We are trying to reproduce this issue with iPadOS13...now...

0 Likes

I am making input support equipment for people with disabilities.

Please give me advice.

Thank you.

0 Likes

Apologize for late response.

We were trying to reproduce this issue on iPadOS 13.1.2.

But we could not do this...

So, could you please let us share the screenshot and detail steps to reproduce the issue?

Also, could you please connect joystick or non-Cypress BLE-HID devices to check if you can see same behavior?

thank you.

0 Likes

Thank you for trying.

I will write the URL of the video of the procedure.

Please turn on the power of BLE Mouse first.

thank you.

BLE Mouse not detected iPadOS13 - YouTube

0 Likes

>So, could you please let us share the screenshot and detail steps to reproduce the issue?

I uploaded the instructions on youtube.

BLE Mouse not detected iPadOS13 - YouTube

>Also, could you please connect joystick or non-Cypress BLE-HID devices to check if you can see same behavior?

Yes. Logitech's keyboard is detected normally.

Logitech Keyboard.jpg

0 Likes

Hello TakashiM_61-san,

You will be busy.

Could you advice?

Thank you.

0 Likes

Hello,

We have to apologize our late response...

We observe that the PSoC is advertising and working correctly.

It seems like an issue on the iOS side, it recognizes the BLE device if either the normal Bluetooth settings or the assistant touch settings is opened. But if switching from one setting to another, it doesn’t list the device which is also what you were facing.

However we aren’t able to reproduce this issue consistently. It does work sometimes.

Since we do not know much about how iOS handles the BLE detection, so it will take more time to investigate this issue.

thank you.

0 Likes

Hello TakashiM_61-san,

Thank you for the reply.

In iOS and iPadOS 13.2, in the following procedure, it can no longer be detected at all.

Logitech keyboard are detected.

Thank you.

In the following procedure, it was found that BLE was detected on iPadOS13.

Advance the procedure with Accessibility/Touch/AssistiveTouch/Devices/Bluetooth Devices.

When I turn on the BLE Mouse in the Bluetooth detection menu, a list is displayed.

If the BLE Mouse is turned on before the detection menu is displayed, it will not be detected.

0 Likes

Hi KeMa_1120931,

It looks like problem of code example.
The REPORT_ID is present in HID descriptor (see REMORT MAP characteristic) but SimulateMouse function sends only 3 bytes, which corresponds to buttons, X, Y and missed Report_ID.

Please remove REMORT_ID from HID descriptor (from REMORT MAP characteristic) - it is optional for a standard mouse.

Or update SimulateMouse function:
1. change MOUSE_DATA_LEN from 3 to 4.

2. add report id in abMouseData (0-th byte):

     abMouseData[1u] = bXInc;                                                    /* Load the packet array */

     abMouseData[2u] = bYInc;

     abMouseData[0u] = (leftButtonPress ? MOUSE_LB : 0u);     /* Set up Left Button state */

update to:

     abMouseData[3u] = bXInc;                                                    /* Load the packet array */

     abMouseData[2u] = bYInc;

     abMouseData[1u] = (leftButtonPress ? MOUSE_LB : 0u);     /* Set up Left Button state */

     abMouseData[0u] = 1u;                                                          /* Set Report ID */


Regards,
Nazar

0 Likes

Hi NazarP_56-san,

Thank you for your advice .

But your advice is not the answer to my question.

iOS/iPadOS13 has two Bluetooth connection menus.

When you proceed with Settings / Bluetooth and when you proceed with Settings / Accessibility / Touch / AssistiveTouch / Device.

The former connection is OK.

In the latter connection, “BLE Mouse” is not displayed in the device list.

BLE_Mouse_Sample is not detected as shown in the post on October 19th.

Regards,
Kenji

0 Likes

Hi Kenji,

The 'device detection' problem is related to iOS13 functionality (looks like bug). When device was scanned once in Setting->Bluetooth (or in background if Bluetooth is ENABLED) , it cause that  device can not be scanned again in Settings / Accessibility / Touch / AssistiveTouch / Device.

You have at least two option how to solve device detection:
1. Scan and connect to device via Settings -> Bluetooth. If it is HID Mouse device, it will automatically added to Settings->Accessibility->Touch-> AssistiveTouch-> Device (as connected device).

2. Turn off Bluetooth before scan in AssistiveTouch:
  a.Turn off Bluetooth in Settings -> Bluetooth,
  b. Go to Settings->Accessibility->Touch-> AssistiveTouch-> Device -> Bluetooth Devices.

  c. iOS inform you that BT is disabled and propose to enable.

  d. After enabling, you will able to see your device in scanned list.

I checked the behavior on non Cypress device (Logitech Mouse) and observe same behaviour.


Regards,

Nazar

Hi Kenji,

In post [Dec 3, 2019 1:58 PM] I was wrong, so markes this post 'strikethrough'.


We should not send Report_ID in report notification if REPORT_ID is present in HID descriptor. This should by done by Host (iOS) before passed data to USB HID Class driver. (refer to section 4.8.1 Translation Layer of HOGP_SPEC_V10 spec).

So iOS incorrectly parce HID descriptor if REPORT_ID is present in "single section" descriptor. iOS correct works if we have multiple sections (e.g Mouse and Keyboard) with separate REPORT_ID in each section.

W/A: remove REMORT_ID from HID descriptor (from REMORT MAP characteristic).

Thanks,
Nazar

0 Likes

Hi Nazar-sun,

iOS13 functionality (looks like bug).

I think so, too.

>I checked the behavior on non Cypress device (Logitech Mouse) and observe same behaviour.

I also confirmed.

Thanks,

Kenji

0 Likes

Hello TakashiM_61-san,

Hello Nazar-san,

Please see my post on 2019/10/19.

"Logitech Keyboard Cover"is listed.

No need for a procedure that has been posted on 2019/12/04.

It will be detected in a few seconds.

TakashiM_61-san, how about the solution after that?

Thanks,

Kenji

0 Likes
SuSh_1535366
Level 5
Level 5
Distributor - Macnica (Japan)
10 solutions authored 10 likes given 10 likes received

Hi KeMa_1120931,

When pairing with an iPad, try the "Switch Control" menu instead of the "Touch".

(There is no need to enable Switch Control)
Then activate AssistiveTouch.
The Touch menu device probably doesn't support BLE...

0 Likes