diff --git a/CHANGES.md b/CHANGES.md index 7efe2d2..9b94fb8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,26 +1,3 @@ -# micro:bit BLE profile : Tracking changes from planned specification - -This document briefly outlines changes to the planned BLE specification made during implementation. -These are typically made with purpose, so the rationale is also provided where possible. - -## LEDService: -* Lose the System LED State characteristic since it cannot be controlled from the BLE MCU. -* Lose the Scrolling State characteristic due to complexity and memory constraints. - -## IO Pin Service: -* Simplify the IO Pin Service, possible to expose the edge connector pins only. -* Possibly drop it to save memory and use the event service to transport pin values in either direction. Needs further thought. - -## Generic Access Service: -* Device Name and Appearance are mandatory and so need values -* Peripheral Privacy Flag is optional and I don’t think we need it. -* Ditto Reconnection Address. -* Ditto Peripheral Preferred Connection Parameters. - -## Generic Attribute Service: -* profile design doc/report doesn’t show it and it’s mandatory (issue with Bluetooth Developer Studio). - -## Device Information Service: -* All characteristics are optional. Which ones do we really want/need? Save a little memory..... - +# micro:bit BLE profile : Changes +See ble _ issue _ tracker.md for Bluetooth Low Energy profile related issues \ No newline at end of file diff --git a/ble_issue_tracker.md b/ble_issue_tracker.md new file mode 100644 index 0000000..f494c3b --- /dev/null +++ b/ble_issue_tracker.md @@ -0,0 +1,57 @@ +# micro:bit BLE - Issue Tracker +---------- + +Profile Design +-------------- + +### OPEN: + +D3. Simplify the IO Pin Service, possible to expose the edge connector pins only. Possibly drop it to save memory and use the event service to transport pin values in either direction. Needs further thought. + +* Update: Removed all pin characteristics except for pin 0, pin 1 and pin 2. + +D5. Generic Attribute Service: profile design doc/report doesn’t show it and it’s mandatory (issue with Bluetooth Developer Studio). + +D9. DFU services uses a different base UUID to the other custom services. Is this deliberate? + +D10. Characteristics in the DFU service use a different base UUID to the parent service. Is this deliberate? + +D11. What are the data types for DFU Control and DFU Flash Code? Assumed uint8 and array of uint8. + + +### CLOSED: + +D1. Lose the System LED State characteristic since it cannot be controlled from the BLE MCU.DONE. + +D2. Lose the Scrolling State characteristic – complexity and memory constraints. DONE. + +D4. Generic Access Service: Peripheral Privacy Flag is optional and I don’t think we need it. Ditto Reconnection Address, ditto Peripheral Preferred Connection Parameters --> Removed optional characteristics Peripheral Privacy Flag, Reconnection Address and Peripheral Preferred Connection Parameters from Generic Access Service. + +D6. Device Information Service: All characteristics are optional. Which ones do we really want/need? Save a little memory --> Removed PnP ID, IEEE 11073-20601 Regulatory Certification Data List, System ID and Software Revision String characteristics. + +D7. Why does LED Matrix State support “Write Without Response”? I think this should be plain “Write” so that no further writes are made until there’s been an ACK back from the previous one. Changed. + +D8. MicroBit Requirements supports Write. This is (ironically and puntastically) wrong. Client should not be able to modify the requirements the MicroBit has. Changed. + +D12. Microbit DFU service not in the profile design. Added. Needs descriptions and data types confirming. + + +Profile Testing +--------------- + +### OPEN: +T1. Client Event characteristic should have the WRITE property and currently does not. + +T2. MicroBit Event characteristic should have the READ property and currently does not. + +T3. MicroBit Event characteristic should have the NOTIFY property and currently does not. + +T4. MicroBit Requirements characteristic is missing from the Event Service + +T5. Client Requirements characteristic is missing from the Event Service + +T6. Device Name in advertising packets includes the flash code so anyone could pair to it. Should be removed. + +T7. Generic Access Service: Device Name and Appearance are mandatory and so need values + +### CLOSED: diff --git a/docs/BBC Micro Bit Bluetooth Profile V1.5.docx b/docs/BBC Micro Bit Bluetooth Profile V1.5.docx new file mode 100644 index 0000000..bce4aa9 Binary files /dev/null and b/docs/BBC Micro Bit Bluetooth Profile V1.5.docx differ diff --git a/docs/Report 1/BBC Micro Bit.html b/docs/Report 1/BBC Micro Bit.html new file mode 100644 index 0000000..ff884b1 --- /dev/null +++ b/docs/Report 1/BBC Micro Bit.html @@ -0,0 +1,208 @@ + + +
PROFILE
SERVICES
Generic Access
2A00 : Device Name
2A01 : Appearance
Device Information
2A24 : Model Number String
2A25 : Serial Number String
2A27 : Hardware Revision String
2A26 : Firmware Revision String
Accelerometer Service
CA4B : Accelerometer Data
FB24 : Accelerometer Period
Magnetometer Service
FB11 : Magnetometer Data
386C : Magnetometer Period
Battery Service
2A19 : Battery Level
Button Service
DA90 : Button 1 State
E95DDA91-251D-470A-A062-FA1922DFA9A8 : Button 2 State
LED Service
E95D7B77-251D-470A-A062-FA1922DFA9A8- : LED Matrix State
93EE : LED Text
0D2D : Scrolling Speed
IO Pin Service
8D00 : IO Pin 0
C58C : IO Pin 1
04F4 : IO Pin 2
5899 : IO Pin Configuration
60CF : IO Parallel Port
Event Service
E95DB84C-251D-470A-A062-FA1922DFA9A8 : MicroBit Requirements
E95D9775-251D-470A-A062-FA1922DFA9A8- : Client Event
E95D5404-251D-470A-A062-FA1922DFA9A8- : MicroBit Event
E95D23C4-251D-470A-A062-FA1922DFA9A8- : Client Requirements
DFU SERVICE
97109547E63A-442A-BF89-9D73-0413DC2F : DFU Control
947B6934-64D1-4FAD-9BD0-CC9D6E9F3EA3 : DFU Flash Code
PROFILE
SERVICES
Generic Access
Generic Access - CHARACTERISTICS
Device Name
1. Name utf8s |
Appearance
1. Category 16bit |
Device Information
Device Information - CHARACTERISTICS
Model Number String
1. Model Number utf8s |
Serial Number String
1. Serial Number utf8s |
Hardware Revision String
1. Hardware Revision utf8s |
Firmware Revision String
1. Firmware Revision utf8s |
Accelerometer Service
Accelerometer Service - CHARACTERISTICS
Accelerometer Data
1. Accelerometer_X uint8 |
2. Accelerometer_Y uint8 |
3. Accelerometer_Z uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Accelerometer Period
1. Accelerometer_Period uint8 |
Magnetometer Service
Magnetometer Service - CHARACTERISTICS
Magnetometer Data
1. Magnetometer_X uint16 |
2. Magnetometer_Y uint16 |
3. Magnetometer_Z uint16 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Magnetometer Period
1. Magnetometer_Period uint8 |
Battery Service
Battery Service - CHARACTERISTICS
Battery Level
1. Level uint8 |
1. Characteristic Presentation Format 2904 org.bluetooth.descriptor.gatt.characteristic_presentation_format |
2. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Button Service
Button Service - CHARACTERISTICS
Button 1 State
1. Button_State_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Button 2 State
1. Button_State_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
LED Service
LED Service - CHARACTERISTICS
LED Matrix State
1. LED_Matrix_State 32bit |
LED Text
1. LED_Text_Value utf8s |
Scrolling Speed
1. Scrolling_Speed_Value uint8 |
IO Pin Service
IO Pin Service - CHARACTERISTICS
IO Pin 0
1. IO_Pin_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
IO Pin 1
1. IO_Pin_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
IO Pin 2
1. IO_Pin_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
IO Pin Configuration
1. IO_Pin_Config_Value 24bit |
IO Parallel Port
1. IO_Parallel_Port_Value |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Event Service
Event Service - CHARACTERISTICS
MicroBit Requirements
1. Notification_Requirements uint8[] |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Client Event
1. Event_Types_And_Values uint8[] |
MicroBit Event
1. Event_Type_And_Value uint8[] |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Client Requirements
1. Client_Requirements_Field uint8[] |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
DFU SERVICE
DFU SERVICE - CHARACTERISTICS
DFU Control
1. dfu_control uint8 |
DFU Flash Code
1. dfu_flash_code uint8[] |
PROFILE
SERVICES
Generic Access
Generic Access - CHARACTERISTICS
Device Name
1. Name utf8s |
Appearance
1. Category 16bit |
Device Information
Device Information - CHARACTERISTICS
Model Number String
1. Model Number utf8s |
Serial Number String
1. Serial Number utf8s |
Hardware Revision String
1. Hardware Revision utf8s |
Firmware Revision String
1. Firmware Revision utf8s |
Accelerometer Service
Accelerometer Service - CHARACTERISTICS
Accelerometer Data
1. Accelerometer_X uint8 |
2. Accelerometer_Y uint8 |
3. Accelerometer_Z uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Accelerometer Period
1. Accelerometer_Period uint8 |
Magnetometer Service
Magnetometer Service - CHARACTERISTICS
Magnetometer Data
1. Magnetometer_X uint16 |
2. Magnetometer_Y uint16 |
3. Magnetometer_Z uint16 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Magnetometer Period
1. Magnetometer_Period uint8 |
Battery Service
Battery Service - CHARACTERISTICS
Battery Level
1. Level uint8 |
1. Characteristic Presentation Format 2904 org.bluetooth.descriptor.gatt.characteristic_presentation_format |
2. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Button Service
Button Service - CHARACTERISTICS
Button 1 State
1. Button_State_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Button 2 State
1. Button_State_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
LED Service
LED Service - CHARACTERISTICS
LED Matrix State
1. LED_Matrix_State 32bit |
LED Text
1. LED_Text_Value utf8s |
Scrolling Speed
1. Scrolling_Speed_Value uint8 |
IO Pin Service
IO Pin Service - CHARACTERISTICS
IO Pin 0
1. IO_Pin_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
IO Pin 1
1. IO_Pin_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
IO Pin 2
1. IO_Pin_Value uint8 |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
IO Pin Configuration
1. IO_Pin_Config_Value 24bit |
IO Parallel Port
1. IO_Parallel_Port_Value |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Event Service
Event Service - CHARACTERISTICS
MicroBit Requirements
1. Notification_Requirements uint8[] |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Client Event
1. Event_Types_And_Values uint8[] |
MicroBit Event
1. Event_Type_And_Value uint8[] |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
Client Requirements
1. Client_Requirements_Field uint8[] |
1. Client Characteristic Configuration 2902 org.bluetooth.descriptor.gatt.client_characteristic_configuration |
DFU SERVICE
DFU SERVICE - CHARACTERISTICS
DFU Control
1. dfu_control uint8 |
DFU Flash Code
1. dfu_flash_code uint8[] |