Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Latest commit

History

582 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

microbit-v2-samples

Native Build StatusDocker Build Status

This repository provides the necessary tooling to compile a C/C++ CODAL program for the micro:bit V2 and generate a HEX file that can be downloaded to the device.

Raising Issues

Any issues regarding the micro:bit are gathered on the lancaster-university/codal-microbit-v2 repository. Please raise yours there too.

Installation

You need some open source pre-requisites to build this repo. You can either install these tools yourself, or use the docker image provided below.

We use Ubuntu Linux for most of our tests. You can also install these tools easily through the package manager:

 sudo apt install gcc
sudo apt install git
sudo apt install cmake
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi

Yotta

For backwards compatibility with microbit-samples users, we also provide a yotta target for this repository.

Docker

You can use the Dockerfile provided to build the samples, or your own project sources, without installing additional dependencies.

Run the following command to build the image locally; the .bin and .hex files from a successful compile will be placed in a new out/ directory:

 docker build -t microbit-tools --output out .

To omit the final output stage (for CI, for example) run without the --output arguments:

 docker build -t microbit-tools .

Building

  • Clone this repository
  • In the root of this repository type python build.py
  • The hex file will be built MICROBIT.hex and placed in the root folder.

Developing

You will find a simple main.cpp in the source folder which you can edit. CODAL will also compile any other C/C++ header files our source files with the extension .h .c .cpp it finds in the source folder.

The samples folder contains a number of simple sample programs that utilise you may find useful.

Developer codal.json

There is an example coda.dev.json file which enables "developer builds" (clones dependencies from the latest commits, instead of the commits locked in the codal-microbit-v2 tag), and adds extra CODAL flags that enable debug data to be printed to serial. To use it, simply copy the additional json entries into your codal.json file, or you can replace the file completely (mv coda.dev.json codal.json).

Debugging

If you are using Visual Studio Code, there is a working debugging environment already set up for you, allowing you to set breakpoints and observe the micro:bit's memory. To get it working, follow these steps:

  1. Install either OpenOCD or PyOCD.
  2. Install the marus25.cortex-debug VS Code extension.
  3. Build your program.
  4. Click the Run and Debug option in the toolbar.
  5. Two debugging options are provided: one for OpenOCD, and one for PyOCD. Select the correct one depending on the debugger you installed.

This should launch the debugging environment for you. To set breakpoints, you can click to the left of the line number of where you want to stop.

Compatibility

This repository is designed to follow the principles and APIs developed for the first version of the micro:bit. We have also included a compatibility layer so that the vast majority of C/C++ programs built using microbit-dal will operate with few changes.

Documentation

API documentation is embedded in the code using doxygen. We will produce integrated web-based documentation soon.

About

CODAL-based micro:bit V2 Bootloader for BirdBrain Products

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - BirdBrainTechnologies/microbit-v2-bootloader: CODAL-based micro:bit V2 Bootloader for BirdBrain Products · GitHub
Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Latest commit

History

582 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

microbit-v2-samples

Native Build StatusDocker Build Status

This repository provides the necessary tooling to compile a C/C++ CODAL program for the micro:bit V2 and generate a HEX file that can be downloaded to the device.

Raising Issues

Any issues regarding the micro:bit are gathered on the lancaster-university/codal-microbit-v2 repository. Please raise yours there too.

Installation

You need some open source pre-requisites to build this repo. You can either install these tools yourself, or use the docker image provided below.

We use Ubuntu Linux for most of our tests. You can also install these tools easily through the package manager:

 sudo apt install gcc
sudo apt install git
sudo apt install cmake
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi

Yotta

For backwards compatibility with microbit-samples users, we also provide a yotta target for this repository.

Docker

You can use the Dockerfile provided to build the samples, or your own project sources, without installing additional dependencies.

Run the following command to build the image locally; the .bin and .hex files from a successful compile will be placed in a new out/ directory:

 docker build -t microbit-tools --output out .

To omit the final output stage (for CI, for example) run without the --output arguments:

 docker build -t microbit-tools .

Building

  • Clone this repository
  • In the root of this repository type python build.py
  • The hex file will be built MICROBIT.hex and placed in the root folder.

Developing

You will find a simple main.cpp in the source folder which you can edit. CODAL will also compile any other C/C++ header files our source files with the extension .h .c .cpp it finds in the source folder.

The samples folder contains a number of simple sample programs that utilise you may find useful.

Developer codal.json

There is an example coda.dev.json file which enables "developer builds" (clones dependencies from the latest commits, instead of the commits locked in the codal-microbit-v2 tag), and adds extra CODAL flags that enable debug data to be printed to serial. To use it, simply copy the additional json entries into your codal.json file, or you can replace the file completely (mv coda.dev.json codal.json).

Debugging

If you are using Visual Studio Code, there is a working debugging environment already set up for you, allowing you to set breakpoints and observe the micro:bit's memory. To get it working, follow these steps:

  1. Install either OpenOCD or PyOCD.
  2. Install the marus25.cortex-debug VS Code extension.
  3. Build your program.
  4. Click the Run and Debug option in the toolbar.
  5. Two debugging options are provided: one for OpenOCD, and one for PyOCD. Select the correct one depending on the debugger you installed.

This should launch the debugging environment for you. To set breakpoints, you can click to the left of the line number of where you want to stop.

Compatibility

This repository is designed to follow the principles and APIs developed for the first version of the micro:bit. We have also included a compatibility layer so that the vast majority of C/C++ programs built using microbit-dal will operate with few changes.

Documentation

API documentation is embedded in the code using doxygen. We will produce integrated web-based documentation soon.

About

CODAL-based micro:bit V2 Bootloader for BirdBrain Products

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - BirdBrainTechnologies/microbit-v2-bootloader: CODAL-based micro:bit V2 Bootloader for BirdBrain Products · GitHub
Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Latest commit

History

582 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

microbit-v2-samples

Native Build StatusDocker Build Status

This repository provides the necessary tooling to compile a C/C++ CODAL program for the micro:bit V2 and generate a HEX file that can be downloaded to the device.

Raising Issues

Any issues regarding the micro:bit are gathered on the lancaster-university/codal-microbit-v2 repository. Please raise yours there too.

Installation

You need some open source pre-requisites to build this repo. You can either install these tools yourself, or use the docker image provided below.

We use Ubuntu Linux for most of our tests. You can also install these tools easily through the package manager:

 sudo apt install gcc
sudo apt install git
sudo apt install cmake
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi

Yotta

For backwards compatibility with microbit-samples users, we also provide a yotta target for this repository.

Docker

You can use the Dockerfile provided to build the samples, or your own project sources, without installing additional dependencies.

Run the following command to build the image locally; the .bin and .hex files from a successful compile will be placed in a new out/ directory:

 docker build -t microbit-tools --output out .

To omit the final output stage (for CI, for example) run without the --output arguments:

 docker build -t microbit-tools .

Building

  • Clone this repository
  • In the root of this repository type python build.py
  • The hex file will be built MICROBIT.hex and placed in the root folder.

Developing

You will find a simple main.cpp in the source folder which you can edit. CODAL will also compile any other C/C++ header files our source files with the extension .h .c .cpp it finds in the source folder.

The samples folder contains a number of simple sample programs that utilise you may find useful.

Developer codal.json

There is an example coda.dev.json file which enables "developer builds" (clones dependencies from the latest commits, instead of the commits locked in the codal-microbit-v2 tag), and adds extra CODAL flags that enable debug data to be printed to serial. To use it, simply copy the additional json entries into your codal.json file, or you can replace the file completely (mv coda.dev.json codal.json).

Debugging

If you are using Visual Studio Code, there is a working debugging environment already set up for you, allowing you to set breakpoints and observe the micro:bit's memory. To get it working, follow these steps:

  1. Install either OpenOCD or PyOCD.
  2. Install the marus25.cortex-debug VS Code extension.
  3. Build your program.
  4. Click the Run and Debug option in the toolbar.
  5. Two debugging options are provided: one for OpenOCD, and one for PyOCD. Select the correct one depending on the debugger you installed.

This should launch the debugging environment for you. To set breakpoints, you can click to the left of the line number of where you want to stop.

Compatibility

This repository is designed to follow the principles and APIs developed for the first version of the micro:bit. We have also included a compatibility layer so that the vast majority of C/C++ programs built using microbit-dal will operate with few changes.

Documentation

API documentation is embedded in the code using doxygen. We will produce integrated web-based documentation soon.

About

CODAL-based micro:bit V2 Bootloader for BirdBrain Products

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - BirdBrainTechnologies/microbit-v2-bootloader: CODAL-based micro:bit V2 Bootloader for BirdBrain Products · GitHub
Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Latest commit

History

582 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

microbit-v2-samples

Native Build StatusDocker Build Status

This repository provides the necessary tooling to compile a C/C++ CODAL program for the micro:bit V2 and generate a HEX file that can be downloaded to the device.

Raising Issues

Any issues regarding the micro:bit are gathered on the lancaster-university/codal-microbit-v2 repository. Please raise yours there too.

Installation

You need some open source pre-requisites to build this repo. You can either install these tools yourself, or use the docker image provided below.

We use Ubuntu Linux for most of our tests. You can also install these tools easily through the package manager:

 sudo apt install gcc
sudo apt install git
sudo apt install cmake
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi

Yotta

For backwards compatibility with microbit-samples users, we also provide a yotta target for this repository.

Docker

You can use the Dockerfile provided to build the samples, or your own project sources, without installing additional dependencies.

Run the following command to build the image locally; the .bin and .hex files from a successful compile will be placed in a new out/ directory:

 docker build -t microbit-tools --output out .

To omit the final output stage (for CI, for example) run without the --output arguments:

 docker build -t microbit-tools .

Building

  • Clone this repository
  • In the root of this repository type python build.py
  • The hex file will be built MICROBIT.hex and placed in the root folder.

Developing

You will find a simple main.cpp in the source folder which you can edit. CODAL will also compile any other C/C++ header files our source files with the extension .h .c .cpp it finds in the source folder.

The samples folder contains a number of simple sample programs that utilise you may find useful.

Developer codal.json

There is an example coda.dev.json file which enables "developer builds" (clones dependencies from the latest commits, instead of the commits locked in the codal-microbit-v2 tag), and adds extra CODAL flags that enable debug data to be printed to serial. To use it, simply copy the additional json entries into your codal.json file, or you can replace the file completely (mv coda.dev.json codal.json).

Debugging

If you are using Visual Studio Code, there is a working debugging environment already set up for you, allowing you to set breakpoints and observe the micro:bit's memory. To get it working, follow these steps:

  1. Install either OpenOCD or PyOCD.
  2. Install the marus25.cortex-debug VS Code extension.
  3. Build your program.
  4. Click the Run and Debug option in the toolbar.
  5. Two debugging options are provided: one for OpenOCD, and one for PyOCD. Select the correct one depending on the debugger you installed.

This should launch the debugging environment for you. To set breakpoints, you can click to the left of the line number of where you want to stop.

Compatibility

This repository is designed to follow the principles and APIs developed for the first version of the micro:bit. We have also included a compatibility layer so that the vast majority of C/C++ programs built using microbit-dal will operate with few changes.

Documentation

API documentation is embedded in the code using doxygen. We will produce integrated web-based documentation soon.

About

CODAL-based micro:bit V2 Bootloader for BirdBrain Products

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - BirdBrainTechnologies/microbit-v2-bootloader: CODAL-based micro:bit V2 Bootloader for BirdBrain Products · GitHub
Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Latest commit

History

582 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

microbit-v2-samples

Native Build StatusDocker Build Status

This repository provides the necessary tooling to compile a C/C++ CODAL program for the micro:bit V2 and generate a HEX file that can be downloaded to the device.

Raising Issues

Any issues regarding the micro:bit are gathered on the lancaster-university/codal-microbit-v2 repository. Please raise yours there too.

Installation

You need some open source pre-requisites to build this repo. You can either install these tools yourself, or use the docker image provided below.

We use Ubuntu Linux for most of our tests. You can also install these tools easily through the package manager:

 sudo apt install gcc
sudo apt install git
sudo apt install cmake
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi

Yotta

For backwards compatibility with microbit-samples users, we also provide a yotta target for this repository.

Docker

You can use the Dockerfile provided to build the samples, or your own project sources, without installing additional dependencies.

Run the following command to build the image locally; the .bin and .hex files from a successful compile will be placed in a new out/ directory:

 docker build -t microbit-tools --output out .

To omit the final output stage (for CI, for example) run without the --output arguments:

 docker build -t microbit-tools .

Building

  • Clone this repository
  • In the root of this repository type python build.py
  • The hex file will be built MICROBIT.hex and placed in the root folder.

Developing

You will find a simple main.cpp in the source folder which you can edit. CODAL will also compile any other C/C++ header files our source files with the extension .h .c .cpp it finds in the source folder.

The samples folder contains a number of simple sample programs that utilise you may find useful.

Developer codal.json

There is an example coda.dev.json file which enables "developer builds" (clones dependencies from the latest commits, instead of the commits locked in the codal-microbit-v2 tag), and adds extra CODAL flags that enable debug data to be printed to serial. To use it, simply copy the additional json entries into your codal.json file, or you can replace the file completely (mv coda.dev.json codal.json).

Debugging

If you are using Visual Studio Code, there is a working debugging environment already set up for you, allowing you to set breakpoints and observe the micro:bit's memory. To get it working, follow these steps:

  1. Install either OpenOCD or PyOCD.
  2. Install the marus25.cortex-debug VS Code extension.
  3. Build your program.
  4. Click the Run and Debug option in the toolbar.
  5. Two debugging options are provided: one for OpenOCD, and one for PyOCD. Select the correct one depending on the debugger you installed.

This should launch the debugging environment for you. To set breakpoints, you can click to the left of the line number of where you want to stop.

Compatibility

This repository is designed to follow the principles and APIs developed for the first version of the micro:bit. We have also included a compatibility layer so that the vast majority of C/C++ programs built using microbit-dal will operate with few changes.

Documentation

API documentation is embedded in the code using doxygen. We will produce integrated web-based documentation soon.

About

CODAL-based micro:bit V2 Bootloader for BirdBrain Products

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - BirdBrainTechnologies/microbit-v2-bootloader: CODAL-based micro:bit V2 Bootloader for BirdBrain Products · GitHub
Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Latest commit

History

582 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

microbit-v2-samples

Native Build StatusDocker Build Status

This repository provides the necessary tooling to compile a C/C++ CODAL program for the micro:bit V2 and generate a HEX file that can be downloaded to the device.

Raising Issues

Any issues regarding the micro:bit are gathered on the lancaster-university/codal-microbit-v2 repository. Please raise yours there too.

Installation

You need some open source pre-requisites to build this repo. You can either install these tools yourself, or use the docker image provided below.

We use Ubuntu Linux for most of our tests. You can also install these tools easily through the package manager:

 sudo apt install gcc
sudo apt install git
sudo apt install cmake
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi

Yotta

For backwards compatibility with microbit-samples users, we also provide a yotta target for this repository.

Docker

You can use the Dockerfile provided to build the samples, or your own project sources, without installing additional dependencies.

Run the following command to build the image locally; the .bin and .hex files from a successful compile will be placed in a new out/ directory:

 docker build -t microbit-tools --output out .

To omit the final output stage (for CI, for example) run without the --output arguments:

 docker build -t microbit-tools .

Building

  • Clone this repository
  • In the root of this repository type python build.py
  • The hex file will be built MICROBIT.hex and placed in the root folder.

Developing

You will find a simple main.cpp in the source folder which you can edit. CODAL will also compile any other C/C++ header files our source files with the extension .h .c .cpp it finds in the source folder.

The samples folder contains a number of simple sample programs that utilise you may find useful.

Developer codal.json

There is an example coda.dev.json file which enables "developer builds" (clones dependencies from the latest commits, instead of the commits locked in the codal-microbit-v2 tag), and adds extra CODAL flags that enable debug data to be printed to serial. To use it, simply copy the additional json entries into your codal.json file, or you can replace the file completely (mv coda.dev.json codal.json).

Debugging

If you are using Visual Studio Code, there is a working debugging environment already set up for you, allowing you to set breakpoints and observe the micro:bit's memory. To get it working, follow these steps:

  1. Install either OpenOCD or PyOCD.
  2. Install the marus25.cortex-debug VS Code extension.
  3. Build your program.
  4. Click the Run and Debug option in the toolbar.
  5. Two debugging options are provided: one for OpenOCD, and one for PyOCD. Select the correct one depending on the debugger you installed.

This should launch the debugging environment for you. To set breakpoints, you can click to the left of the line number of where you want to stop.

Compatibility

This repository is designed to follow the principles and APIs developed for the first version of the micro:bit. We have also included a compatibility layer so that the vast majority of C/C++ programs built using microbit-dal will operate with few changes.

Documentation

API documentation is embedded in the code using doxygen. We will produce integrated web-based documentation soon.

About

CODAL-based micro:bit V2 Bootloader for BirdBrain Products

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - BirdBrainTechnologies/microbit-v2-bootloader: CODAL-based micro:bit V2 Bootloader for BirdBrain Products · GitHub
Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Latest commit

History

582 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

microbit-v2-samples

Native Build StatusDocker Build Status

This repository provides the necessary tooling to compile a C/C++ CODAL program for the micro:bit V2 and generate a HEX file that can be downloaded to the device.

Raising Issues

Any issues regarding the micro:bit are gathered on the lancaster-university/codal-microbit-v2 repository. Please raise yours there too.

Installation

You need some open source pre-requisites to build this repo. You can either install these tools yourself, or use the docker image provided below.

We use Ubuntu Linux for most of our tests. You can also install these tools easily through the package manager:

 sudo apt install gcc
sudo apt install git
sudo apt install cmake
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi

Yotta

For backwards compatibility with microbit-samples users, we also provide a yotta target for this repository.

Docker

You can use the Dockerfile provided to build the samples, or your own project sources, without installing additional dependencies.

Run the following command to build the image locally; the .bin and .hex files from a successful compile will be placed in a new out/ directory:

 docker build -t microbit-tools --output out .

To omit the final output stage (for CI, for example) run without the --output arguments:

 docker build -t microbit-tools .

Building

  • Clone this repository
  • In the root of this repository type python build.py
  • The hex file will be built MICROBIT.hex and placed in the root folder.

Developing

You will find a simple main.cpp in the source folder which you can edit. CODAL will also compile any other C/C++ header files our source files with the extension .h .c .cpp it finds in the source folder.

The samples folder contains a number of simple sample programs that utilise you may find useful.

Developer codal.json

There is an example coda.dev.json file which enables "developer builds" (clones dependencies from the latest commits, instead of the commits locked in the codal-microbit-v2 tag), and adds extra CODAL flags that enable debug data to be printed to serial. To use it, simply copy the additional json entries into your codal.json file, or you can replace the file completely (mv coda.dev.json codal.json).

Debugging

If you are using Visual Studio Code, there is a working debugging environment already set up for you, allowing you to set breakpoints and observe the micro:bit's memory. To get it working, follow these steps:

  1. Install either OpenOCD or PyOCD.
  2. Install the marus25.cortex-debug VS Code extension.
  3. Build your program.
  4. Click the Run and Debug option in the toolbar.
  5. Two debugging options are provided: one for OpenOCD, and one for PyOCD. Select the correct one depending on the debugger you installed.

This should launch the debugging environment for you. To set breakpoints, you can click to the left of the line number of where you want to stop.

Compatibility

This repository is designed to follow the principles and APIs developed for the first version of the micro:bit. We have also included a compatibility layer so that the vast majority of C/C++ programs built using microbit-dal will operate with few changes.

Documentation

API documentation is embedded in the code using doxygen. We will produce integrated web-based documentation soon.

About

CODAL-based micro:bit V2 Bootloader for BirdBrain Products

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - BirdBrainTechnologies/microbit-v2-bootloader: CODAL-based micro:bit V2 Bootloader for BirdBrain Products · GitHub
Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Latest commit

History

582 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

microbit-v2-samples

Native Build StatusDocker Build Status

This repository provides the necessary tooling to compile a C/C++ CODAL program for the micro:bit V2 and generate a HEX file that can be downloaded to the device.

Raising Issues

Any issues regarding the micro:bit are gathered on the lancaster-university/codal-microbit-v2 repository. Please raise yours there too.

Installation

You need some open source pre-requisites to build this repo. You can either install these tools yourself, or use the docker image provided below.

We use Ubuntu Linux for most of our tests. You can also install these tools easily through the package manager:

 sudo apt install gcc
sudo apt install git
sudo apt install cmake
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi

Yotta

For backwards compatibility with microbit-samples users, we also provide a yotta target for this repository.

Docker

You can use the Dockerfile provided to build the samples, or your own project sources, without installing additional dependencies.

Run the following command to build the image locally; the .bin and .hex files from a successful compile will be placed in a new out/ directory:

 docker build -t microbit-tools --output out .

To omit the final output stage (for CI, for example) run without the --output arguments:

 docker build -t microbit-tools .

Building

  • Clone this repository
  • In the root of this repository type python build.py
  • The hex file will be built MICROBIT.hex and placed in the root folder.

Developing

You will find a simple main.cpp in the source folder which you can edit. CODAL will also compile any other C/C++ header files our source files with the extension .h .c .cpp it finds in the source folder.

The samples folder contains a number of simple sample programs that utilise you may find useful.

Developer codal.json

There is an example coda.dev.json file which enables "developer builds" (clones dependencies from the latest commits, instead of the commits locked in the codal-microbit-v2 tag), and adds extra CODAL flags that enable debug data to be printed to serial. To use it, simply copy the additional json entries into your codal.json file, or you can replace the file completely (mv coda.dev.json codal.json).

Debugging

If you are using Visual Studio Code, there is a working debugging environment already set up for you, allowing you to set breakpoints and observe the micro:bit's memory. To get it working, follow these steps:

  1. Install either OpenOCD or PyOCD.
  2. Install the marus25.cortex-debug VS Code extension.
  3. Build your program.
  4. Click the Run and Debug option in the toolbar.
  5. Two debugging options are provided: one for OpenOCD, and one for PyOCD. Select the correct one depending on the debugger you installed.

This should launch the debugging environment for you. To set breakpoints, you can click to the left of the line number of where you want to stop.

Compatibility

This repository is designed to follow the principles and APIs developed for the first version of the micro:bit. We have also included a compatibility layer so that the vast majority of C/C++ programs built using microbit-dal will operate with few changes.

Documentation

API documentation is embedded in the code using doxygen. We will produce integrated web-based documentation soon.

About

CODAL-based micro:bit V2 Bootloader for BirdBrain Products

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages