Using our website means you agree to using cookies which help us improve microbit.org.Learn more
Skip to content

User guide

Open source

What is open source?

Open source can mean a few different things, but here at the Micro:bit Educational Foundation it means that code and resources that we and our collaborators publish under an open source licence can be inspected, modified, remixed and improved by absolutely anyone.

Since the early days of the micro:bit project we have worked in partnership. We believe by adopting an open source philosophy we are able to collaborate with everyone who is inspired by the BBC micro:bit.

This page contains the core open source micro:bit-related projects.

Some of the code is stored in 'repositories' hosted by GitHub. You can learn more about GitHub in this support article.

Are you thinking of contributing to our open source projects? Thank you! Please check our brand guidelines before beginning work and do ensure you read individual repository licenses.

Programming

Microsoft MakeCode editor

The Microsoft MakeCode editor makes it easy to program your micro:bit with blocks and JavaScript. It is powered by MakeCode, an online block-based code editor based on the Microsoft Programming Experience Toolkit (PXT).

The MakeCode editor also lets you create extensions for your favourite accessories, extensions developed by the community can be found here: https://makecode.microbit.org/extensions/

Python web editor

Our Python editor is deliberately simple to use. The code is also simple and copiously commented. The HEX file is generated in the browser (essentially, we take the MicroPython runtime and append a hex encoded script to it) so the editor works offline. The editor has been created by volunteers in their spare time and is now maintained by the Micro:bit Educational Foundation. It's free software so you are welcome to adapt, adopt and change it for your own uses. We also welcome contributions.

MicroPython

MicroPython is a full reimplementation of Python 3 for small computers and allows you to run your Python scripts on the micro:bit. MicroPython has been extended to include a special micro:bit Python module, and other fun features like music, which you can use to easily program the device. The code is created by an international team of free-software developers and you are welcome to contribute.

View source

Mu editor

Mu is a simple code editor for beginner programmers based on extensive feedback from teachers and learners. Mu is written in Python and works on Windows, OSX, Linux and Raspberry Pi. The Mu editor supports quick flashing and accessing the REPL.

Low-level software

The micro:bit runtime - DAL

The micro:bit Device Abstraction Layer (DAL) is the core set of drivers, mechanisms and types that make up the micro:bit runtime.

It provides access to all the capabilities of the micro:bit using a simple, easy to use C/C++ library. It is used as an enabling technology for the micro:bit family of languages, including Microsoft MakeCode and MicroPython. It is also a fully documented, open-source platform that enables direct development of micro:bit programs using a variety of online or offline tools including the Arm Mbed toolchain. The micro:bit runtime is built on the hardware and software platforms provided by Arm and Nordic Semiconductor.

Bluetooth profile

The BBC micro:bit includes Bluetooth low energy technology. All Bluetooth devices require a profile which defines the way in which data and commands may be exchanged with another Bluetooth device such as a smartphone. The custom profile designed for the micro:bit, gives wireless access over Bluetooth to the micro:bit accelerometer, magnetometer, buttons, edge connector pins, display, temperature sensor and internal message bus among other things. The profile is implemented as part of the micro:bit runtime and documentation for it is available from the GitHub repository.

View source

This is the software that runs on the micro:bit's interface chip to allow you to program it.

Arm Mbed DAPLink is an open-source software project that enables programming and debugging application software running on Arm Cortex CPUs.

View source

Hardware

Reference design

This repository stores the Micro:bit Educational Foundation's reference design. The purpose of this design is to help people turn the inventions they've made with a micro:bit into a standalone board, and to learn more about how things are made and manufactured. The full documentation for the reference design lives here.

View source

Apps

Android app

The micro:bit Android app allows you to flash code to your micro:bit wirelessly and communicate between a mobile device and the micro:bit.

Swift Playgrounds

Swift Playgrounds is an app for the iPad that helps teach people to code in the Swift language using interactive 'books'. We've created a book that interacts with the micro:bit wirelessly, helping you to learn the fundamentals of code while having fun with your micro:bit! This also includes a Swift API for interacting with the micro:bit, allowing developers to easily create their own micro:bit books.

Other ways of contributing

Discover other ways of getting involved, in our developer community, helping with translations or testing the latest micro:bit apps.