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

Outdated micro:bit Bluetooth profile #80

Open
ngammarano opened this issue Oct 14, 2020 · 5 comments
Open

Outdated micro:bit Bluetooth profile #80

ngammarano opened this issue Oct 14, 2020 · 5 comments

Comments

@ngammarano
Copy link

ngammarano commented Oct 14, 2020

The micro:bit Bluetooth profile defined here is outdated.

  • the Partial Flashing service is not included
  • the Manufacturer Number String characteristic appears as Mandatory
  • the UART service appears as Mandatory
  • the Event service appears as Optional, while a Bluetooth micro:bit program made in MakeCode always includes it

Since many projects using micro:bit Bluetooth profile refer to that link, I think it should be updated.

@ghost
Copy link

ghost commented Oct 14, 2020

@ngammarano I agree. I think I've flagged this before.

the Partial Flashing service is not included
Agree

the Manufacturer Number String characteristic appears as Mandatory
Agree (this looks like an error in the documentation)

the UART service appears as Mandatory
Agree (this also looks like an error)

the Event service appears as Optional, while a Bluetooth micro:bit program made in MakeCode always includes it
Disagree - it's optional but MakeCode chooses to always include it. MakeCode is not the only user of the profile and personally I wish MakeCode allowed you to exclude this service and others it insists on including.

@ngammarano
Copy link
Author

The micro:bit Bluetooth profile defined here says that the valid values for the magnetometer period are:

Valid values are 1, 2, 5, 10, 20, 80, 160 and 640.

However, in practice, the valid values I get are 12, 25, 50, 100, 200, 400, 800, 1600, 3200, 6400 and 12800, which are consistent with those defined in the magnetometer MAG3110 C++ driver file and in the magnetometer MAG3110 datasheet (see Table 32).

@ghost
Copy link

ghost commented Oct 28, 2020

Those were that values agreed with Lancaster University at the time. They (or whoever maintains the DAL) need to decide whether the profile's implementation should be validating values provided in characteristic writes and rejecting values not in the agreed range or whether the documentation needs updating (again, by whoever it is that should be maintaining it - FYI, it's not me).

@ngammarano
Copy link
Author

ngammarano commented Nov 6, 2020

Those were that values agreed with Lancaster University at the time. They (or whoever maintains the DAL) need to decide whether the profile's implementation should be validating values provided in characteristic writes and rejecting values not in the agreed range or whether the documentation needs updating (again, by whoever it is that should be maintaining it - FYI, it's not me).

@bluetooth-mdw OK, then where should I report this?

@ngammarano
Copy link
Author

The micro:bit Bluetooth profile defined here says that the Pin AD Configuration and the Pin IO Configuration characteristics of the IO Pin Service have 1 field of type uint24 named Pin_AD_Config_Value and Pin_IO_Config_Value respectively.

However, when I read those characteristics, I get uint32, which is consistent with the IO Pin characteristics in the DAL.

Is this an error of the Bluetooth profile?

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

1 participant