Open Source Software

This is the home of all official open source content created by the BBC micro:bit Partnership in the process of developing the BBC micro:bit.
As part of the BBC micro:bit project, the BBC and its partners committed to making available the relevant IP to all, by open-sourcing the BBC micro:bit hardware and much of the software, following the nationwide rollout.
This will enable other organisations and individuals to develop their own products and applications using the BBC micro:bit, and in doing so, extend the educational impact and legacy of the project.
As the project continues, we will provide links from this page to the relevant locations of open-source information relating to the BBC micro:bit. Please note that the BBC does not accept any responsibility for the contents of these, or the applications using the open-sourced information.
The BBC will retain the brand licence for the BBC micro:bit. For community guidance on using the BBC micro:bit brand please see: https://www.microbit.co.uk/help#sect_cg

BBC micro:bit runtime

The micro:bit runtime 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.
The BBC micro:bit runtime can be found here:

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 a part of the micro:bit runtime and documentation for it is available from here:

MicroPython

MicroPython is a full reimplementation of Python 3 for small computers and allows you to run your Python scripts in real time 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 further Python modules.
The MicroPython source for the micro:bit can be found here:

Python editor

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.
More details can be found by reading the README file here:

Touch Develop

Microsoft’s Touch Develop environment provided the foundation for the web app and editor hosting for the BBC micro:bit, as well as the Touch Develop programming language, editing environment, and browser-based compiler toolchain to ARM machine code.
Touch Develop is open source at:
Please note, the remaining items of the BBC micro:bit project open source portfolio will be made available from this page after completion of the delivery of BBC micro:bits to children – expected to be in May, 2016.