/**
@defgroup    boards_microbit BBC micro:bit
@ingroup     boards
@brief       Support for the BBC micro:bit

## Overview

The [micro:bit](https://www.microbit.co.uk/) was designed by the BBC and
released in 2015. The boards was distributed to all 11-12 year old children
throughout the UK.

The board is based on the Nordic nRF51822 SoC, featuring 16KiB of RAM, 256KiB
of ROM, and a 2.4GHz radio, that supports Bluetooth Low Energy (BLE) as well as
a Nordic proprietary radio mode.

Additionally the boards features 2 buttons, a 5x5 LED matrix, a MAG3110
3-axis magnetometer, and a MMA8653 3-axis accelerometer.


## Hardware

![micro:bit](https://github.com/RIOT-OS/RIOT/wiki/images/board_microbit.png)

| MCU               | NRF51822QFAA                      |
|:----------------- |:--------------------------------- |
| Family            | ARM Cortex-M0                     |
| Vendor            | Nordic Semiconductor              |
| RAM               | 16KiB                             |
| Flash             | 256KiB                            |
| Frequency         | 16MHz                             |
| FPU               | no                                |
| Timers            | 3 (2x 16-bit, 1x 32-bit [TIMER0]) |
| ADCs              | 1x 10-bit (8 channels)            |
| UARTs             | 1                                 |
| SPIs              | 2                                 |
| I2Cs              | 2                                 |
| Vcc               | 1.8V - 3.6V                       |
| Reference Manual  | [Reference Manual](http://infocenter.nordicsemi.com/pdf/nRF51_RM_v3.0.pdf) |


##  Flashing and Debugging

There are two possibilities to flash the board: using the default ARM DAPLink
or you can flash the board using Segger's JLink.

### DAPLink

The [DAPLink interface](https://www.mbed.com/en/development/hardware/prototyping-production/daplink/daplink-on-kl26z/) is the default way to flash the board and
works out of the box. When you plug the board to your host computer, it shows up
as a flash drive. To flash the board, you can simply copy your compiled `.hex`
file onto the board, and that's it.

The `micro:bit` port comes with a little script that does this automatically,
so you can flash the board as usual with

```
BOARD=microbit make flash
```

The DAPLink interface provides however not means for debugging the board.

### JLink

Recently, Segger released a JLink firmware for the interface MCU on the
`micro:bit`. You have to follow [these instructions](https://www.segger.com/bbc-micro-bit.html) to flash the JLink firmware on your `micro:bit`. Don't worry,
the process is very simple and you can revert the firmware back to the DAPLink
default anytime ([as described here](https://www.mbed.com/en/development/hardware/prototyping-production/daplink/daplink-on-kl26z/)).

Once you have flashed the JLink firmware, you can flash the board like this:

```
BOARD=microbit PROGRAMMER=jlink make flash
```

With the JLink firmware, you can now also do in-circuit debugging etc.

**Note: The current version of the JLink firmware
(JLink_OB_BBC_microbit_16-07-29.hex) does not support any serial port over USB,
so you can not use the RIOT shell with this firmware.**


### QEMU emulation

The microbit can be partly emulated by QEMU.

This requires at least QEMU 4.0 with ARM platform support enabled.

*NOTE*: not all peripherals are emulated. See
[this](https://wiki.qemu.org/Features/MicroBit) page for an overview.
E.g., there's no emulation for the radio, thus applications using that will
fail.

Use it like this:

    $ cd examples/hello-world
    $ BOARD=microbit make clean all -j4
    $ EMULATE=1 BOARD=microbit make term

## Display

The 5x5 LED matrix display can be driven using the @ref boards_common_microbit.

 */
