lancaster-university / microbit-docs

http://lancaster-university.github.io/microbit-docs
Other
27 stars 28 forks source link

Outdated micro:bit Bluetooth profile #80

Open ngammarano opened 4 years ago

ngammarano commented 4 years ago

The micro:bit Bluetooth profile defined here is outdated.

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

ghost commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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?