D1. Lose the System LED State characteristic since it cannot be controlled from the BLE MCU.
D2. Lose the Scrolling State characteristic – complexity and memory constraints
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.
D4. Generic Access Service: Device Name and Appearance are mandatory and so need values
D5. Generic Access Service: Peripheral Privacy Flag is optional and I don’t think we need it. Ditto Reconnection Address, ditto Peripheral Preferred Connection Parameters.
D6. Generic Attribute Service: profile design doc/report doesn’t show it and it’s mandatory (issue with Bluetooth Developer Studio).
D7. Device Information Service: All characteristics are optional. Which ones do we really want/need? Save a little memory.....
D8. 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.
D9. MicroBit Requirements supports Write. This is (ironically and puntastically) wrong. Client should not be able to modify the requirements the MicroBit has.
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.