This blog investigates how the BBC micro:bit power supply circuitry works.

I have been trying to interface the micro:bit with different peripherals and planned to run it off a 4.2 volt lithium-polymer battery, however it was not clear if it is safe to run it off a Li-Po battery. The manual only says it can run off 2 AAA batteries, which might supply a little over 3 volts.

The technical documentation for the device is still very sparse and for the types of things I am doing there are no examples, which means I need to do some reverse engineering and trial-and-error tests.

The module only has 5 chips on it - a compass chip, an accelerometer, a regulator and 2 ARM Cortex M0 MCUs.

I started by arbitrarily labeling all the components and numbering all the test points as shown in the picture below.


Next I used a DVM to run continuity checks to see which pins were connected. I pretty much mapped out the whole schematic, but my purpose here is mainly to discuss the power supply aspects. The schematic below shows what I found for power circuitry.


I then examined the data sheet for both MCUs to see how they are powered.

Both MCUs have internal voltage regulators:

the NXP/Kinetis MCU has a USB interface and its regulator can handle 5 volt USB power, so it is connected directly to the USB power.

The 3.3 V output of this regulator only seems to connect to the NXP MCU and this MCU does not seem to get power from any other source. If the module is run from battery power, the voltage on the NXP regulator output is 0.9 V, possibly leaking over on some pins connected to the other MCU. This is not enough to run the NXP MCU (minimum running voltage is 1.71 V)

The Nordic MCU has a maximum power input voltage of 3.9 volts, implying it cannot run directly from the USB 5 volts, so the USB 5 Volts is regulated down to 3.3 Volts for the Nordic MCU. It can run from either the regulator voltage or the external battery connector. These two lines are diode or-ed so they don't fight each other before feeding the Nordic MCU. I called this voltage node VCCIO in the schematic. It is also connected to the micro:bit card edge connector (3V) and the corresponding banana jack. Note when driven by the battery, there is no regulation on this voltage so it will sag as the battery gets depleted.

Next I took some measurements:

The diodes used only have a 0.1 V drop at these current levels, so the VCCIO voltage is about 3.2 V when running from USB.


The absolute maximum voltage you can apply to the battery connector is 4.0 volts without damaging the Nordic MCU, so if I want to connect my 4.2 volt battery there, I would need to run it though a diode that drops the voltage at least 0.2 volts.

I could connect my 4.2 volt battery safely to the USB connector, but this will apply power to both MCUs and the power indicator LED, which will deplete the battery faster. Also I am not sure in what state the NXP MCU will put the Nordic MCU if I do this.

It would be nice if real schematics were published for the module so other people don't need to rely on my potentially incorrect reverse engineering assumptions when trying to interface other electronics.


Similarly the I2C interface I'm trying to connect to a keypad is turning into a big exercise. It looks like the compass and accelerometer use the same I2C bus, but they are not playing well together. It is not clear how it is set up on the micro:bit and the Python documentation on I2C is extremely sketchy. Looking at the signals with a scope definitely shows these I2C devices mess each other up. At times like this I feel a need for a scope that can "read" I2C.

The saga continues....


Relevant links


micro:bit roadtests!

BBC micro:bit - Big Idea Challenge

micro:bit reference links:

BBC micro:bit home page:

micro:bit coding page:

micro:bit MicroPython:

micro:bit IoT:

micro:bit Bluetooth:

micro:bit power consumption:

micro:bit breadboard:


android & ios apps:

micro:bit Projects:

10 micro:bit projects:

9 micro:bit projects:

8 micro:bit projects:

7 micro:bit projects:

6 micro:bit projects: