- Discovery
- Connecting and disconnecting
- Accelerometer
- Buttons
- Pin IO
- LED Matrix
- Magnetometer
- Temperature
- UART
- Event
var BBCMicrobit = require('bbc-microbit');BBCMicrobit.discover(callback(microbit));function onDiscover(microbit) {
// ...
}
BBCMicrobit.discoverAll(onDiscover);
BBCMicrobit.stopDiscoverAll(onDiscover);BBCMicrobit.discoverById(id, callback(microbit));BBCMicrobit.discoverByAddress(address, callback(microbit));microbit = {
id: "<peripheral id>",
address: "<BT address>"
};microbit.connectAndSetUp(callback(error));microbit.disconnect(callback);Add event listener for when micro:bit disconnects:
microbit.once('disconnect', callback);microbit.readDeviceName(callback(error, deviceName));
microbit.readModelNumber(callback(error, modelNumber));
microbit.readSerialNumber(callback(error, serialNumber));
microbit.readFirmwareRevision(callback(error, firmwareRevision));Units for x, y, and z is G's.
Read or write the period. Support values are: 1, 2, 5, 10, 20, 80, 160, or 640 ms.
microbit.readAccelerometerPeriod(callback(error, period));
microbit.writeAccelerometerPeriod(period, callback(error));microbit.readAccelerometer(callback(error, x, y, z));microbit.subscribeAccelerometer(callback(error));
microbit.unsubscribeAccelerometer(callback(error));microbit.on('accelerometerChange', function(x, y, z) {
// ...
});// for both buttons
microbit.subscribeButtons(callback(error));
microbit.unsubscribeButtons(callback(error));
// just button A
microbit.subscribeButtonA(callback(error));
microbit.unsubscribeButtonA(callback(error));
// just button B
microbit.subscribeButtonB(callback(error));
microbit.unsubscribeButtonB(callback(error));microbit.on('buttonAChange', function(value) {
// ...
});
microbit.on('buttonBChange', function(value) {
// ...
});value interpretation:
0: not pressed1: pressed2: long press
pin must be between 0 and 20.
value must be between 0 and 255.
// AD mode
microbit.pinAnalog(pin, callback(error));
microbit.pinDigital(pin, callback(error));
// IO mode
microbit.pinInput(pin, callback(error));
microbit.pinOutput(pin, callback(error));microbit.readPin(pin, callback(error, value)); // pin must be configured as input
microbit.writePin(pin, value, callback(error)); // pin must be configured as outputmicrobit.subscribePinData(callback(error));
microbit.unsubscribePinData(callback(error));microbit.on('pinDataChange', function(pin, value) {
// ...
});// data is a Buffer with format: <pin> <value>, ...
microbit.readPinData(callback(error, data));
microbit.writePinData(data, callback(error));
// value is a buffer, n-bit of 0 means pin n is in digital mode, 1 means analog mode
microbit.readPinAdConfiguration(callback(error, value));
microbit.writePinAdConfiguration(value, callback(error));
// value is a buffer, n-bit of 0 means pin n is in output mode, 1 means input mode
microbit.readPinIoConfiguration(callback(error, value));
microbit.writePinIoConfiguration(value, callback(error));value is a 5 byte Buffer. Each byte corresponds to a row, and column value is the n'th bit. 0 for off, 1 for on.
microbit.readLedMatrixState(callback(error, value));
microbit.writeLedMatrixState(value, callback(error));text is a string that must be 20 characters or less
microbit.writeLedText(text, callback(error));delay is scrolling delay of text in ms.
microbit.readLedScrollingDelay(callback(error, delay));
microbit.writeLedScrollingDelay(delar, callback(error));Read or write the period. Support values are: 1, 2, 5, 10, 20, 80, 160, or 640 ms.
microbit.readMagnetometerPeriod(callback(error, period));
microbit.writeMagnetometerPeriod(period, callback(error));microbit.readMagnetometer(callback(error, x, y, z));
microbit.readMagnetometerBearing(callback(error, bearing));// x, y, and z values
microbit.subscribeMagnetometer(callback(error));
microbit.unsubscribeMagnetometer(callback(error));
// bearing
microbit.subscribeMagnetometerBearing(callback(error));
microbit.unsubscribeMagnetometerBearing(callback(error));microbit.on('magnetometerChange', function(x, y, z) {
// ...
});
microbit.on('magnetometerBearingChange', function(bearing) {
// ...
});Units for temperature is °C.
period is in ms.
microbit.readTemperaturePeriod(callback(error, period));
microbit.writeTemperaturePeriod(period, callback(error));microbit.readTemperature(callback(error, temperature));microbit.subscribeTemperature(callback(error));
microbit.unsubscribeTemperature(callback(error));microbit.on('temperatureChange', function(temperature) {
// ...
});NOTE: UART service does nothing currently. It does not bridge the hardware serial pins to BLE!
data is a buffer.
microbit.subscribeUart(callback(error));
microbit.unsubscribeUart(callback(error));microbit.on('uartData', function(data) {
// ...
});microbit.writeUart(data, callback(error));Events come in two varieties, reflected by the two corresponding characteristics:
Micro:bit Events emanate from the micro:bit and may be notified to the connected client.
Client Events emanate from the connected client and may be written to the connected micro:bit
microbit.writeEvent(id, value, callback);microbit.subscribeEvents(id, value, callback(error));
microbit.unsubscribeEvent(callback(error));microbit.on('event', function(id, value) {
// ...
});