A curated list of resources for the BBC micro:bit, a pocket-sized programmable board with a Bluetooth capable microcontroller, accelerometer, magnetometer, LED matrix, a couple of buttons, and accessible GPIO.
Inspired by the Awesome lists.
Table Of Contents:
- Programming
- Programming Tools
- Mobile Apps
- Interface Chip
- Hardware
- CAD & 3D Printing
- Projects
- Articles
- Videos
- Books
- Teaching Resources
- Miscellaneous
- MakeCode - (Previously known as PXT) Provides an in-browser emulator and a Blocks interface that generates JavaScript (TypeScript) code.
- Microsoft Blocks - A Block interface that produces Touch Develop code. No longer in development and it's recommended to use MakeCode instead.
- Code Kingdoms - A graphical interface that provides a transitioning experience from 'drag and drop' to text-based programming (JavaScript).
- Scratch for BBC micro:bit - Using micro:bit with Scratch / S2Bot as a Bluetooth 'games controller' (needs specific BLED112 Bluetooth dongle).
- Open Roberta Lab - A block programming environment design for programming robots, it also supports the micro:bit by generating MicroPython.
- ScratchX micro:bit extension - Lets you control your micro:bit wirelessly using Scratch programming blocks.
- MicroPython - Port of MicroPython, a Python 3 implementation for microcontrollers and constrained environments.
- microbit.org Python editor - The official online Python editor from the micro:bit foundation website.
- microbit.co.uk Python editor - Original Python editor from microbit.co.uk, contains an older version of MicroPython.
- Mu - A "micro" editor for MicroPython and the BBC micro:bit.
- create.withcode.uk - A Python online editor and simulator that supports the micro:bit MicroPython (instructions).
- Atom microbit-micropython - micro:bit MicroPython support package for the Atom editor.
- Thonny micro:bit - A plug-in for Thonny, a Python IDE for beginners.
- JetBrains IDEA/PyCharm IDE plugin - Support for MicroPython devices in IntelliJ IDEA and PyCharm.
- Servo - A simple class for controlling servos on the micro:bit via PWM.
- PCA9685 - A 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 - A 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.
- 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 - A Python package that emulates the micro:bit as defined by the micro:bit MicroPython API.
- bluezero - A Python package to interface with Bluetooth devices, with examples for the micro:bit.
- bitio - A 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.
- uFlash - A utility for flashing the micro:bit with Python scripts and the MicroPython runtime.
- MicroFs - A 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 - This package allows Jupyter interfaces to run MicroPython code directly on the micro:bit.
- MakeCode - The Programming eXperience Toolkit for the micro:bit provides an in-browser emulator, a Blocks interface, and JavaScript (TypeScript) editor.
- Espruino JavaScript - A JavaScript interpreter for microcontrollers. It also offers a WebIDE for written code and blocks.
- Code Kingdoms - A graphical interface that provides a transitioning experience from 'drag and drop' to text-based programming (JavaScript).
- Neopixel - A Neo-Pixel package for pxt-microbit.
- Filesystem - BETA package to support file system.
- MAX6675 - A package for the MAX6675 component in PXT.
- Bluetooth MAX6675 - A bluetooth service for the MAX6675 temperature probe.
- Sonar - A Microsoft MakeCode package to handle sonar sensors and pings.
- Bluetooth Temperature Sensor - A Bluetooth service to expose a temperature reading.
- MIDI - A MIDI interface for MakeCode - beta.
- Bluetooth MIDI - A Bluetooth Midi package for Microsoft Make Code - beta.
- BlueDot - A PXT package to support the BlueDot app - beta.
- GY521 - A PXT package for the Microbit to drive a MPU-6050 (GY-521).
- UCL Junkrobot - A junk robot controlled using 28BYJ-48 stepper motors and HC-SR04 ultrasonic sensor.
- BitBot - BitBot Package for Microsoft PXT.
- gamer:bit - SparkFun gamer:bit package for Microsoft MakeCode.
- moto:bit - MakeCode package for the SparkFun weather:bit board.
- weather:bit - The package adds support for the weather:bit add-on board from SparkFun.
- SSD1306 - This is the PXT Package for SSD1306 OLED controller, based on the Adafruit Arduino library.
- mi:node - mi:node kit(micro:bit IoT Starter Kit by element14) driver package for PXT/microbit.
- 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.
- node-bbc-microbit - Control a micro:bit from Node.js using BLE.
- microBit.js - A javascript library to interact with BBC micro:bit using web bluetooth API. .
- 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++ 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.
- Micro:Pi - A micro:bit specific C/C++ editor 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.
- OneWire - micro:bit OneWire Library, based upon Erik Olieman's mbed DS1820 lib.
- neopixel - Library for using neopixels with the BBC micro:bit.
- microbit Screen - Arduino LED Screen library for micro:bit.
- Touch Develop - A flexible, text-based programming language with an interactive visual component.
- Rust on BBC micro:bit - Describes 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 - The Free Pascal compiler can also target the ARM embedded platform, including the micro:bit.
- Ada - Instruction on how to setup the Ada development environment for the micro:bit.
- Kodu Controller - Enables interacting with the microbit from Kodu Game Lab.
- Simulink Coder Support Package - This package enables you to create Simulink models and automatically generate and deploy code on the micro:bit.
- microbit 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 now 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 - MicroBit Plugin - Allows you you to control the BBC micro:bit remotely from your own DroidScript apps (Android apps written in JavaScript).
- Vagrant C/C++ Development Environment - With a single command it creates a virtual machine with all the toolchain required to compile and flash C/C++ programs to the micro:bit (including MicroPython).
- micro:bit uploader - Windows application that monitors your Downloads folder and flashes any new programs to the micro:bit.
- 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 - A 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 (Source code) - Android app that demonstrates communicating with BBC micro:bit over Bluetooth LE and getting sensor data. As an open source app, it's a good example of using Xamaring 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.
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 - Node.js interface to DAP-CMSIS over USB/HID, meant to provide a subset of functionality of pyOCD.
- 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 librarie from Proto-Pic for the micro:bit edge connectors.
- Kicad micro:bit Connector - A 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.
- Kitronik CAD Resources - micro:bit CAD model from Kitronik.
- Proto-PIC CAD Resources - Proto-PIC products CAD resources.
- Microbot Case - 3D printed case for the micro:bit in the shape of a robot.
- micro:bit Stand - 3D printed stand for the micro:bit.
- micro:bit Rover - 3D printable parts to build a micro:bit robot rover.
- Binary Watch - 3D printed watch case and strap for the micro:bit.
- A4 folder holder - 3D printed holder to keep your micro:bit in a A4 school folder.
- mibot drawing robot - 3D printed chassis for a painting robot powered by a BBC micro:bit and its motor drive board.
All these projects contain steps and resources required for reproduction.
- Quiz:bit - micro:bit programs and a matching application for providing a quiz-voter-style service using micro:bits as the controls.
- JUST DO IoT - Connect the micro:Bit to the LoRaWAN network, includes open source hardware microbit connector board.
- Micro:Bob - A simple bipedal robot controlled by a micro:bit.
- Coffee Timer (1, 2, 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.
- Connecting a thermal printer to a BBC microbit - Connecting the micro:bit to a thermal till-roll printer to print a random poems or Christmas cracker jokes.
- 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 - Micro:bit and Max frameworks for triggering multiple speakers in a grid arrangment.
- 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 - A a scaled up micro:bit with the 5 x 5 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.
- microbit.co.uk Site Index - The microbit.co.uk website contains an extensive list with all their projects and tutorials.
- hackster micro:bit community - This hackster community contains user submitted projects for the micro:bit.
- MakeCode Projects - List of micro:bit projects you can do with the MakeCode editor.
- Inventorspace micro:bit category - A community by SparkFun with fun projects you can implement in your classroom, school or district.
- Tinkercademy Projects - Collection of projects using the micro:bit and Tinkercademy Tinker Kit.
Useful Articles for developing on the micro:bit.
- Getting Started Microbit & Microsoft’s new www.codethemicrobit.com Environment
- Offline C/C++ Development With The Micro:bit
- Sending 'commands' from a micro:bit over Bluetooth
- Modelling micro:bit data with the Bitty Data Logger App
- Getting Started with the micro:bit Bluetooth IO Pin Service
- Using MQTT-SN over BLE with the BBC micro:bit
- The First Video Game on the BBC Micro:bit [probably] - Creating a game for the micro:bit, the MicroPython changes needed to increase performance and a general profile of its resources.
- Custom BLE services with micro:bit - Build your own Bluetooth low energy services and bundle them as PXT/MakeCode blocks that beginners can use.
- Excel and Micro:Bit - Hacking for fun and creativity! - An experiment to have some basic sensor data collected using the micro controller and then visualized in Excel.
- Writing the second video game for the Micro:bit in Rust - Updating a micro:bit game and porting it to the Rust language.
- Build A Klawsome microbit Controlled Tank - Tutorial on how to design a build a perspex micro:bit tank.
- Adding a new module to MicroPython - Article describing an experiment to add a new module into MicroPython for the micro:bit.
- Become a Time Lord with the BBC micro:bit - Using different timing mechanisms to run multiple things in MicroPython.
- MultiWingSpan - A large collection of examples, instructions, and direction on how to use electronic components.
- Elecfreaks micro:bit category - Elecfreaks collection of experiments going through the concepts of using individual sensors or components.
- SparkFun micro:bit tutorials - Collection of tutorials from SparkFun, including comprehensive experiment guides for their kits.
- MicroMonsters - A YouTube channel with tutorials to learn to code with your family.
- micro:bit and Bluetooth - YouTube playlist with Martin Woolley's Bluetooth videos.
- Video Series from The Maker Movies - A list of short, introductory videos for anyone wanting to get started with the micro:bit.
- SparkFun video resources - A growing list of video resources for the micro:bit.
- SamCodes YouTube Playlist - Video tutorials showing how to use different electronic components and features of the micro:bit.
- micro:bit IoT In C
- BBC micro:bit - 35 Touch Develop & MicroPython Projects
- Programming with MicroPython
- Getting Started with the micro:bit
- The Official BBC micro:bit User Guide
- microbit.org Teaching Resources
- IET micro:bit Teaching Resources
- Code Club micro:bit projects
- Make with the micro:bit by Technology Will Save Us
- Grok Learning - Provides an online MicroPython code editor, Blockly visual programming, full micro:bit simulator, curriculum-aligned teaching material and auto-marked problems.
- Microbit For Primary Schools
- 101 Computing BBC micro:bit category - Computing challenges with the micro:bit to boost your programming skills or spice up your teaching of computer science.
- Micro:bit Maths - A blog exploring the BBC micro:bit in mathematics education.
- micro:bit of Things - Notes on micro:bit project ideas for Key Stage 2 and 3.
- The Brooke Primary School Space Programme - Project page documenting Brooke Primary School pupil's upcoming journey for launching a BBC micro:bit (on its own) into near-space, with experiments and sensor measurements.
- FunWithMicrobit - FunWithMicrobit is a 6 hours workshop made by kids for the kids.
- Year 7 micro:bit lessons - by Jon Witts, used to introduce students to the micro:bit and Python.
- UCL’s BBC Micro:bit Tutorials - Tutorial sheets that introduce micro:bit features with practical examples provided to invite students to design solutions to problems.
- BBC micro:bit and Kodu Interact - Kodu is a visual programming language made specifically for creating games and allow interaction with the micro:bit.
- Build A Robot Wars Buggy - This fun learning resource has been put together to provide teachers with an all in one design and technology challenge that you can set for your students over the course of a term or a year.
- CPC UCreate Micro:bit resources - A collection of micro:bit resources made for CPC.
- Year 7 BBC micro:bit topic - micro:bit lessons from Bourne Grammar school.
- Doctor Who Live Lesson - The BBC micro:bit will be put to the test at the controls of the TARDIS in this special BBC Live Lesson in collaboration with the team behind Doctor Who.
- Tackle time and space with Doctor Who and the BBC micro:bit - Join The Doctor on an adventure of courage, cunning and coding! Part 1: Mission Sonic, Part 2: Mission Decode, and Part 3: Mission Hack.
- Microsoft 14 Week Curriculum - Targeted to middle school grades 6-8 (ages 11-14 years). It is also written for teachers who may not have a Computer Science background, or may be teaching an "Intro to CS" for the first time.
- micro:bit in science teaching - How clean is my pond - Using a micro:bit to monitor the level of algal growth in a pond and to control a filter pump.
- Inventorspace micro:bit category - A community by SparkFun with fun projects you can implement in your classroom, school or district.
- microbit Fritzing Part - Richard Hayler collection of Fritzing parts contains a model for the micro:bit.
- micro:bit broadcast - Free newsletter to stay up-to-date with the latest micro:bit news, articles, projects, and resources.
- micro:bit-o-matic - Easily create micro:bit illustrations with custom LED matrix messages.
- 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.
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.