Embedded Computing
  • About
  • Blog
  • Hardware
    • Which Platform?
    • Controller Platforms >
      • Adafruit Platform
      • Arduino Plaform
      • BBC micro:bit
      • Espressif Platform
      • iLabs Platform
      • Raspberry Pi Platform (MCU)
      • Seeed Platform
      • Silicon Labs Platform
      • Teensy Plaform
    • Computer Platforms >
      • BeagleBone Platform
      • Raspberry Pi Platform (SBC)
      • UDOO Platform
    • Peripherals >
      • Shields
      • Grove System
      • Sensors
      • Actuators
    • Displays >
      • E-Paper Displays
      • Reflective Displays
      • TFT Displays
      • LCD Displays
    • Legacy Platforms >
      • chipKIT Plaform
      • 4D Systems Platform
      • Intel Platform
      • LaunchPad Plaform
      • BoosterPacks for LaunchPads
      • LightBlue Bean
      • Maple Plaform
      • Mediatek Platform
      • Microsoft Azure IoT DevKit
      • Particle Platform
  • Software
    • Exploring RTOS with Galaxia >
      • Event Library
      • Semaphore Library
      • Mailbox Library
      • Timer Library
      • Clock Library
      • SWI Library
      • Task Library
    • Ultra-Low Power with EnergyTrace >
      • Ultra-Low Power with MSP430
      • Ultra-Low Power with Energia MT and Galaxia
    • Using Integers Instead of Reals
    • Going Python?
  • IoT
    • IoT Platforms: Which Hardware? >
      • Matter with Silicon Labs MG24
    • IoT Services: Which Solution? >
      • Recommended IoT Solutions
      • Platform-Specific IoT Solutions
      • Other IoT Solutions
      • Not tested IoT Solutions
      • Notification Solutions
    • Get Date and Time from Internet with NTP
    • Fast and Easy WiFi Connection with QR-Code
  • Tools
    • How to Start?
    • Reference >
      • Asking for Help
      • Boards Pins Maps
      • Ruler
      • Boards and Plugs
      • I²C Logic Level Converter
      • Standards for Connectors
    • Training >
      • Texas Instruments Workshops
      • Embedded Systems: Shape The World — MOOC edX UTAustinX UT.6.02x
      • Embedded Systems - Shape The World: Microcontroller Input/Output — MOOC edX UTAustinX UT.6.10x
      • Embedded Systems - Shape The World: Multi-Threaded Interfacing — MOOC edX UTAustinX UT.6.20x
      • Real-Time Bluetooth Networks: Shape the World — MOOC edX UTAustinX UT.RTBN.12.01x
      • Systems Thinking with Texas Instruments Robotics System Learning Kit
    • Books >
      • Getting Started with the MSP430 LaunchPad
      • Getting Started with Arduino
      • Arduino Cookbook
    • IDE >
      • The Battle of IDEs
      • More Options
      • Assessing the Next Generation of IDEs
      • Tools for Documentation
    • Equipment >
      • Saleae Logic Analyser
      • Rigol DS1102E Oscilloscope
      • XDS110 Debug Probe with EnergyTrace​
      • Segger J-Link Programmer-Debugger
      • Nordic Power Profiler Kit II
  • Projects
    • Libraries >
      • Master I²C Software Library
      • Date and Time Library
      • highView Library Suite
      • Others Libraries
    • smartDevices >
      • I²C smartColours Smart Sensor
      • I²C smartRFID Smart Sensor
      • I²C smartLED Display
      • I²C smartControls Smart Device
      • I²C smartWiFi Smart Device
      • I²C smartBLE Smart Device
      • I²C smartNode Smart Device
    • IoT Projects >
      • Remote E-Paper Weather and Message Board
      • Typie-Walkie with LoRa and E-Paper Screen
      • Typie-Walkie with E-Paper Screen
      • Remote e-Paper Pictures Panel
      • Remote e-Paper Messages Panel
      • Industrial IoT Project
      • Remote Contactless Temperature Monitor
      • Using Node-RED for IIoT
      • Low Power Home Network Weather Monitoring
      • Updated Low Power Home Network Weather Monitoring
      • Weather and Security Station with Blynk
      • SensorTag to Blynk Using Node-RED
      • Pervasive Reporting
    • AI Projects >
      • Colour Recognition with Neural Network
    • Other Projects >
      • Air Quality Monitoring
      • Driving a Large E-Paper Display with a Compact Xiao RP2040
      • Low-Power E-Paper Weather Station
      • Portable Particulate​ Matter Monitor
      • FRAM-based E-Paper Screen Controller
      • General Purpose 3.5" Screen
      • Colour Recognition with Neural Network
      • A Low Power Weather Station
      • Digital Volt-Amp-Watt Meter
      • Mobile Measurement with LCD Display
      • Screen with SRAM for GUI
      • Volt-Amp-Watt-Meter for Grove
      • Multi-Touch Project with CapTIvate

BBC micro:bit​

Although not a new board, the BBC micro:bit caught my attention when an interface to control the models built with fischertechnik was released at the Nuremberg Toy Fair 2019.

I ordered the micro:bit go bundle, which includes the board plus a USB cable, a battery holder and 2xAAA batteries.

Hardware

The board is built around a NRF51822 Cortex-M0+ with BLE radio as main MCU, with an additional MKL26Z128 MCU for debugging.

One side contains all the components, including the 3-axis LSM303AGR magnetometer and accelerometer (previously provided by two distinct sensors, MAG3110 and MMA8653).

As the components are exposed, a protective case is recommended against electrostatic discharge.
Picture
The other side includes 25 LEDs and 2 users buttons, and a 25-pin connector, with 5 holes dedicated for 4 mm 'banana' plugs, 4 mm spring connectors or crocodile clip.

When connected, the board mounts as a drive, called either MICROBIT or MAINTENANCE. As the board was only appearing as MAINTENANCE,  I had to reflash the firmware.
Picture

Tools

The BBC micro:bit offers a wide range of tools and languages.

With an Android or iOS Tablet

The first category of tools runs on an Android or iOS  tablet and leverages the Bluetooth connectivity, like the official BBC micro:bit app for Android or iOS.

Development is performed with the MakeCode Editor by Microsoft, with two options: Blocks and JavaScript.

The executable is uploaded through over-the-air through Bluetooth., albeit rather slowly.

Online Graphical Tools

Online tools include two solutions:
  • The MakeCode Editor by Microsoft, with Blocks and JavaScript, just like the options available for the Android and iOS tablets, and
  • A Python editor.

The executable is first downloaded from the website, and then either uploaded through USB or just copied into the MICROBIT volume that appears when the board is connected.
However, when copying the .hex file into the MICROBIT volume, the board is reset and a warning message is displayed on macOS.
Picture
The MakeCode Editor translates Blocks into JavaScript and back. Programs can be downloaded as .hex files and uploaded to another computer.

The MakeCode Editor offers two models for Blocks: procedure-based and event-driven. 

Offline Graphical Tools

Very similar to Blocks from the MakeCode Editor, microBlocks provides a graphical interface with blocks. 

To run, microBlocks needs to upload a virtual machine on the board. It handles it automatically the first it tries to connect.

Then microBlocks no longer requires an upload button: the application runs live on the BBC micro:bit board!

​
Picture

Offline Text-Based IDEs

For text-based development, mbed and Arduino options are available. 

To use micro:bit with the Arduino SDK and IDE, Sandeep Mistry has developed a nice Arduino-nRF5 board package, and a dedicated BLEPeripheral library for BLE.

​The Bluetooth stack, called SoftDevice and provided by Nordic, needs to be uploaded to the board first, and selected on the Tools menu when working with the board, here S110. Adafruit provides an extensive training micro:bit with Arduino. Just follow the procedure!
​
Then external libraries are required. Adafruit lists various useful libraries: the Adafruit Microbit library and the Adafruit GFX library, and the dedicated BLEPeripheral library from the developer of the Arduino-nRF5 board package.

The Arduino IDE uploads the executable
 through USB to the board.

Finally, embedXcode, embedded computing on Xcode, supports the BBC micro:bit board with external debugging.
Picture

Debugging

The BBC micro:bit boards even features debugging, with the dedicated MKL26Z128 MCU and the DAPlink protocol. Optionally, it can be flashed to support the Segger J-Link protocol.

​The standard OpenOCD acts as a server for a GDB client.

​The test shown on the right was conducted with embedXcode using the default DAPlink protocol.
Picture
Picture

Going Further

The BBC micro:bit enjoys a very large offer of additional boards.

Among other similar boards, the interface board by Didacta Advance allows to control fischertechnik models. The fischertechnik Starter Set for micro:bit was presented at the Hannover Toy Fair 2019, part of its Teaching range aimed at academia.

I posted the review
at Starter Set for micro:bit.
Picture

Conclusion

I really like The BBC micro:bit board with its wide range of sensors.  

​The graphical development tools brings a smooth introduction to programming, with an extensive offer of tutorials.

At less than €20, the board is aggressively priced and brings great value, even for more serious projects thanks to its integrated hardware debugger. 

The review of the interface for the fischertechnik models is available at Starter Set for micro:bit.
Picture

Pros

  • Compact board with sensors
  • Excellent tutorials
  • Wide offer of tools and IDEs

Cons

  • Protective case against electrostatic discharge recommended but not supplied

Wrap-Up

  • Excellent tutorials
  • Wide offer of tools and IDEs
  • Great value

Links

  • micro:bit website
  • Training micro:bit with Arduino by Adafruit
Picture

Posted: 05 February 2019
Edited: 11 February 2019
Powered by Create your own unique website with customizable templates.