Open Source

Discover our contributions to open source and learn how to get involved

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 in the community.

The list on this page contains every open source project. If we are missing anything please let us know.

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? That is wonderful! Please check our community guidelines before beginning work and do ensure you read repository licenses.

Programming

MakeCode web editor (makecode.microbit.org)

The MakeCode editor 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 (python.microbit.org)

The Python editor is deliberately simple to use. The code is also simple, copiously commented and the logic for the editor has 100% test coverage. 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. Finally the editor has been created by volunteers in their spare time. 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.

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.

Documentation

Device Abstraction Layer Docs

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

Low-level software

BBC micro:bit runtime

The micro:bit runtime (or Device Abstraction Layer - DAL) is a piece of software that 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 Blocks, Microsoft Touch Develop, Code Kingdoms JavaScript 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.

DAPLink

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

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.

Apps

Android App

The micro:bit app is the essential companion to the BBC micro:bit, allowing 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

See our get involved page to discover other ways of getting involved, from helping with translations to contributing source material and testing the latest micro:bit apps.

Selecting this opens external content from our support system, which adheres to their privacy policy.