Bluetooth support: not enough RAM for it, though in principle its chip/transceiver could support it! microbit-micropython.readthedocs.io/en/v1.0.1/ble.html
Supported editors: microbit.org/code/
Bibliography:
Microbit simulator using some Microsoft framework.
TODO the Python code from there does not seem to run on the microbit via
uflash, because it is not MicroPython.support.microbit.org/support/solutions/articles/19000111744-makecode-python-and-micropython explains.
forum.makecode.com/t/help-understanding-local-build-options/6130 asks how to compile locally and suggests it is possible. Seems to require Yotta, so presumably compiles?
When plugged into Ubuntu 22.04 via the USB Micro-B the Micro Bit mounts as:e.g.:for username
/media/$USER/MICROBIT//media/ciro/MICROBIT/ciro.Loading the program is done by simply copying a The file name does not matter, only the
.hex binary into the image e.g. with:cp ~/Downloads/microbit_program.hex /media/$USER/MICROBIT/.hex extension.users.ox.ac.uk/~corp0014/B6-lectures.html gives a syllabus:
- Heat capacity in solids, localised harmonic oscillator models (Dulong-Petit law and Einstein model)
- Heat capacity in solids, a model of sound waves (Debye model)
- A gas of classical charged particles (Drude theory)
- A gas of charged fermions (Sommerfeld theory)
- Bonding
- Microscopic theory of vibrations: the 1D monatomic harmonic chain. Mike Glazer's Chainplot program.
- Microscopic theory of vibrations: the 1D diatomic harmonic chain
- Microscopic theory of electrons in solids: the 1D tight-binding chain
- Geometry of solids: crystal structure in real space. VESTA, 3D visualization program for structural models; an example crystal structure database.
- Geometry of solids: real space and reciprocal space. Reciprocal Space teaching and learning package.
- Reciprocal space and scattering. A fun way to discover the world of crystals and their symmetries through diffraction.
- Scattering experiments II
- Scattering experiments III
- Waves in reciprocal space
- Nearly-free electron model
- Band structure and optical properties
- Dynamics of electrons in bands
- Semiconductor devices. Intel's "A History of Innovation"; Moore's Law; From Sand to Circuits.
- Magnetic properties of atoms
- Collective magnetism. A micromagnetic simulation tool, The Object Oriented MicroMagnetic Framework (OOMMF); OOMMF movies of magnetic domains and domain reversal.
- Mean field theory
Problem set dated 2015: users.ox.ac.uk/~corp0014/B6-materials/B6_Problems.pdf Marked by: A. Ardavan and T. Hesjedal. Some more stuff under: users.ox.ac.uk/~corp0014/B6-materials/
The book is the fully commercial The Oxford Solid State Basics.
To use a prebuilt firmware, you can just use What that does is:
uflash, tested on Ubuntu 22.04:git clone https://github.com/bbcmicrobit/micropython
cd micropython
git checkout 7fc33d13b31a915cbe90dc5d515c6337b5fa1660
uflash examples/led_dance.py- convert the MicroPython code to bytecode
- join it up with a prebuilt firmware that ships with uflash which contains the MicroPython interpreter
- flashes that
To build your own firmware see: Compile MicroPython code for Micro Bit locally on Ubuntu 22.04 with your own firmware
Compile MicroPython code for Micro Bit locally on Ubuntu 22.04 with your own firmware by
Ciro Santilli 37 Updated 2025-07-27
TODO didn't manage from source Ubuntu 22.04, their setup bitrotted way too fast... it's shameful even. Until I gave up and went for the magic Docker of + github.com/bbcmicrobit/micropython, and it bloody worked:
git clone https://github.com/bbcmicrobit/micropython
cd micropython
git checkout 7fc33d13b31a915cbe90dc5d515c6337b5fa1660
docker pull ghcr.io/carlosperate/microbit-toolchain:latest
docker run -v $(pwd):/home --rm ghcr.io/carlosperate/microbit-toolchain:latest yt target bbc-microbit-classic-gcc-nosd@https://github.com/lancaster-university/yotta-target-bbc-microbit-classic-gcc-nosd
docker run -v $(pwd):/home --rm ghcr.io/carlosperate/microbit-toolchain:latest make all
# Build one.
tools/makecombinedhex.py build/firmware.hex examples/counter.py -o build/counter.hex
cp build/counter.hex "/media/$USER/MICROBIT/"
# Build all.
for f in examples/*; do b="$(basename "$f")"; echo $b; tools/makecombinedhex.py build/firmware.hex "$f" -o "build/${b%.py}.hex"; doneThe pre-Docker attempts:
sudo add-apt-repository -y ppa:team-gcc-arm-embedded
sudo apt update
sudo apt install gcc-arm-embedded
sudo apt install cmake ninja-build srecord libssl-dev
# Rust required for some Yotta component, OMG.
sudo snap install rustup
rustup default 1.64.0
python3 -m pip install yottaThe line:warns:and then the update/
sudo add-apt-repository -y ppa:team-gcc-arm-embeddedE: The repository 'https://ppa.launchpadcontent.net/team-gcc-arm-embedded/ppa/ubuntu jammy Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.sudo apt-get install gcc-arm-embedded fails, bibliography:Attempting to install Yotta:or:was failing with:Running:did not help. Bibliography:
sudo -H pip3 install yottapython3 -m pip install --user yottaException: Version mismatch: this is the 'cffi' package version 1.15.1, located in '/tmp/pip-build-env-dinhie_9/overlay/local/lib/python3.10/dist-packages/cffi/api.py'. When we import the top-level '_cffi_backend' extension module, we get version 1.15.0, located in '/usr/lib/python3/dist-packages/_cffi_backend.cpython-310-x86_64-linux-gnu.so'. The two versions should be equal; check your installation.python3 -m pip install --user cffi==1.15.1From a clean virtualenv, it appears to move further, and then fails at:So we install Rust and try again, OMG:which at the time of writing was
Building wheel for cmsis-pack-manager (pyproject.toml) ... error
error: [Errno 2] No such file or directory: 'cargo'sudo snap install rustup
rustup default stablerustc 1.64.0, and then OMG, it worked!! We have the yt command.However, it is still broken, e.g.:blows up:bibliography:
git clone https://github.com/lancaster-university/microbit-samples
cd microbit-samples
git checkout 285f9acfb54fce2381339164b6fe5c1a7ebd39d5
cp source/examples/invaders/* source
yt clean
yt buildannot import name 'soft_unicode' from 'markupsafe'- microbit/micropython/uart.py: the Micro BIt comes with a UART simulator via the USB connection, it is very convenient: support.microbit.org/support/solutions/articles/19000022103-outputing-serial-data-from-the-micro-bit-to-a-computer To output data to the computer simply use Python
print. To receive you can e.g. use GNU screen:It appears to be very unreliable however, some times it shows up, sometimes it doesn't.screen /dev/ttyACM0 115200
In the 2010's/2020's, many people got excited about getting children in to electronics with cheap devboards, notably with Raspberry Pi and Arduino.
While there is some potential in that, Ciro Santilli always felt that this is very difficult to do, while also keeping his sacred principle of backward design in mind.
The reason for this is that "everyone" already has much more powerful computers at hand: their laptops/desktops and even mobile phones as of the 2020s. Except perhaps if you are thing specifically about poor countries.
Therefore, the advantage using such devboards for doing something that could useful must come from either:
- their low cost. This would be an important consideration if you were to mass produce your product, but that is not going to be the case for learners, at least initially.
- their portability, and closely linked their ability to act as sensors
- their ability to act as actuators, which is often missing from regular computers
- them having hardware accelerators that are not normally present in regular computers, e.g. FPGAs or AI accelerators. And then the demo project must demonstrate that the project is able to do something significantly faster/cheaper on the devboard than on a desktop computer.
Many devborads require a 5V power supply.
For battery power you need a transformer.
Raspberry Pi Battery Power by ExplainingComputers (2021)
Source. Many/most microcontroller boards have analog-to-digital converters built into them, it is very convenient. E.g. it is the case for the Raspberry Pi Pico.
Pinned article: Introduction to the OurBigBook Project
Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
Intro to OurBigBook
. Source. We have two killer features:
- topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculusArticles of different users are sorted by upvote within each article page. This feature is a bit like:
- a Wikipedia where each user can have their own version of each article
- a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.Figure 1. Screenshot of the "Derivative" topic page. View it live at: ourbigbook.com/go/topic/derivativeVideo 2. OurBigBook Web topics demo. Source. - local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
- to OurBigBook.com to get awesome multi-user features like topics and likes
- as HTML files to a static website, which you can host yourself for free on many external providers like GitHub Pages, and remain in full control
Figure 3. Visual Studio Code extension installation.Figure 4. Visual Studio Code extension tree navigation.Figure 5. Web editor. You can also edit articles on the Web editor without installing anything locally.Video 3. Edit locally and publish demo. Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension.Video 4. OurBigBook Visual Studio Code extension editing and navigation demo. Source. - Infinitely deep tables of contents:
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact





