Warning
This library is still under development. Some things may change in future releases.
Fast and simple open-source library for programming BBC micro:bit V2 in C++.
- Lightweight and easy to use
- Supports basic functionalities for micro:bit V2
- Allows low-level hardware interaction, including direct register access
Important
This library is designed for Linux systems only. Ensure you are using a compatible environment.
git clone https://github.com/microbit-fast/microfast.git
cd microfast
- Arch Linux:
sudo pacman -Suy arm-none-eabi-gcc arm-none-eabi-newlib arm-none-eabi-binutils openocd
- Ubuntu/Debian:
sudo apt update sudo apt install binutils-arm-none-eabi gcc-arm-none-eabi libstdc++-arm-none-eabi-newlib
- Other:
Install packagesarm-none-eabi
andopenocd
.
Open main.cpp
in text editor. Here is an example of how to use the library:
#include "microbit.h" // include the library
int main() {
microbit::init(); // initialize the library
while (1) { // main loop
for (int i = 0; i < 1000; i++) // loop for delay
microbit::display::drawImage("happy"); // draw smile on display
for (int i = 0; i < 500; i++)
microbit::display::drawImage("sad");
while (microbit::pins::getDigitalValue(BUTTON_A)) { // while not button A pressed
microbit::display::drawImage("01100:10010:11110:10010:10010"); // draw "A" on display
}
microbit::sound::tone(440, 5000); // play some tones
microbit::sound::tone(430, 1000);
microbit::sound::tone(420, 1000);
microbit::sound::tone(410, 1000);
microbit::sound::tone(400, 5000);
microbit::serial::write("hello from your microbit :)"); // write string to the serial
microbit::serial::write((string)microbit::random()); // write random number to the serial
for (int i = 4; i > 0; i--) { // demonstrate how fast is it
for (int j = 0; j < 20; j++) {
for (int k = 0; k < i * 10; k++)
microbit::display::drawImage("square");
for (int k = 0; k < i * 10; k++)
microbit::display::drawImage("small square");
}
}
}
return 0;
}
Simply call make
to compile and flash the program to microbit. If you only want to compile the project, call make noflash
.
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.