micro:bit Circuit Schematics
This page discusses the micro:bit schematic and Bill of Materials (BOM), which shows the electrical connections of the micro:bit and the components used in it.
If you’re looking to make something of your own based on the micro:bit, you might prefer to use our ‘Reference Design’ which is based on a radio module and has space on the layout for you to add your own components.
The schematic will be kept in version control in the micro:bit GitHub account. It will be released by the BBC once final sign-off around license terms has completed.
Below, we’ve extracted some useful details about the hardware that anyone implementing software for the micro:bit, interfacing to it, or designing an add-on board for it should find useful.
LEDS 9 x 3
The LED matrix is physically layed out as a 5x5, but it is implemented in hardware as a scanned matrix of 9x3 (i.e. 9 colums by 3 rows). Row 2 Col 8, and Row 2 Col 9 are not used.
The LED matrix is driven via a high-speed multiplex generated by application processor software. This software also uses the LED Row and Col pins to implement the light sensing feature. Some of the Columns appear on the edge connector, so if you want to use extra GPIO pins, you have to disable the display in software.
The Interface sheet shows the KL26 processor, which is an ARM processor that implements the USB protocol for the USB connector. This provides a method for loading code onto the application processor, using a drag and drop interface.
The USB protocol handler on this processor implements a Mass Storage Class device in order to offer the drag and drop code load interface. It also provides a Connected Device Class that allows a serial port interface to be used across the USB.
The interface processor also contains an on-board regulator that steps down the USB voltage to 3.3V suitable for powering the rest of the micro:bit, and you can draw 120mA from this processor regulator. A TVS device is fitted to suppress ESD spikes and out of range voltages that could be present on the USB connector.
This processor does not have any connection to the GPIO pins on the micro:bit.
There are two sensor IC’s on the micro:bit, an accelerometer and a magnetometer. The accelerometer measures acceleration in 3 axies, and the magnetometer can be used as a compass, as well as a magnetic field detector.
Both devices are connected to the application processor I2C bus, and this bus is also connected to two pins on the edge connector. I2C pullup resistors are pre-fitted on the board.
The magnetometer can generate one processor interrupt for the application processor, and the accelerometer can generate two different processor interrupts for the application processor.
Note, the physical orientation of these two IC’s is important for binary compat with the driver code in the application processor, which assumes a particular physical orientation in it’s calculations.
Power to the micro:bit can be provided by 3 sources: The USB, the battery connector, and the 3V pad on the edge connector.
For USB powering, the KL26 interface processor has an on-board regulator that brings the external USB voltage into the correct range for the micro:bit board.
A low-Vf diode (in this case about 0.23V max) is used to switch between sources. The diode prevents back-powering of any source from any other source.
Care should be taken if powering the micro:bit from the 3V pad on the edge connector, as the trace from that pad is connected directly to the IC’s on the board. Please check the datasheets for the appropriate IC’s for their maximum tolerable voltages.
The main application processor runs both the runtime code and user code, as a single binary image.
Code is loaded into this processor via the interface processor.
Communications via USB serial is done via the interface processor.
All GPIO pins on the edge connector are serviced by this application processor.
All bluetooth features are provided by a SoftDevice stack loaded into this processor.
The edge connector is the main interface to external components attached to the micro:bit.
This interface has a range of digital, analog, touch, pwm, and serial communications interfaces.
10Mohm weak pull-up resistors are fitted on P0 P1 and P2 for use in touch sensing mode, where they provide a weak pull-up to the supply providing a default high input and the user touching the GND pad pulls the pin down towards 0V, providing a low input. When in non touch modes, these pads have stronger internal pull-downs enabled in the software, so that the default input state when not connected is ‘low’.
Guard pins are provided both sides of the 3V and GND pads, so that shorting by crocodile clips does not degrade the features of the device by causing spurious inputs.
Both the front and the back of each of the 5 round ring pads are electrically connected.
A number of pins have alternate assigned functions for use by the micro:bit, many of these can be disabled in software to gain more general purpose IO pins.