
diff --git a/docs/Report 1/BBC microbit.html b/docs/Report 1/BBC microbit.html new file mode 100644 index 0000000..8c10ed6 --- /dev/null +++ b/docs/Report 1/BBC microbit.html @@ -0,0 +1,249 @@ + + +
PROFILE
Default 'out of the box' profile for the BBC Micro Bit
Version 1.6 - 21st September 2015 +Removed the Battery Service. No way to establish battery levels on the micro:bit +Added a simple Temperature Service to exploit temperature sensors in micro:bit processors +Accelerometer and Magnetometer period characteristics now have uint16 fields instead of uint8 which required scaling up by multipling by 10. +Accelerometer Data and Magnetometer Data characteristics now use signed 16 bit integer fields for each of their X, Y and Z parts. +Accelerometer Data and Magnetometer Data characteristics now use signed 16 bit integer fields for each of their X, Y and Z parts. +New characteristic Magnetometer Heading added to the Magnetometer Service. Provides current heading in degrees. +Removed IO Parallel Port characteristic due to complexity and memory considerations. +Added Generic Attribute Service (previously absent in the repository) + +Version 1.5 - 10th September 2015 +Button State 2 characteristic given new, distinct UUID of E95DDA91-251D-470A-A062-FA1922DFA9A8 +Removed the System LED State characteristic from the LED Service since it cannot be controlled from the BLE MCU. +Removed the Scrolling State characteristic from the LED Service due to complexity and memory constraints. +Changed LED Matrix State use of “Write Without Response” to “Write” so that no further writes can be made until there’s been an ACK back from the previous one. +Removed Write property from MicroBit Requirements characteristic.
SERVICES
Generic Access
E95D2257251D470AA062FA1922DFA9A8
Device Name : 2A00
Appearance : E95DB788251D470AA062FA1922DFA9A8
Generic Attribute
1801
Service Changed : 2A05
Device Information
E95D5C58251D470AA062FA1922DFA9A8
Manufacturer Name String : E95D1BFB251D470AA062FA1922DFA9A8
Model Number String : E95D4257251D470AA062FA1922DFA9A8
Serial Number String : E95D06E2251D470AA062FA1922DFA9A8
Hardware Revision String : E95DADDF251D470AA062FA1922DFA9A8
Firmware Revision String : E95DB9A2251D470AA062FA1922DFA9A8
ACCELEROMETER SERVICE
E95D0753251D470AA062FA1922DFA9A8
Accelerometer Data : E95D41FB251D470AA062FA1922DFA9A8
Accelerometer Period : E95D08DD251D470AA062FA1922DFA9A8
MAGNETOMETER SERVICE
E95DF2D8251D470AA062FA1922DFA9A8
Magnetometer Data : E95DD9D1251D470AA062FA1922DFA9A8
Magnetometer Period : E95D0A68251D470AA062FA1922DFA9A8
Magnetometer Bearing : E95DB42F251D470AA062FA1922DFA9A8
Button Service
E95D9882251D470AA062FA1922DFA9A8
Button 1 State : E95DDA90251D470AA062FA1922DFA9A8
Button 2 State : E95DFB03251D470AA062FA1922DFA9A8
LED SERVICE
E95DD91D251D470AA062FA1922DFA9A8
LED Matrix State : E95D0D97251D470AA062FA1922DFA9A8
LED Text : E95DF078251D470AA062FA1922DFA9A8
Scrolling Delay : E95D15D1251D470AA062FA1922DFA9A8
IO PIN SERVICE
E95127B251D470AA062FA1922DFA9A8
Pin Data : E95DD6A3251D470AA062FA1922DFA9A8
Pin AD Configuration : E95D4388251D470AA062FA1922DFA9A8
Pin IO Configuration : E95DC5A2251D470AA062FA1922DFA9A8
EVENT SERVICE
E95D4C7C251D470AA062FA1922DFA9A8
MicroBit Requirements : E95D8912251D470AA062FA1922DFA9A8
MicroBit Event : E95DAEF6251D470AA062FA1922DFA9A8
Client Requirements : E95DDDA1251D470AA062FA1922DFA9A8
Client Event : E95D531C251D470AA062FA1922DFA9A8
DFU CONTROL SERVICE
E95D93B0251D470AA062FA1922DFA9A8
DFU Control : E95D6A96251D470AA062FA1922DFA9A8
DFU Flash Code : E95D2E9D251D470AA062FA1922DFA9A8
TEMPERATURE SERVICE
E95D6100251D470AA062FA1922DFA9A8
Temperature : E95D9250251D470AA062FA1922DFA9A8
PROFILE
Default 'out of the box' profile for the BBC Micro Bit
Version 1.6 - 21st September 2015 +Removed the Battery Service. No way to establish battery levels on the micro:bit +Added a simple Temperature Service to exploit temperature sensors in micro:bit processors +Accelerometer and Magnetometer period characteristics now have uint16 fields instead of uint8 which required scaling up by multipling by 10. +Accelerometer Data and Magnetometer Data characteristics now use signed 16 bit integer fields for each of their X, Y and Z parts. +Accelerometer Data and Magnetometer Data characteristics now use signed 16 bit integer fields for each of their X, Y and Z parts. +New characteristic Magnetometer Heading added to the Magnetometer Service. Provides current heading in degrees. +Removed IO Parallel Port characteristic due to complexity and memory considerations. +Added Generic Attribute Service (previously absent in the repository) + +Version 1.5 - 10th September 2015 +Button State 2 characteristic given new, distinct UUID of E95DDA91-251D-470A-A062-FA1922DFA9A8 +Removed the System LED State characteristic from the LED Service since it cannot be controlled from the BLE MCU. +Removed the Scrolling State characteristic from the LED Service due to complexity and memory constraints. +Changed LED Matrix State use of “Write Without Response” to “Write” so that no further writes can be made until there’s been an ACK back from the previous one. +Removed Write property from MicroBit Requirements characteristic.
SERVICES
Generic Access
The generic_access service contains generic information about the device. All available Characteristics are readonly.
Generic Access - CHARACTERISTICS
Device Name
Appearance
The external appearance of this device. The values are composed of a category (10-bits) and sub-categories (6-bits).
Generic Attribute
Generic Attribute - CHARACTERISTICS
Service Changed
Device Information
The Device Information Service exposes manufacturer and/or vendor information about a device. +
This service exposes manufacturer information about a device. +The Device Information Service is instantiated as a Primary Service. +Only one instance of the Device Information Service is exposed on a device. +
Device Information - CHARACTERISTICS
Manufacturer Name String
The value of this characteristic is a UTF-8 string representing the name of the manufacturer of the device.
Model Number String
The value of this characteristic is a UTF-8 string representing the model number assigned by the device vendor.
Serial Number String
The value of this characteristic is a variable-length UTF-8 string representing the serial number for a particular instance of the device.
Hardware Revision String
The value of this characteristic is a UTF-8 string representing the hardware revision for the hardware within the device.
Firmware Revision String
The value of this characteristic is a UTF-8 string representing the firmware revision for the firmware within the device.
ACCELEROMETER SERVICE
Exposes accelerometer data. An accelerometer is an electromechanical device that will measure acceleration forces. +These forces may be static, like the constant force of gravity pulling at your feet, or they could be dynamic - caused by moving or vibrating the accelerometer. + +Value contains fields which represent 3 seperate accelerometer measurements for X, Y and Z axes as 3 unsigned 16 bit values in that order and in +little endian format. + +Data can be read on demand or notified periodically.
ACCELEROMETER SERVICE - CHARACTERISTICS
Accelerometer Data
Contains accelerometer measurements for X, Y and Z axes as 3 signed 16 bit values in that order and in little endian format.
1. Client Characteristic Configuration : 2902 |
Accelerometer Period
Determines the frequency with which accelerometer data is reported in milliseconds.
MAGNETOMETER SERVICE
Exposes magnetometer data. A magnetometer measures a magnetic field such as the earth's magnetic field in 3 axes.
MAGNETOMETER SERVICE - CHARACTERISTICS
Magnetometer Data
Contains magnetometer measurements for X, Y and Z axes as 3 signed 16 bit values in that order and in little endian format. +Data can be read on demand or notified periodically.
1. Client Characteristic Configuration : 2902 |
Magnetometer Period
Determines the frequency with which magnetometer data is reported in milliseconds.
Magnetometer Bearing
Compass bearing in degrees from North.
1. Client Characteristic Configuration : 2902 |
Button Service
Exposes the two Micro Bit buttons and allows 'commands' associated with button state changes to be associated with button states and notified to a connected client.
Button Service - CHARACTERISTICS
Button 1 State
State of Button A may be read on demand by a connected client or the client may subscribe to notifications of state change. +3 button states are defined and represented by a simple numeric enumeration: 0 = not pressed, 1 = pressed, 2 = long press.
1. Client Characteristic Configuration : 2902 |
Button 2 State
State of Button B may be read on demand by a connected client or the client may subscribe to notifications of state change. +3 button states are defined and represented by a simple numeric enumeration: 0 = not pressed, 1 = pressed, 2 = long press.
1. Client Characteristic Configuration : 2902 |
LED SERVICE
Provides access to and control of LED state. Allows the state (ON or OFF) of all 25 LEDs to be set in a single write operation. +Allows short text strings to be sent by a client for display on the LED matrix and scrolled across at a speed controlled by the Scrolling Delay characteristic.
LED SERVICE - CHARACTERISTICS
LED Matrix State
Allows the state of any|all LEDs in the 5x5 grid to be set to on or off with a single GATT operation. +Consists of a 32 bit field with bits 0 - 24 representing the off (0) or on (1) state of the corresponding LED.
LED Text
A short UTF-8 string to be shown on the LED display.
Scrolling Delay
Specifies a millisecond delay to wait for in between showing each character on the display.
IO PIN SERVICE
Provides read/write access to I/O pins, individually or collectively. Allows configuration of each pin for input/output and analogue/digital use.
IO PIN SERVICE - CHARACTERISTICS
Pin Data
Contains data relating to zero or more pins. Structured as a variable length array of up to 19 Pin Number / Value pairs. + +Pin Number and Value are each uint8 fields. + +Note however that the micro:bit has a 10 bit ADC and so values are compressed to 8 bits with a loss of resolution. + +OPERATIONS: + +WRITE: Clients may write values to one or more pins in a single GATT write operation. +A pin to which a value is to be written must have been configured for output using the Pin IO Configuration characteristic. +Any attempt to write to a pin which is configured for input will be ignored. + +NOTIFY: Notifications will deliver Pin Number / Value pairs for those pins defined as input pins by the Pin IO Configuration characteristic +and whose value when read differs from the last read of the pin. + +READ: A client reading this characteristic will receive Pin Number / Value pairs for all those pins defined as input pins by the Pin IO Configuration characteristic.
1. Client Characteristic Configuration : 2902 |
Pin AD Configuration
A bit mask which allows each pin to be configured for analogue or digital use.
Pin IO Configuration
A bit mask which allows each pin to be configured for input or output use. +Bit n corresponds to pin n where 0 LESS THAN OR EQUAL TO n LESS THAN 19. A value of 0 means configured for output and 1 means configured for input.
EVENT SERVICE
A generic, bi-directional event communication service. + +The Event Service allows events or commands to be notified to the micro:bit by a connected client and it allows micro:bit to notify the connected client +of events or commands originating from with the micro:bit. The micro:bit can inform the client of the types of event it is interested in being informed +about (e.g. an incoming call) and the client can inform the micro:bit of types of event it wants to be notified about. + +The term “event” will be used here for both event and command types of data. + +Events may have an associated value. + +Note that specific event ID values including any special values such as those which may represent wild cards are not defined here. +The micro:bit run time documentation should be consulted for this information. + +Multiple events of different types may be notified to the client or micro:bit at the same time. +Event data is encoded as an array of structs each encoding an event of a given type together with an associated value. +Event Type and Event Value are both defined as uint16 and therefore the length of this array will always be a multiple of 4. + +struct event { + uint16 event_type; + uint16 event_value; +};
EVENT SERVICE - CHARACTERISTICS
MicroBit Requirements
A variable length list of event data structures which indicates the types of client event, potentially with a specific value which the micro:bit wishes +to be informed of when they occur. The client should read this characteristic when it first connects to the micro:bit. It may also subscribe to notifications +to that it can be informed if the value of this characteristic is changed by the micro:bit firmware.
1. Client Characteristic Configuration : 2902 |
MicroBit Event
Contains one or more event structures which should be notified to the client. It supports notifications and as such the client should subscribe to +notifications from this characteristic.
1. Client Characteristic Configuration : 2902 |
Client Requirements
a variable length list of event data structures which indicates the types of micro:bit event, potentially with a specific value which the client wishes +to be informed of when they occur. The client should write to this characteristic when it first connects to the micro:bit.
Client Event
a writable characteristic which the client may write one or more event structures to, to inform the micro:bit of events which have occurred on the client. +These should be of types indicated in the micro:bit Requirements characteristic bit mask.
DFU CONTROL SERVICE
Allows clients to initiate the micro:bit pairing and over the air firmware update procedures.
DFU CONTROL SERVICE - CHARACTERISTICS
DFU Control
Writing 0x01 initiates rebooting the micro:bit into the Nordic Semiconductor bootloader if the DFU Flash Code characteristic has been written +to with the correct secret key. + +Writing 0x02 to this characteristic means "request flash code".
DFU Flash Code
Allows a client to indicate that it "knows" the flash code produced when pairing. + +Notifications are used to deliver the flash code to a client during the initial pairing process.
1. Client Characteristic Configuration : 2902 |
TEMPERATURE SERVICE
Ambient temperature derived from several internal temperature sensors on the micro:bit
TEMPERATURE SERVICE - CHARACTERISTICS
Temperature
Signed integer 8 bit value in degrees celsius.
1. Client Characteristic Configuration : 2902 |
PROFILE
Default 'out of the box' profile for the BBC Micro Bit
Version 1.6 - 21st September 2015 +Removed the Battery Service. No way to establish battery levels on the micro:bit +Added a simple Temperature Service to exploit temperature sensors in micro:bit processors +Accelerometer and Magnetometer period characteristics now have uint16 fields instead of uint8 which required scaling up by multipling by 10. +Accelerometer Data and Magnetometer Data characteristics now use signed 16 bit integer fields for each of their X, Y and Z parts. +Accelerometer Data and Magnetometer Data characteristics now use signed 16 bit integer fields for each of their X, Y and Z parts. +New characteristic Magnetometer Heading added to the Magnetometer Service. Provides current heading in degrees. +Removed IO Parallel Port characteristic due to complexity and memory considerations. +Added Generic Attribute Service (previously absent in the repository) + +Version 1.5 - 10th September 2015 +Button State 2 characteristic given new, distinct UUID of E95DDA91-251D-470A-A062-FA1922DFA9A8 +Removed the System LED State characteristic from the LED Service since it cannot be controlled from the BLE MCU. +Removed the Scrolling State characteristic from the LED Service due to complexity and memory constraints. +Changed LED Matrix State use of “Write Without Response” to “Write” so that no further writes can be made until there’s been an ACK back from the previous one. +Removed Write property from MicroBit Requirements characteristic.
SERVICES
Generic Access
The generic_access service contains generic information about the device. All available Characteristics are readonly.
Generic Access - CHARACTERISTICS
Device Name
1. Name : utf8s |
Appearance
The external appearance of this device. The values are composed of a category (10-bits) and sub-categories (6-bits).
1. Category : 16bit |
Generic Attribute
Generic Attribute - CHARACTERISTICS
Service Changed
1. Start of Affected Attribute Handle Range : uint16 |
2. End of Affected Attribute Handle Range : uint16 |
Device Information
The Device Information Service exposes manufacturer and/or vendor information about a device. +
This service exposes manufacturer information about a device. +The Device Information Service is instantiated as a Primary Service. +Only one instance of the Device Information Service is exposed on a device. +
Device Information - CHARACTERISTICS
Manufacturer Name String
The value of this characteristic is a UTF-8 string representing the name of the manufacturer of the device.
1. Manufacturer Name : utf8s |
Model Number String
The value of this characteristic is a UTF-8 string representing the model number assigned by the device vendor.
1. Model Number : utf8s |
Serial Number String
The value of this characteristic is a variable-length UTF-8 string representing the serial number for a particular instance of the device.
1. Serial Number : utf8s |
Hardware Revision String
The value of this characteristic is a UTF-8 string representing the hardware revision for the hardware within the device.
1. Hardware Revision : utf8s |
Firmware Revision String
The value of this characteristic is a UTF-8 string representing the firmware revision for the firmware within the device.
1. Firmware Revision : utf8s |
ACCELEROMETER SERVICE
Exposes accelerometer data. An accelerometer is an electromechanical device that will measure acceleration forces. +These forces may be static, like the constant force of gravity pulling at your feet, or they could be dynamic - caused by moving or vibrating the accelerometer. + +Value contains fields which represent 3 seperate accelerometer measurements for X, Y and Z axes as 3 unsigned 16 bit values in that order and in +little endian format. + +Data can be read on demand or notified periodically.
ACCELEROMETER SERVICE - CHARACTERISTICS
Accelerometer Data
Contains accelerometer measurements for X, Y and Z axes as 3 signed 16 bit values in that order and in little endian format.
1. Accelerometer_X : sint16 |
2. Accelerometer_Y : sint16 |
3. Accelerometer_Z : sint16 |
1. Client Characteristic Configuration : 2902 |
Accelerometer Period
Determines the frequency with which accelerometer data is reported in milliseconds.
1. Accelerometer_Period : uint16 |
MAGNETOMETER SERVICE
Exposes magnetometer data. A magnetometer measures a magnetic field such as the earth's magnetic field in 3 axes.
MAGNETOMETER SERVICE - CHARACTERISTICS
Magnetometer Data
Contains magnetometer measurements for X, Y and Z axes as 3 signed 16 bit values in that order and in little endian format. +Data can be read on demand or notified periodically.
1. Magnetometer_X : sint16 |
2. Magnetometer_Y : sint16 |
3. Magnetometer_Z : sint16 |
1. Client Characteristic Configuration : 2902 |
Magnetometer Period
Determines the frequency with which magnetometer data is reported in milliseconds.
1. Magnetometer_Period : uint16 |
Magnetometer Bearing
Compass bearing in degrees from North.
1. bearing value : uint16 |
1. Client Characteristic Configuration : 2902 |
Button Service
Exposes the two Micro Bit buttons and allows 'commands' associated with button state changes to be associated with button states and notified to a connected client.
Button Service - CHARACTERISTICS
Button 1 State
State of Button A may be read on demand by a connected client or the client may subscribe to notifications of state change. +3 button states are defined and represented by a simple numeric enumeration: 0 = not pressed, 1 = pressed, 2 = long press.
1. Button_State_Value : uint8 |
1. Client Characteristic Configuration : 2902 |
Button 2 State
State of Button B may be read on demand by a connected client or the client may subscribe to notifications of state change. +3 button states are defined and represented by a simple numeric enumeration: 0 = not pressed, 1 = pressed, 2 = long press.
1. Button_State_Value : uint8 |
1. Client Characteristic Configuration : 2902 |
LED SERVICE
Provides access to and control of LED state. Allows the state (ON or OFF) of all 25 LEDs to be set in a single write operation. +Allows short text strings to be sent by a client for display on the LED matrix and scrolled across at a speed controlled by the Scrolling Delay characteristic.
LED SERVICE - CHARACTERISTICS
LED Matrix State
Allows the state of any|all LEDs in the 5x5 grid to be set to on or off with a single GATT operation. +Consists of a 32 bit field with bits 0 - 24 representing the off (0) or on (1) state of the corresponding LED.
1. LED_Matrix_State : uint32 |
LED Text
A short UTF-8 string to be shown on the LED display.
1. LED_Text_Value : utf8s |
Scrolling Delay
Specifies a millisecond delay to wait for in between showing each character on the display.
1. Scrolling_Delay_Value : uint16 |
IO PIN SERVICE
Provides read/write access to I/O pins, individually or collectively. Allows configuration of each pin for input/output and analogue/digital use.
IO PIN SERVICE - CHARACTERISTICS
Pin Data
Contains data relating to zero or more pins. Structured as a variable length array of up to 19 Pin Number / Value pairs. + +Pin Number and Value are each uint8 fields. + +Note however that the micro:bit has a 10 bit ADC and so values are compressed to 8 bits with a loss of resolution. + +OPERATIONS: + +WRITE: Clients may write values to one or more pins in a single GATT write operation. +A pin to which a value is to be written must have been configured for output using the Pin IO Configuration characteristic. +Any attempt to write to a pin which is configured for input will be ignored. + +NOTIFY: Notifications will deliver Pin Number / Value pairs for those pins defined as input pins by the Pin IO Configuration characteristic +and whose value when read differs from the last read of the pin. + +READ: A client reading this characteristic will receive Pin Number / Value pairs for all those pins defined as input pins by the Pin IO Configuration characteristic.
1. IO_Pin_Data : uint8[] |
1. Client Characteristic Configuration : 2902 |
Pin AD Configuration
A bit mask which allows each pin to be configured for analogue or digital use.
1. Pin_AD_Config_Value : uint24 |
Pin IO Configuration
A bit mask which allows each pin to be configured for input or output use. +Bit n corresponds to pin n where 0 LESS THAN OR EQUAL TO n LESS THAN 19. A value of 0 means configured for output and 1 means configured for input.
1. Pin_IO_Config_Value : uint24 |
EVENT SERVICE
A generic, bi-directional event communication service. + +The Event Service allows events or commands to be notified to the micro:bit by a connected client and it allows micro:bit to notify the connected client +of events or commands originating from with the micro:bit. The micro:bit can inform the client of the types of event it is interested in being informed +about (e.g. an incoming call) and the client can inform the micro:bit of types of event it wants to be notified about. + +The term “event” will be used here for both event and command types of data. + +Events may have an associated value. + +Note that specific event ID values including any special values such as those which may represent wild cards are not defined here. +The micro:bit run time documentation should be consulted for this information. + +Multiple events of different types may be notified to the client or micro:bit at the same time. +Event data is encoded as an array of structs each encoding an event of a given type together with an associated value. +Event Type and Event Value are both defined as uint16 and therefore the length of this array will always be a multiple of 4. + +struct event { + uint16 event_type; + uint16 event_value; +};
EVENT SERVICE - CHARACTERISTICS
MicroBit Requirements
A variable length list of event data structures which indicates the types of client event, potentially with a specific value which the micro:bit wishes +to be informed of when they occur. The client should read this characteristic when it first connects to the micro:bit. It may also subscribe to notifications +to that it can be informed if the value of this characteristic is changed by the micro:bit firmware.
1. microbit_reqs_value : uint8[] |
1. Client Characteristic Configuration : 2902 |
MicroBit Event
Contains one or more event structures which should be notified to the client. It supports notifications and as such the client should subscribe to +notifications from this characteristic.
1. Event_Type_And_Value : uint8[] |
1. Client Characteristic Configuration : 2902 |
Client Requirements
a variable length list of event data structures which indicates the types of micro:bit event, potentially with a specific value which the client wishes +to be informed of when they occur. The client should write to this characteristic when it first connects to the micro:bit.
1. Client_Requirements_Value : uint8[] |
Client Event
a writable characteristic which the client may write one or more event structures to, to inform the micro:bit of events which have occurred on the client. +These should be of types indicated in the micro:bit Requirements characteristic bit mask.
1. Event_Types_And_Values : uint8[] |
DFU CONTROL SERVICE
Allows clients to initiate the micro:bit pairing and over the air firmware update procedures.
DFU CONTROL SERVICE - CHARACTERISTICS
DFU Control
Writing 0x01 initiates rebooting the micro:bit into the Nordic Semiconductor bootloader if the DFU Flash Code characteristic has been written +to with the correct secret key. + +Writing 0x02 to this characteristic means "request flash code".
1. dfu_control : uint8 |
DFU Flash Code
Allows a client to indicate that it "knows" the flash code produced when pairing. + +Notifications are used to deliver the flash code to a client during the initial pairing process.
1. dfu_flash_code : uint32 |
1. Client Characteristic Configuration : 2902 |
TEMPERATURE SERVICE
Ambient temperature derived from several internal temperature sensors on the micro:bit
TEMPERATURE SERVICE - CHARACTERISTICS
Temperature
Signed integer 8 bit value in degrees celsius.
1. temperature value : sint8 |
1. Client Characteristic Configuration : 2902 |