QEMU short for Quick Emulator is an open-source emulator that has now been extended to emulate a complete micro:bit running exactly the same software as on the real device.

Micro:bit simulators are already available for many of the high level languages that it runs. These aren't true emulators as they simply use the language implementation to run the code. 

QEMU emulates the micro:bit CPU and boots from the same ARM code as the real micro:bit board. The simulation happens at the CPU instruction and hardware interface level instead of at the JavaScript API level. This is called full-system emulation because the entire guest software environment is present. It runs under Linux, Windows and MacOS.

The advantages are:

  • Programs written in any language can run (MicroPython, mbed C/C++, etc)
  • Boot, device driver, and language run-time code can be tested
  • Bugs in lower layers of the software stack can be reproduced
  • CPU architecture-specific bugs can be reproduced (stack and memory corruption bugs)
  • A debugger can be connected to inspect the entire software stack


Of course the disadvantage is that emulation is slower than the real thing The.emulation includes the core devices on the micro:bit, including the serial port (UART) and timers. This is enough for developing and testing low-level software but does not offer the LEDs, radio, and other devices that most micro:bit programs rely on. These devices might be emulated by QEMU in the future, but for now the main use of QEMU is for developing and testing low-level micro:bit code.


More Information







comments powered by Disqus