A curated list of BBC micro:bit resources.
Switch branches/tags
Nothing to show
Clone or download
carlosperate Skip the awesome-lint check while it is broken
And unfortunately there is no way to ignore specific rules.

GH issue: sindresorhus/awesome-lint#45
Latest commit 59d25be Sep 17, 2018

README.md

Awesome micro:bit Awesome

micro:bit logo

A curated list of resources for the BBC micro:bit, a tiny programmable computer designed to make learning and teaching easy and fun! This embedded board has a Bluetooth capable microcontroller, USB interface, accelerometer, magnetometer, light and temperature sensors, 5x5 LED matrix, buttons, and accessible GPIO.

Inspired by the Awesome lists.

Contributions are welcome!

Contents

Programming

Visual

  • MakeCode - Provides an in-browser emulator and a Blocks interface that generates JavaScript (TypeScript) code (previously known as PXT).
  • Open Roberta Lab - Block programming environment design for programming robots, it also supports the micro:bit by generating MicroPython.
  • EduBlocks - Blocks interface that provides a transitioning experience from Scratch to Python.

The following editors are no longer maintained:

  • Microsoft Blocks - Block interface that produces Touch Develop code. No longer in development and it's recommended to use MakeCode instead.
  • Code Kingdoms - Graphical interface that provides a transitioning experience from 'drag and drop' to text-based programming (JavaScript). This editor is no longer maintained.
Scratch Extensions
  • Scratch for BBC micro:bit - Using micro:bit with Scratch / S2Bot as a Bluetooth 'games controller' (needs specific BLED112 Bluetooth dongle).
  • ScratchX micro:bit extension - Lets you control your micro:bit wirelessly using Scratch programming blocks.
  • s2m - A Python program that acts as a bridge between the Scratch 2 off-line editor and the micro:bit via USB.

Python

  • MicroPython - Port of MicroPython, a Python 3 implementation for microcontrollers and constrained environments.
MicroPython Editors
MicroPython Libraries
  • Servo - Simple class for controlling servos on the micro:bit via PWM.
  • PCA9685 - Simple class for using the PCA9685 16-Channel 12-bit PWM/Servo Driver via I2C.
  • MAX7219 7-segment - MicroPython module for using a 7-segment display driven by a MAX7219 chip via SPI.
  • MAX7219 matrix - MicroPython module for using a 8x8 Leds Matrix driven by a MAX7219 chip via SPI.
  • SSD1306 - MicroPython library to control the OLED SSD1306 128x64 I2C with a micro:bit.
  • SSD1306 7seg - MicroPython library to use an SSD1306 OLED display as a 7 segment display.
  • SSD1306 SPI - MicroPython library to control the OLED SSD1306 128x64 display with a micro:bit via SPI.
  • HT16K33 - MicroPython library for the HT16K33 LED matrix driver in multiple configurations (16x8, 8x8 or 8x8x2).
  • HC-SR04 - Basic MicroPython library to read the distance from a HC-SR04 ultrasonic sensor using the SPI peripheral.
  • US-100 - Basic MicroPython library to read the distance from a US-100 ultrasonic sensor via UART.
  • KY038 - MicroPython library to calibrate and use a sound sensor KY038, including clap counter functionality.
  • Nokia 5110 PCD8544 LCD - Fast Micro:bit MicroPython controller for Nokia 5110 LCDs.
  • MPL115A1 - MicroPython class to read the pressure and temperature readings from the NXP MPL115A1 SPI sensor.
  • 24LCxxx EEPROM - Example Micro:bit functions to read and write to a Microchip I2C EEPROM.
  • ULN2003 - Micropython code to drive stepper motors via ULN2003 darlington transistors.
  • Bosch BME280 - Reading from Bosch BME280 Pressure, Temperature and Humidity Sensor via I2C.
  • Pixy - Interface module for using the Pixy cam with the BBC micro:bit.
  • MB1013 - Module for the MB1013 ultrasonic sensor controlled via UART.
  • MY9221 - Library for 10 segment LED bar graph modules using the MY9221 LED driver.
  • AM2320 - Library for interfacing with an Aosong AM2320 temperature and humidity sensor over I2C.
  • DHT12 - Library for interfacing with an Aosong DHT12 temperature and humidity sensor over I2C.
  • TM1637 - Library for quad 7-segment LED display modules using the TM1637 LED driver.
  • micro:bit MIDI - Module to enable talking to MIDI devices on the BBC micro:bit.
  • Kitronik Motor Driver Board - A micro:bit MicroPython class to control the Kitronik motor driver board.
  • microbit python libs - Growing collection of modules, including TM1637/TM1650 7-seg LEDs, OLED 128x64, LCD1602, AT24XX EEPROM, DS1302/DS1307/DS3231 RTC, NeoPixel drivers, APDS9930 Digital Proximity and Ambient Light Sensor, BME280 humidity and pressure sensor, BMP280/BMP180 pressure sensors.
Python Libraries
  • MicroPeri - Run Python programs on your computer with the same micro:bit MicroPython API and connecting a micro:bit as an external peripheral device or sensor.
  • microbit_stub - Python package that emulates the micro:bit as defined by the micro:bit MicroPython API.
  • bluezero - Python package to interface with Bluetooth devices, with examples for the micro:bit.
  • bitio - BBC micro:bit I/O library for Python. It allows you to run code in Python on a PC/Mac/Linux/Raspberry Pi and interact directly with the micro:bit.
Python Programming Tools
  • uFlash - Utility for flashing the micro:bit with Python scripts and the MicroPython runtime.
  • MicroFs - Simple command line tool and module for interacting with the limited file system provided by MicroPython on the micro:bit.
  • Jupyter kernel for the micro:bit - Package that allows Jupyter interfaces to run MicroPython code directly on the micro:bit.

JavaScript and MakeCode

  • MakeCode - This block and text editor for the micro:bit provides an in-browser emulator, a Blocks interface, and JavaScript (TypeScript) editor.
  • Espruino JavaScript - JavaScript interpreter for microcontrollers. It also offers a WebIDE for written code and blocks.
MakeCode Packages

To add a package find the "Add Package" option in the Settings menu or the "Advance" toolbox category.

The packages included in the official list below can be found by searching for their name in the "Add Package" window.

The following packages can be added into MakeCode by copying the GitHub URL and pasting it into the search box of the "Add Package" window.

  • BlueDot - PXT package to support the BlueDot app - beta.
  • Kitronik Servo Lite - Blocks that support Kitronik Servo:Lite board for the micro:bit.
  • Kitronik I2C 16 Servo - Blocks for driving the Kitronik I2C 16 servo expansion board.
  • Kitronik motor driver - Blocks for driving the Kitronik micro:bit motor driver board.
  • Lego Power Functions - Control your LEGO® Power Functions motors using your micro:bit with an infrared LED.
  • Invent robot - This library provides a Microsoft PXT package for Invent robot.
  • ubirch NB-IoT - Package for sending signed data messages to the ubirch backend.
  • CCS811 - Makecode Package for the CCS811 Air Quality Sensor.
  • DS1307 - Tinkercademy MakeCode package for using the DS1307 RTC (Real-Time Clock).
  • HT16K33 - Tinkercademy MakeCode Package for the HT16K33 I2C Alphanumeric Display (beta).
  • HoneyBit - A Honeycomb kits package for micro:bit MakeCode.
  • Bluetooth beacons - Allows the micro:bit to act as iBeacon / AltBeacon advertiser.
  • LumexOLED - Package designed for Lumex OLED display.
  • MakerBit - Blocks that support Roger Wagner's MakerBit board including Serial MP3, I2C LCD 1602, and ultrasonic.
Node.js Libraries
JavaScript Browser Libraries
  • microBit.js - JavaScript library to interact with BBC micro:bit using web bluetooth API.
JavaScript Programming Tools
  • PXT Command Line Tool - Use the command line to program the micro:bit with MakeCode JavaScript. You can also run a local version of the MakeCode online editor (previously known as PXT).

C/C++

  • C/C++ runtime - Guidance on how to start using the runtime in C/C++ including full documentation of the APIs, drivers, and types that make up the micro:bit runtime. Bluetooth documentation includes a link to the original *.hex file that ships on the micro:bit devices.
  • Arduino nRF5 - Arduino Core for Nordic Semiconductor nRF5 based boards, including the micro:bit.
C/C++ Editors
  • Micro:Pi - C/C++ editor for the micro:bit with serial monitor and deploy functionality. Written in Python with an installer (ATM Linux only, but could be manually installed in any OS) that includes all dependencies.
C/C++ Libraries
  • OneWire - BBC micro:bit OneWire Library, based upon Erik Olieman's Mbed DS1820 lib.
  • neopixel - Library for using NeoPixels with the BBC micro:bit.
  • micro:bit Screen - Arduino LED Screen library for micro:bit.
  • Adafruit Arduino micro:bit library - Wrapper code and examples for using micro:bit with Arduino IDE.
  • RTCC MCP7941X - Program to interface BBC micro:bit to a MCP79410 RTCC (Real Time Clock Calendar) module.
  • AS-289R2 - AS-289R2 thermal printer Mbed library for micro:bit.

Other micro:bit Languages

Other programming languages capable to program the micro:bit.

  • Touch Develop - Flexible, text-based programming language with an interactive visual component.
  • Rust - Article describing the experience and steps of compiling Rust code for the micro:bit with and without interaction with the runtime DAL.
  • Forth - Forth, a stack-based language, for the BBC micro:bit.
  • Pascal - Free Pascal compiler that can target the ARM embedded platform, including the micro:bit.
  • Ada - Instruction on how to setup the Ada development environment for the micro:bit.
  • Sniff - Sniff is a "Scratch-like" programming language that's designed to help Scratchers move gently from Scratch to more conventional languages.
  • Lisp - An interpreter for the classic AI programming language for the BBC micro:bit.

Other Interaction Languages

These languages do not program the micro:bit directly, but can be used to create programs that interface with a micro:bit.

  • Kodu Controller - Enables interacting with the micro:bit from Kodu Game Lab.
  • Simulink Coder Support Package - Package that enables you to create Simulink models and automatically generate and deploy code on the micro:bit.
  • micro:bit for Dyalog APL on the Pi - Tools for using the micro:bit (via MicroPython serial connection) with the Dyalog APL programming language on the Raspberry Pi.
  • Gobot - Framework for the Go programming language to program devices in the real world. It can access the micro:bit via Bluetooth LE.
  • Microbit-Unity - Unity scripts to allow the BBC Microbit to be used as a Unity Controller.
  • Haxe node BBC micro:bit - Control a BBC micro:bit from Node.js using BLE and the Haxe programming language.
  • App Inventor + IoT - Control a micro:bit via Bluetooth with App Inventor, a visual programming environment for Android applications.
  • BlockyTalkyBLE - MakeCode and App Inventor extension that makes it easy to connect AppInventor mobile phone apps with the BBC micro:bit wirelessly over Bluetooth.
  • DroidScript micro:bit Plugin - Allows you you to control the BBC micro:bit remotely from your own DroidScript apps (Android apps written in JavaScript).
  • CBMicroBit - CoreBluetooth wrapper in C++ that connects a micro:bit to a computer running macOS using BLE and outputs over OSC (can be used standalone, or as a C++ or Objective C library).
  • Swift - An application programming interface written in Swift for use with the micro:bit. It allows programs written for Apple devices to communicate with the micro:bit using BLE.

Programming Tools

Mobile Apps

  • Official Android App - (Source Code) Pair, program and flash programs to the micro:bit via Bluetooth.
  • Official iOS App - Pair, program and flash programs to the micro:bit via Bluetooth.
  • micro:bit Blue - (Source Code) Android app that contains a series demos for interacting with the micro:bit using Bluetooth.
  • Bitty Software Apps - Diverse collection of Android and iOS apps, going from data logging to audio pranks, you'll certainly find something of interest.
  • Insight Mr Bit - (iOS) Create simple programs in plain English to control the BBC micro:bit to do lots of useful things.
  • Micro:bit Xamarin - Open source Android app that communicates with the micro:bit over BLE and gets sensor data. A good example of using Xamarin (a cross platform mobile framework) with the micro:bit.
  • bitty blue - iOS and Android app that provides a collection of fun things to do with a BBC micro:bit (or compatible device) and Bluetooth.
  • micro:bit logger - Android app that enables users to log data from the BLE services and export it to a file.
  • Kitronik Move - Android app that presents a D-Pad interface to control a micro:bit over Bluetooth LE.
  • nRF Connect - A generic tool for Android that allows you to scan, advertise and explore BLE devices. It supports the micro:bit by including information on the micro:bit services, custom macros and more.
  • Tickle - iOS app to program a large selection of devices, including the micro:bit, connecting them all together, so that they can interact with each other.
  • Serial Bluetooth Terminal - Android app capable to send and receive micro:bit Bluetooth UART data.

ChromeOS Apps

  • Quiz:bit - (Source Code) BBC micro:bit programs and a matching application for providing a quiz-voter-style service using micro:bits as the controls.
  • bitty blue - Play with 3D "PolySquiggles", use as a compass, have fun with the buttons, send images or text to the LED display, connect and control electronic circuits, and all via Bluetooth.
  • bitty data logger - Capture and chart accelerometer, magnetometer and temperature data from your micro:bit's internal sensors over Bluetooth.
  • microbit-chrome - Prototype chrome addon that exposes the micro:bit's serial output to web pages like the MakeCode editor.

Interface Chip

The USB Interface Chip is the microcontroller placed close to the battery connector. It provides the USB mass storage capability to load the micro:bit firmware using the Operating System file explorer.

  • microbit.org Developer Community Info - This micro:bit Developer Community page contains information about the Interface Chip DAPlink and the USB interface.
  • DAPLink on micro:bit - The DAPLink is the default software running on the Interface Chip, this page contains information, update instructions, and the latest firmware.
  • DAPLink source code - Source code for the mbed DAPLink, contains the build configuration for the micro:bit.
  • J-Link OB Firmware - Offers the same flashing functionality than the DAPLink and expands it to include J-Link debugging.
  • pyOCD - Python library for programming and debugging ARM Cortex-M microcontrollers, like the one included in the micro:bit, using the CMSIS-DAP provided by the Interface Chip.
  • DAP.js - JavaScript (Node.js and WebUSB) interface to DAP-CMSIS over USB/HID, meant to provide a subset of functionality of pyOCD.

Hardware

  • Hardware Design - Schematics and bill of materials for the BBC micro:bit.
  • micro:bit Reference Design - Hardware design files for a board 100% binary compatible with the micro:bit. Created to help make your own micro:bit derived designs.
  • micro:bit Badge - Open Source PCB for the micro:bit with a battery holder, buzzer, extension edge connector and pins breaks out.
  • Eagle micro:bit Edge Part - Eagle library from Proto-Pic for the micro:bit edge connectors.
  • Kicad micro:bit Connector - KiCad component library and footprint library for a micro:bit edge-connector socket.
  • SparkFun Breakout Board - Open source files for the SparkFun micro:bit Breakout Board.
  • SparkFun moto:bit - Open source files for the SparkFun moto:bit, a board to provide a robotics platform.
  • SparkFun weather:bit - Open source files for the SparkFun weather:bit, a board to provide a weather station.
  • SparkFun gamer:bit - Open source files for the SparkFun gamer:bit, a board to provide a game system.

CAD & 3D Printing

2D Design

Projects

All these projects contain steps and resources required for reproduction.

  • JUST DO IoT - Connect the micro:bit to the LoRaWAN network, includes an open source hardware micro:bit connector board.
  • Micro:Bob - Simple bipedal robot controlled by a micro:bit.
  • Coffee Timer - (Part 2, Part 3) Three part article describing how to augment a coffee maker with an micro:bit indicator, options for low power communication, and creating a custom enclosure.
  • Thermal Printer - Connecting and using a Sparkfun thermal till-roll printer.
  • Telescopic Light Sword - Project shows how to make your own Light Sword with the micro:bit, electronics, and 3D printed parts.
  • Micro Simon - Programming and connecting a micro:bit to a vintage MB Simon game.
  • Alexa Weather On micro:bit - Creating an Amazon Alexa skill where the current weather can be asked and the result displayed on the micro:bit.
  • BBC Microbit Balloon Tracker - Making a ballon tracker with a micro:bit connected to GPS and a LoRa transceiver to track and transmit its position.
  • SonicPixels - BBC micro:bit and Max frameworks for triggering multiple speakers in a grid arrangement.
  • Little Bug Bit - Low cost micro:bit buggy.
  • HandShake - Project designed to enable unique gesture recognition for people with limited control of their motion.
  • Mega:Bit - Scaled up micro:bit with the 5x5 LED matrix and buttons, connected to a real micro:bit.
  • Scrolling display - Create a display screen using a number of micro:bits communicating via radio.
  • Ironman Arc Reactor - Choose between two different versions (Mk I and Mk II) ready to 3D print and build.
  • microbit-beacon-finder - The micro:bit finds various types of BLE Beacons, and displays their ID to the LEDs.
  • Build A Klawsome micro:bit Controlled Tank - Tutorial on how to design a build a perspex micro:bit tank.
  • micro:bit Hovercraft - A hovercraft, which runs both in the water and on the ground. Uses 2 motors to blow air underneath to support the hovercraft body and 2 motors in the end to control its direction.
  • ZIP Halo Compass - A Christmas themed micro:bit ZIP Halo Compass, with a 3D printed and laser cut case.
  • Micro:Boy - Hardware project to code and play arcade games on the micro:bit.
  • Alexa, Ask micro:bit to Turn LED Light - Project walk through to control with Alexa an RGB LED connected to a micro:bit.
  • OpenGestureControl - A Linux application which interacts with the BBC micro:bit to give hand prothesis users the ability to control their desktop computer using gestures.
  • micro:bit spectrum - Circuit and code to display an audio spectrum bar chart on the BBC micro:bit.
  • micro:bit TVPong - Play the classic Pong game on a TV - using BBC Microbits as paddles, Bluetooth also supported.
  • Bluetooth Low Energy Remote Control for Spotify - This project allows you to configure your micro:bit to work as a Bluetooth Low Energy remote control for Spotify on macOS.
  • Remote control LibreOffice slides with a micro:bit - The micro:bit as a Bluetooth remote for LibreOffice Impress presentations (and other use cases) on Linux using evemu to handle a virtual input device.

Project Collections

Articles

Useful Articles for developing on the micro:bit.

Article Collections

Videos

Books

Teaching Resources

BBC Teaching Resources

Community

Miscellaneous

  • micro:bit broadcast - (Discontinued, archived) newsletter to stay up-to-date with the latest micro:bit news, articles, projects, and resources.
  • microbit.org Support - The support pages from the micro:bit Foundation is a great source of information, containing an extensive collection of FAQs, articles, and guides.
  • Radiobit, a BBC Micro:Bit RF firmware - Radiobit is composed of a dedicated Micropython-based firmware and a set of tools allowing security researchers to sniff, receive and send data over Nordic's ShockBurst protocol, Enhanced ShockBurst protocol, Bluetooth Smart Link Layer and sniff raw 2.4GHz GFSK demodulated data.
  • micro:bit Poster - Element14 has put together this detailed, beautifully rendered, cross-section micro:bit poster highlighting all of the device's key functions and components.
  • Bluetooth troubleshooting guide - Tips on how to solve common and not so common micro:bit Bluetooth problems.
  • Micro World Tour - Before the micro:bit was released a few went on a tour to the world-wide Python community. A lot of interesting content and ideas on these micro:bit adventures.
  • Parent's Complete Guide To The BBC micro:bit - Free resource to help parent's get actively involved in helping their children learn how to code, even with no prior coding experience.
  • BBC Micro:bit composer - Write music and get the corresponding micro:bit micropython code, a tool made with Scratch.
  • micro:mag - The Unofficial micro:bit Community Magazine.

License

CC0

To the extent possible under law, the authors have waived all copyright and related or neighbouring rights to this work.


This projects is not endorsed, sponsored or associated with the BBC. "BBC", "micro:bit", and their logos are trademarks of the BBC.