micro:bit Gateway
Version 1.0
📅 Updated October 29,
Features micro:bit Gateway
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 loggingSilent 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();}
Social Features
Connect and share with friends and the community.
Gaming Features
Enjoy immersive gaming experience with various game modes.
Learning Tools
Enhance your learning experience with interactive features.
See the micro:bit Gateway in Action
Get the App Today
Available for Android 8.0 and above