micro:bit Gateway


1.2 by Ferdinand Stueckler
Dec 30, 2020 Old Versions

About micro:bit Gateway

Bluetooth data exchange for micro:bit devices

This app establishes a channel between two micro:bit devices. The channel will be handeled as UART communication. You have to develope a programm on each micro:bit device with UART transfer.

Indication aktive: BLE Indication (Default)

Indication inaktive: BLE Notification

Silent aktive: No visual logging

Silent inaktive: Logging

Requirements:

- Min. Android 4.4

- Bluetooth Low Energy (BLE)

- Paired devices

- micro:bit programm (developed by yourself)

MBED example:

#include "MicroBit.h"

#include "MicroBitUARTService.h"

MicroBit uBit;

MicroBitUARTService *uart;

int connected = 0;

void onConnected(MicroBitEvent e)

{

uBit.display.scroll("C");

connected = 1;

}

void onDisconnected(MicroBitEvent e)

{

uBit.display.scroll("D");

connected = 0;

}

void onButtonA(MicroBitEvent e)

{

if (connected == 0) {

uBit.display.scroll("NC");

return;

}

uart->send("Yes");

uBit.display.scroll("Y");

}

void onButtonB(MicroBitEvent e)

{

if (connected == 0) {

uBit.display.scroll("NC");

return;

}

uart->send("No");

uBit.display.scroll("N");

}

void onButtonAB(MicroBitEvent e)

{

if (connected == 0) {

uBit.display.scroll("NC");

return;

}

uart->send("SK");

uBit.display.scroll("SK");

}

void processBLEUart() {

uint8_t readBuf[22];

while (1) { // loop for ever

if ((!connected) || (!uart->isReadable())) {

uBit.sleep(50); // wait 50mS and check again

continue; // loop;

}

//else we are connected AND there is some input to read

if (uart->isReadable()) {

while (uart->isReadable()) {

int charCount = uart->read(readBuf, 22, ASYNC);

if (charCount != 0) {

for (int i = 0; i < charCount; i++)

uBit.display.scroll((char) readBuf[i]);

}

}

}

}

}

/*

IMPORTANT !!!

Oherwise you will run out of memory !

Recommend disabling the DFU and Event services in MicroBitConfig.h since they are not needed here:

microbit->microbit-dal->inc->core->MicroBitConfig.h

#define MICROBIT_BLE_DFU_SERVICE 0

#define MICROBIT_BLE_EVENT_SERVICE 0

#define MICROBIT_SD_GATT_TABLE_SIZE 0x500

*/

int main()

{

// Initialise the micro:bit runtime.

uBit.init();

uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, onConnected);

uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, onDisconnected);

uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onButtonA);

uBit.messageBus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onButtonB);

uBit.messageBus.listen(MICROBIT_ID_BUTTON_AB, MICROBIT_BUTTON_EVT_CLICK, onButtonAB);

uart = new MicroBitUARTService(*uBit.ble, 32, 32);

uBit.display.scroll("Go");

create_fiber(&processBLEUart); // create fiber and schedule it.

release_fiber();

}

What's New in the Latest Version 1.2

Last updated on Jan 22, 2021
Android 11

Additional APP Information

Latest Version

1.2

Uploaded by

Suman Raj Suman Raj

Requires Android

Android 5.0+

Available on

Report

Flag as inappropriate

Show More

Use APKPure App

Get micro:bit Gateway old version APK for Android

Download

Use APKPure App

Get micro:bit Gateway old version APK for Android

Download

micro:bit Gateway Alternative

Get more from Ferdinand Stueckler

Discover