New & Reviewed

Grab It Now: BBC micro:bit

DIYODE Magazine

Issue 2, August 2017

The BBC micro is one of the quintessential parts of modern PC history. It was devised as a learning program for schools in the UK during the early 80s. The key premise of this was to teach students the fundamentals of computers and how they worked. While the BBC micro has well passed its useful time, the ARM processor core that drove it, now forms the basis for modern systems such as the Raspberry Pi, Microsoft Surface, iPads and your Nintendo DS.

Fast forward 35 years and you have a world where everything is connected to everything. The phone in your pocket is capable of millions of calculations per second, all to show you videos of funny cats on YouTube. While the original BBC never took off in Australia the next generation has just landed. It's been in UK schools for one year, and we now have Australian distributors.

Hardware

On the surface, the micro:bit is quite small. We expected an Arduino-sized unit, but it is even smaller at 43mm x 52mm there are no outward connectors or header pins, just a micro USB and battery interface. The front of the unit has two small micro switches, a 25-LED matrix, and a series of five large holes in the bottom that act as interface pins. This forms part of a greater 23-pin interface. The holes are designed to easily accommodate banana plugs or alligator clips.

The unit itself is based on the 16MHz ARM Cortex-M0 32-bit processor with 256k Flash and 16k RAM. The unit supports Bluetooth LE, accelerometer, magnetometer (compass) and USB connectivity. Going beyond the basic 5-hole interface and using the 23-pin connector gives the user access up to 3 PWM outputs, 6-17 GPIO, 6 analogue inputs, serial I/O, SPI, and I2C. All powered by 2 AAA batteries.

Opening the box

The box is quite small and well packed. It contains the micro:bit, battery holder, 2 x AAA batteries, USB micro cable and a quick start guide. Setup was quite fun. This was done with a 9-year-old and involved shaking the unit and playing some mini games to set up. This was quite clever in my opinion; he was intrigued straight away. With a functional unit we elected to plug it in via the USB cable and start some code.

Software

The coding environment is block-driven and is very similar to Scratch. We pottered for a few minutes and worked out how to create the Hello World app. The unit is platform-independent and creates a .hex file which is downloaded to your computer. We had to drag and drop the file from its download location to the micro:bit which had shown up as a drive on the machine. The unit reboots itself and executes the program.

The software is straightforward to navigate and offers one of the best board simulations I have ever used. You can program and test in real-time without the need for a unit to even be connected. We gave the control over to Master 9 who undertook the paper, scissors, rock tutorial. It required us both to work through a couple of small issues, but most were understanding what code blocks were, and where and how we needed to replace them. Code blocks are all represented in different colours, and it does not take long to understand what belongs where. Within a few minutes, he had completed it and uploaded it to the unit, madly shaking it to play paper, scissors, rock.

He was engaged now and feeling accomplished. We set him a few tasks such as making the LEDs come on with the buttons. Within just 30 minutes he was able to create code that could read when the unit was tilted and to display varying icons based upon the inputs. His 7-year-old sister also wanted in, so we handed the teaching duties over to the 9-year-old and in under 10 minutes he was able to guide her through Hello World, button inputs and outputs, and how to upload to the unit. With further exploration she discovered she was able to increment a variable based only when the unit was tilted left, and then display the information by pressing a particular button.

The software is based online but once loaded can be reloaded offline (according to their documentation). There are various versions of programming languages to use. We only used the JavaScript block interface; it is easily switchable to a JavaScript code interface. There is also a Python-based editor for those who wish to dive even deeper into the abilities of the unit.

They also offer an iPad app that allows you to connect to the unit via Bluetooth and upload/flash your micro:bit. It opens a version of the JavaScript block editor in Safari. It uses a touch interface and although effective, it can be a little frustrating at times.

Teaching resources

The micro:bit website has one of the best teaching libraries we have seen, with resources provided for both students and teachers. The 9-year-old could easily follow the instructions to create some of the games.

micro:bit board within the :MoVE mini buggy kit.

:MOVE mini buggy kit

The :MOVE mini buggy kit shown above is great fun to build but it's not a project for little hands. It took an adult about an hour to get it together and tested with the example codes provided. Once assembled it does provide quite a lot of fun experiments, using the onboard sensors and Bluetooth interaction. It can also be controlled by a second micro:bit so you can tilt to go left and right. It includes the five RGB LEDs which is NeoPixel compatible, and supplies power to the two servos supplied to drive the buggy. The board can also be used as a base for other robotics projects.

Conclusion

Of all the microcontroller boards we have used, this is the one that opens the gateway to understanding the dynamics of the microcontroller world. The kids involved in this review were able to easily grasp the concept of "if" statements, variables and event-driven logic within a very short time frame.

When we first saw this we thought it was cute but was not likely to be as purposeful as the Arduino system. It's not, but it's also not the same thing. For the purpose it was designed for the micro:bit is one of the best learning and teaching devices we have used. It doesn't take long to realise that even using the JavaScript block editor, you have a very powerful tool at your disposal. Highly recommended from the DIYODE team! Want to see more projects based on the micro:bit?

Grab it online from Tronix Labs:

Update:

Since this review, we now see the micro:bit and prototyping accessories available from many other retailers, including: