RoadTest: We’re giving away 5 BBC micro:bits!
Evaluation Type: Independent Products
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: CodeBug
What were the biggest problems encountered?: No access to all pins without breakout board.
This is my review for the We’re giving away 5 BBC micro:bits! Road Test.
Let's start by comparing the review sample with a retail model and power on the board for the first time.
Before we get started, let's cover what this board is, and what it is capable of.
The BBC micro:bit is a little development board with a 32-bit ARM Cortex M0 CPU with Bluetooth Low-Energy. There is also an accelerometer and compass, 5x5 LED matrix, 2 push buttons and 3 I/O rings supporting both digital and analog signals. The board is powered using a 3V battery pack with JST connector.
The device was designed to get children actively involved in coding, and has even been given away for free to children of year seven (11-12 year olds I believe) in the UK. As of July this year, it has also been for sale for anyone to purchase.
The review sample consisted of two parts, without any packaging: a green micro:bit a battery pack. The retail version on the other hand, came with a little paper bag.
When purchasing the micro:bit, there are different options: board and battery pack, starter kit with additional microUSB cable, or even full kits with breadboard, dupont wires and so on.
Having both a review sample and a retail model, I thought I'd compare them. I wasn't expecting anything major, but it seems there are various differences after all.
On the front of the board, minor differences:
On the back of the board, the component side, there are few differences. Some components have been moved or rotated, others added or removed. I'm not sure what these differences are or do, but it seems the board underwent a new revision before being released.
With the board being released, various kits and add-on boards appeared as well. One I particularly like is the prototyping plate which holds the micro:bit, a breakout board, battery pack and a breadboard. This makes prototyping really easy, as everything is held in place and doesn't dangle from wires. The only thing I would say is missing, is an ON/OFF switch on the battery pack or on the micro:bit. Sure, the battery pack can be disconnected. But repeatedly inserting and removing the battery pack is bound to put strain on the connector or wires, eventually resulting in failure.
The BBC micro:bit is preloaded with a demo program demonstrating some of its features such as the buttons and the accelerometer. There is also a little easter egg available at the end.
Here's the demo program in action:
Now that we got to know the micro:bit a bit better, let's compare it to a similar board: the CodeBug.
At first sight, both boards look similar:
When comparing to a prototype of the micro:bit, the resemblance with the CodeBug is even more striking.
(prototype picture source: https://www.raspberrypi.org/blog/bbc-make-it-digital/ )
That's about where the common characteristics end. The CodeBug doesn't have the BLE connectivity or the onboard sensors. The processor is an 8-bit PIC and only has a fraction of the flash and RAM of the micro:bit.
|Processor||32-bit ARM Cortex M0||8-bit PIC18F|
|I/O||2 buttons / 5x5 LED matrix / 3 I/O rings / 20 small pins edge connector||2 buttons / 5x5 LED matrix / 4 I/O rings|
|Sensors||Compass / Accelerometer||N/A|
|Power||5V microUSB / 3V battery pack via JST connector / 3V via PWR & GND rings||5V microUSB / 3V via coin cell / 3V via PWR & GND rings / 3V via expansion header|
|Connectivity||microUSB / BLE / SPI & I2C on edge connector||microUSB / I2C expansion header|
From what I could find, both seem to retail for about £15, even though their capabilities differ greatly.
Let's move on to the programming of the micro:bit.
There are currently four ways to program a micro:bit, from using blocks to writing actual code:
I tried my hand at Python, using the offline mu Python editor, and it works as expected!
As an exercise, I programmed a little race game using a stip of individually addressable LEDs (NeoPixels). each player gets a button, A or B, and a colored pixel advances on every press of the button. Two more players could be added by using the remaining I/O rings and attaching a button to them.
Here's a demo of the race game:
And the Python code I created:
The micro:bit can be a fun piece of kit. I like the fact that there are multiple ways to program it, and the various onboard sensors allow for interesting applications without the need for add-ons.
The ring style connectors are a bit annoying to work with, as the alligator clips tend to slide, potentially shorting with other pins. To make use of all the pins available on the edge connector, a breakout board is required.
There is a lot of documentation available, which makes it easy to look things up in case of questions or problems.