Martin Woolley, programme manager at Bluetooth SIG, created the profile and Dr Joe Finney coded it, along with the rest of micro:bit’s runtime, with his team at Lancaster.
Although it is their day job, micro:bit has become a labour-of-love for many developers. “The entire micro:bit project is an amazing collaboration and a lot of people have been doing a lot of weekends,” Woolley told Electronics Weekly.
A ‘profile’ is a description of data and control features available on a particular Bluetooth-enabled device. It includes how and where this information can be accessed.
Profiles are divided into ‘services’.
Micro:bit’s profile has the following services:
- Push button
- IO pins
- Device information
- Device firmware update (DFU)
- Event service
The first six access peripherals on the micro:bit board.
Woolley explained the final three:
Device information, a standard Bluetooth service, allows data like serial number, model type and manufacturer to be read remotely, DFU allows over-air firmware updates – which will also be possible via USB on micro:bit, and event service is a way to either control programme flow in the device or for programme flow to create Bluetooth outputs.
As an example of an event service, he said, if a phone app needed to know that a micro:bit was over 30°C it could:
- Via the temperature service, repeatedly read micro:bit’s temperature, then apply the threshold in the phone app.
- Via the event service, tell the micro:bit to send a message when it went over 30°C, then wait for the message to arrive.
There are more micro:bit examples on Woolley’s Bluetooth blog.
Documentation for the profile will be made public by the BBC.
Woolley has created an example micro:bit app for Android phones, and it is believed something similar for iPhones is under development elsewhere.
Nordic Semiconductor provides the Bluetooth interface chip, a RF51822, which has an ARM Cortex-M0 core and runs the Bluetooth stack, also from Nordic.
Also on the board is a MKL26Z128VFM4, with a Cortex-M0+, which runs the USB interface.
Application code runs on the Nordic chip.