micro:bit
Overview
The Micro Bit (also referred to as BBC Micro Bit, stylized as micro:bit) is an ARM-based embedded system designed by the BBC for use in computer education in the UK.
The board is 4 cm × 5 cm and has an ARM Cortex-M0 processor, accelerometer and magnetometer sensors, Bluetooth and USB connectivity, a display consisting of 25 LEDs, two programmable buttons, and can be powered by either USB or an external battery pack. The device inputs and outputs are through five ring connectors that are part of the 23-pin edge connector.
More information about the board can be found at the microbit website [1].
Hardware
The micro:bit has the following physical features:
25 individually-programmable LEDs
2 programmable buttons
Physical connection pins
Light and temperature sensors
Motion sensors (accelerometer and compass)
Wireless Communication, via Radio and Bluetooth
USB interface
Supported Features
The bbc_microbit
board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo
-
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
Type |
Location |
Description |
Compatible |
---|---|---|---|
CPU |
on-chip |
ARM Cortex-M0 CPU1 |
|
ADC |
on-chip |
nRF ADC node1 |
|
ARM architecture |
on-chip |
Nordic UICR (User Information Configuration Registers)1 |
|
on-chip |
Nordic nRF family MPU (Memory Protection Unit)1 |
||
on-chip |
Nordic nRF family SWI (Software Interrupt)6 |
||
Clock control |
on-chip |
Nordic nRF clock control node1 |
|
Comparator |
on-chip |
Nordic nRF LPCOMP (analog Low-Power COMParator)1 |
|
Counter |
on-chip |
Nordic nRF timer node3 |
|
Cryptographic accelerator |
on-chip |
Nordic ECB (AES electronic codebook mode encryption)1 |
|
on-chip |
Nordic nRF family CCM (AES CCM mode encryption)1 |
||
Display |
on-board |
Generic LED matrix driven by nRF SoC GPIOs1 |
|
Flash controller |
on-chip |
Nordic NVMC (Non-Volatile Memory Controller)1 |
|
GPIO & Headers |
on-chip |
NRF5 GPIOTE1 |
|
on-chip |
NRF5 GPIO1 |
||
on-board |
GPIO pins exposed on BBC MicroBit headers1 |
||
I2C |
on-chip |
||
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv6-M NVIC (Nested Vectored Interrupt Controller) controller1 |
|
Miscellaneous |
on-chip |
Nordic FICR (Factory Information Configuration Registers)1 |
|
on-chip |
Nordic nRF family PPI (Programmable Peripheral Interconnect)1 |
||
MTD |
on-chip |
Flash node1 |
|
on-board |
Fixed partitions of a flash (or other non-volatile storage) memory1 |
||
Networking |
on-chip |
Nordic nRF family RADIO peripheral1 |
|
Pin control |
on-chip |
The nRF pin controller is a singleton node responsible for controlling pin function selection and pin properties1 |
|
Power management |
on-chip |
Nordic nRF power control node1 |
|
PWM |
on-chip |
nRFx S/W PWM1 |
|
Retained memory |
on-chip |
Nordic GPREGRET (General Purpose Register Retention) device1 |
|
RNG |
on-chip |
Nordic nRF family RNG (Random Number Generator)1 |
|
RTC |
on-chip |
Nordic nRF RTC (Real-Time Counter)2 |
|
Sensors |
on-board |
FXOS8700 6-axis accelerometer/magnetometer sensor1 |
|
on-board |
STMicroelectronics LIS2MDL magnetometer accessed through I2C bus1 |
||
on-board |
STMicroelectronics LIS2DH 3-axis accelerometer accessed through I2C bus1 |
||
on-chip |
Nordic nRF family TEMP node1 |
||
on-chip |
Nordic nRF quadrature decoder (QDEC) node1 |
||
Serial controller |
on-chip |
Nordic nRF family UART1 |
|
SPI |
on-chip |
Nordic nRF family SPI (SPI master)2 |
|
SRAM |
on-chip |
Generic on-chip SRAM description1 |
|
Watchdog |
on-chip |
Nordic nRF family WDT (Watchdog Timer)1 |
Programming and Debugging
Flashing
Build and flash applications as usual (see Building an Application and Run an Application for more details).
Here is an example for the Hello World application.
First, run your favorite terminal program to listen for output.
$ minicom -D <tty_device> -b 115200
Replace <tty_device>
with the port where the board nRF51 DK
can be found. For example, under Linux, /dev/ttyACM0
.
Then build and flash the application in the usual way.
# From the root of the zephyr repository
west build -b bbc_microbit samples/hello_world
west flash