BBC micro:bit is an educational board with the nRF52833 chip, a 25-LED matrix, buttons, an accelerometer, a magnetometer, a speaker and a microphone. It is programmed in MakeCode, MicroPython or Scratch. Everything else connects via the edge connector: five rings for banana plugs and alligator clips (0, 1, 2, 3V, GND) and 20 narrow pads for the edge connector of expansion boards.
Specifications
- nRF52833: ARM Cortex-M4F 64 MHz, 512 KB flash, 128 KB RAM
- Bluetooth LE 5
- 19 GPIO on the edge connector, 6 analog inputs (P0–P4, P10), touch on P0–P2 and the logo
- SPI (P13–P15), external I2C (P19/P20), UART and PWM on any pin
- 5 × 5 LED matrix, A and B buttons, speaker, microphone, accelerometer and magnetometer
- 51.6 × 42 mm
The diagram shows the front side rotated by 90° – the edge connector is on the left, P3 at the top, GND at the bottom. The contact order is the same on V1 and V2. The narrow pads have a 1.27 mm pitch; besides their rings, 3V and GND each have two more pads with the same voltage.
On V2, P19/P20 are a separate external I2C bus (the onboard sensors use an internal one) and P9 is free. Pins P3, P4, P6, P7 and P10 are display columns – you can use them as GPIO only with the display turned off.
Pinout and pin table
Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.
| Pin | Name | nRF52833 | Direction | I2C | SPI | ADC | Touch | Note |
|---|---|---|---|---|---|---|---|---|
| Edge connector 1 | P3 | P0.31 | input/output | AIN7 | Display column COL3 – usable as GPIO only with the display off (display.disable()); light sensing stops working along with the display. | |||
| Edge connector 2 | P0 | P0.02 | input/output | AIN0 | dotyk | Analog input, touch (ring). MakeCode also sends speaker audio to P0 – move it elsewhere with pins.setAudioPin(). | ||
| Edge connector 3 | P4 | P0.28 | input/output | AIN4 | Display column COL1 – only with the display off. | |||
| Edge connector 4 | P5 | P0.14 | input/output | Button A (10 kΩ pull-up) – do not use as GPIO | ||||
| Edge connector 5 | P6 | P1.05 | input/output | Display column COL4 – only with the display off. | ||||
| Edge connector 6 | P7 | P0.11 | input/output | Display column COL2 – only with the display off. | ||||
| Edge connector 7 | P1 | P0.03 | input/output | AIN1 | dotyk | |||
| Edge connector 8 | P8 | P0.10 | input/output | Free GPIO (NFC2 on the chip, GPIO by default). | ||||
| Edge connector 9 | P9 | P0.09 | input/output | Free on V2 (on V1 it was a display column). NFC1 on the chip – GPIO by default. | ||||
| Edge connector 10 | P10 | P0.30 | input/output | AIN6 | Display column COL5 – only with the display off. | |||
| Edge connector 11 | P11 | P0.23 | input/output | Button B (10 kΩ pull-up) – do not use as GPIO | ||||
| Edge connector 12 | P12 | P0.12 | input/output | Reserved for accessibility | ||||
| Edge connector 13 | P2 | P0.04 | input/output | AIN2 | dotyk | |||
| Edge connector 14 | P13 | P0.17 | input/output | SCK | ||||
| Edge connector 15 | P14 | P0.01 | input/output | MISO | ||||
| Edge connector 16 | P15 | P0.13 | input/output | MOSI | ||||
| Edge connector 17 | P16 | P1.02 | input/output | |||||
| Edge connector 18 | 3V | input/output | 3.3 V output for accessories, max. 190 mA. When powered via the 3V ring, the voltage goes straight to the chips' supply – use only a regulated 1.8–3.6 V source, ideally through a diode. | |||||
| Edge connector 19 | 3V | input/output | 3.3 V output for accessories, max. 190 mA. When powered via the 3V ring, the voltage goes straight to the chips' supply – use only a regulated 1.8–3.6 V source, ideally through a diode. | |||||
| Edge connector 20 | 3V | input/output | 3.3 V output for accessories, max. 190 mA. When powered via the 3V ring, the voltage goes straight to the chips' supply – use only a regulated 1.8–3.6 V source, ideally through a diode. | |||||
| Edge connector 21 | P19 | P0.26 | input/output | SCL | External I2C SCL with a 4.7 kΩ pull-up. On V2 the accelerometer, magnetometer and interface chip are on a separate internal bus (on V1 it was shared). | |||
| Edge connector 22 | P20 | P1.00 | input/output | SDA | External I2C SDA, 4.7 kΩ pull-up | |||
| Edge connector 23 | GND | – | ||||||
| Edge connector 24 | GND | – | ||||||
| Edge connector 25 | GND | – |
Pins used on the board
These chip pins are used by parts on the board and are not broken out:
| Pin | Function on the board |
|---|---|
| P0.00 | Reproduktor |
| P0.05 | Mikrofon (AIN3) |
| P0.20 | Power for the microphone and its LED |
| P1.04 | Touch logo |
| P0.08, P0.16 | Internal I2C SCL, SDA – accelerometer and magnetometer (0x19, 0x1E), interface chip (0x70/0x72) |
| P0.25 | Sensor interrupt |
| P0.21, P0.22, P0.15, P0.24, P0.19 | LED matrix rows ROW1–ROW5 |
| P0.06, P1.08 | UART to the interface chip (USB) |
What to watch out for
- GPIO are not 5V tolerant (3.3 V logic).
- P3, P4, P6, P7 and P10 are shared with the display – turn it off (display.disable()).
- P5 and P11 are buttons A and B – don’t use them as GPIO.
- Draw at most 190 mA from the 3V ring; power it externally only with a regulated 1.8–3.6 V.
- MakeCode also sends audio to P0 – move it elsewhere with pins.setAudioPin().
More pinouts
See all pinouts on the Pinouts page.