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.
MakeCode web editor (makecode.microbit.org)
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 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.
Device Abstraction Layer Docs
BBC micro:bit runtime
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.
Arm Mbed DAPLink is an open-source software project that enables programming and debugging application software running on Arm Cortex CPUs.
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.
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 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.