-
Notifications
You must be signed in to change notification settings - Fork 65
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
GATT server receiving data from Android devices but no iOS devices #479
Comments
There's nothing obviously wrong at first sight. It looks like iOS does connect and discover the GATT services and characteristics just fine. We even see a write to CCDs for subscriptions. But no other operation is seen. It's not clear whether the app didn't find something it was looking for, or if the iOS BT stack didn't like something. |
Thanks. I'm pretty sure it's 'the iOS BT stack didn't like something' because I have the same issue with another App (Ardumower Sunray Website in iOS CGTek Viewer) that I developed (and that does not expect something but instead just writes something) and I get the same issue there as well (no receiving at Linux from iOS and Android works just fine as well)... |
As a side note, we are using the iOS Dabble App in another project as well (this time using some C code version of the BLE stack), and in this project the C code is correctly receiving joystick commands... |
I installed the iOS app, and ran your example app. But... I updated I need to do some more digging to understand why nrfConnect and GATTBrowser see something different from what the Dabble app sees. |
Followup: I was able to get the iOS Dabble app to write. |
Brilliant! Unfortuneately, I missed that little detail (what characteristics the iOS app actually uses)- Great that you found it out. I'll try to inform the Dabble app authors. In the end this is so simple :-) (for me it was really puzzling and I had no clue...) |
For kids educaton (https://github.com/owlRobotics-GmbH/owlRobotPlatform) we are using an existing App ('Dabble') to control our robots with a virtual joystick.
![image](https://private-user-images.githubusercontent.com/11735886/327080939-7c00bbd1-dbc3-41db-8e22-a9bfa541580c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxMjg4MTQsIm5iZiI6MTcyMjEyODUxNCwicGF0aCI6Ii8xMTczNTg4Ni8zMjcwODA5MzktN2MwMGJiZDEtZGJjMy00MWRiLThlMjItYTliZmE1NDE1ODBjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI4VDAxMDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRkNDRiNWY3YTRlNzEyOTc0YzlhNGJkYWE0MjFlZTY2Y2JhODg5OWVlYTVlODdlNmI3ZTJkOTA0YjY3ZDdiZjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.8On1HK7igbBloXvn-ZhnHJqq1qkbAcqnVKrMCVtZCg0)
iOS: https://apps.apple.com/ch/app/dabble-bluetooth-controller/id1472734455
Android: https://play.google.com/store/apps/details?id=io.dabbleapp&hl=gsw&gl=US
The Dabble App works fine using attached Python example code and transfers joystick data between a Linux computer and Android devices. However it does not transfer joystick data (or any data) between the Linux computer and any iOS devices.
Python BLE GATT server <---- Dabble App sending data (joystick press etc.)
run below example with: python dabble.py
dabble.zip
This is how it looks with Android (connecting and receiving data):
![Screenshot from 2024-05-01 10-08-13](https://private-user-images.githubusercontent.com/11735886/327081489-3b3093e1-5bf1-4626-9099-6aa8a8e7bd99.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxMjg4MTQsIm5iZiI6MTcyMjEyODUxNCwicGF0aCI6Ii8xMTczNTg4Ni8zMjcwODE0ODktM2IzMDkzZTEtNWJmMS00NjI2LTkwOTktNmFhOGE4ZTdiZDk5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI4VDAxMDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM3OWQ0YWRjYTAzM2FhNjFkNDRiNzgxMWU3OGVmNDQxNjE4NDgxODUxNWRjZDYyNjk5YzcyYmYwOGM5MGQwYzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oh6pR-7SkgeRsFw0dEMsP2Hg5i8K9MK7zRWfnHiRE6U)
Full debug log file:
android_log.txt
And this is how it looks with iOS (connecting, but not receiving any data - at the end we manually disconnected from within the App):
![Screenshot from 2024-05-01 10-09-32](https://private-user-images.githubusercontent.com/11735886/327081515-2044e278-ab2b-401e-b0c7-27e57365bc6d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxMjg4MTQsIm5iZiI6MTcyMjEyODUxNCwicGF0aCI6Ii8xMTczNTg4Ni8zMjcwODE1MTUtMjA0NGUyNzgtYWIyYi00MDFlLWIwYzctMjdlNTczNjViYzZkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI4VDAxMDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ5N2JmYjc5NzJmN2FiMmYzMjRkNGNjNjdmODc4ZTdjMmQwNWQyY2Q2ZmE2OTk0MGI4YTYzNGU1NDFjMTlmNzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.zcOBMN24tzDkAZvRDrqLBTiN-Yf3_mjTUNFnoAWPSR0)
Full debug log file:
ios_log.txt
Further investigations show:
What might be the issue here? :-)
The text was updated successfully, but these errors were encountered: