Development environment setup

Dealing with microcontrollers involves several tools, as we'll be dealing with an architecture different than your laptop's, and we'll have to run and debug programs on a "remote" device.


Without documentation it is pretty much impossible to work with microcontrollers.

We'll be referring to the micro:bit hardware page and the links found within.

HEADS UP Some of the links point to large PDF files several MBs in size.


We'll use all the tools listed below. Where a minimum version is not specified, any recent version should work but we have listed the version we have tested.

  • Cargo & rustc.

  • OpenOCD. version >=0.8

  • arm-none-eabi toolchain. Tested version: gcc 8.1.0, binutils 2.30.

  • arm-none-eabi-gdb.

  • minicom on Linux and macOS. Tested version: 2.7. Readers report that picocom also works but we'll use minicom in this book.

  • PuTTY on Windows.

Next, follow OS-agnostic installation instructions for a few of the tools:

rustc & Cargo

Install rustup by following the instructions at

Then, install or switch to the nightly channel.

$ rustup default nightly

NOTE Make sure you have a nightly newer than nightly-2018-10-12. rustc -V should return a date newer than the one shown below:

$ rustc -V
rustc 1.31.0-nightly (2c2e2c57d 2018-10-12)

OS specific instructions

Now follow the instructions specific to the OS you are using: