micro:bit wear:it Development Kit - Review

Table of contents

RoadTest: micro:bit wear:it Development Kit

Author: mnitin59

Creation date:

Evaluation Type: Development Boards & Tools

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?:

What were the biggest problems encountered?: The battery headers were misaligned and unless the enclosure is fitted the board doesn't work without battery headers.

Detailed Review:

Unboxing

The package come with the huge enclosed box with wrapped papers which was very supporting and also helped to fit the box safe and secured but the product was already broke seal but received all the tools mentioned in the roadtest.

Fig 1.1 Parcel Packaging Box

Fig 1.2 Parcel wrapped in paper shield

 

Fig 1.3 The cover of the product was misaligned (but all components were inside the enclosure)

 

Fig Front View of Micro:bit Wear:it

 

Fig 1.8 Micro:bit Development board packed like watch type casing

 

Fig 1.9 Overall accessories of Micro:bit development board ( micro:bit, snap Wristbands (2), hard case, belt clip, keyring adaptor, lanyard, USB Cable and AAA batteries (2))

 

 

Video: Booting response of Micro:bit development board

 

Introduction

 

The BBC micro:bit is a small computing device for children. One of the languages it understands is the popular Python programming language. The version of Python that runs on the BBC micro:bit is called MicroPython. The micro:bit hardware is based on the ARM-mbed platform. It has an application processor with lots of on-chip perhipherals. Some off-chip peripherals are connected to this chip. There is an interface processor connected to the application processor, and it is the interface processors job to manage communications over the USB and to support the drag-and-drop code-flashing process. The interface processor does not connect to any of the micro:bit peripherals.

Two key pieces of information to help understand the internals of the micro:bit are:

 

Fig 2.1 micro:bit Hardware Overview

Hardware Description

 

nRF51 Application Processor

The nRF51 application processor is where user programs run. A single, complete application including user code, runtime code and bluetooth stack is loaded and run directly from on chip flash memory. All user accessible GPIO pins are provided by this processor. There is an onboard 2.4GHz radio engine used to provide Bluetooth capabilities via an off-chip aerial.

 

itemdetails
ModelNordic nRF51822-QFAA-R rev 3
Core variantARM Cortex-M0 32 bit processor
Flash ROM256KB
RAM16KB
Speed16MHz
DebugSWD, jlink/OB

 

Bluetooth Wireless Communication

The on board 2.4GHz transciever supports Bluetooth communications via the Nordic S110 SoftDevice, which provides a fully qualified Bluetooth low energy stack. This allows the micro:bit to communicate with a wide range of Bluetooth devices, including smartphones and tablets.

 

itemdetails
StackBluetooth 4.1 with Bluetooth low energy
Band2.4GHz ISM (Industrial, Scientific and Medical) 2.4GHz..2.41GHz
Channels50 2MHz channels, only 40 used (0 to 39), 3 advertising channels (37,38,39)
Sensitivity-93dBm in Bluetooth low energy mode
Tx Power-20dBM to 4dBm in 4 dB steps
RoleGAP Peripheral
Congestion avoidanceAdaptive Frequency Hopping
Profiles1 BBC micro:bit profile

 

Low Level Radio Communications

The on board 2.4GHz transciever supports a number of other radio communications standards, including the proprietary Nordic Gazell protocol. This protocol provides a very simple small-packet broadcast radio interface between other devices that support this proprietary protocol, such as other micro:bit devices. The ‘radio’ interface that appears in a number of the languages on the micro:bit is built on top of this Gazell protocol. Additionally, the micro:bit runtime software adds a ‘group code’ to each data payload, allowing for simple user managed device addressing and filtering to take place.

 

itemdetails
ProtocolNordic Gazell
Freq band2.4GHz
Channel rate1Mbps or 2Mbps
EncryptionNone
Channels101 (0..100)
Group codes255
Tx powerEight user configurable settings from 0(-30dbm) to 7 (+4dbm)

 

Buttons

The two buttons on the front of the micro:bit, and the 1 button on the back, are tact momentary push to make buttons. The back button is connected to the KL26 interface processor and to the nRF51 processor for system reset purposes. This means that the application will reset regardless of if it is powered from USB or from battery.

Front buttons A and B can be programmed in the user application for any purpose. A and B are debounced by software, which also includes short press, long press, and ‘both A+B’ press detection. Buttons operate in a typical inverted electrical mode, where a pullup resistor ensures a logical ‘1’ when the button is released, and a logical ‘0’ when the button is pressed. Both A and B buttons are connected to GPIO pins that are also accessible on the micro:bit edge connector.

itemdetails
Type2 tactile user buttons, 1 tactile system button
Debounce(A & B) software debounced, 54ms period
Pullup(A & B) external 4K7, (System) 10K

Display

The display is a 5x5 array of LEDs. It is connected to the micro:bit as a 3x9 matrix. Runtime software repeatedly refreshes this matrix at a high speed, such that it is within the user persistence of vision range, and no flicker is detected. This LED matrix is also used to sense ambient light, by repeatedly switching some of the LED drive pins into inputs and sampling the voltage decay time, which is roughly proportional to ambient light levels.

itemdetails
Typeminature surface mount red LED
Physical structure5x5 matrix
Electrical structure3x9
Intensity control10 steps
Intensity rangeTBC
Sensingambient light estimation via software algorithm
Sensing RangeTBC, 10 levels from off to full on
Colour sensitivityred centric, red is 700nm

Motion sensor

The 1.5 micro:bit variant has a combined accelerometer and magnetometer chip that provides 3-axis sensing and magnetic field strength sensing. It also includes some on board gesture detection (such as fall detection) in hardware, and additional gesture sensing (e.g. logo-up, logo-down, shake) via software algorithms. A software algorithm in the standard runtime uses the on board accelerometer to turn readings into a board orientation independent compass reading. The compass must be calibrated before use, and the calibration process is automatically initiated by the runtime software. This device is connected to the application processor via the I2C bus.

The v1.5 micro:bit has a footprint for two different motion sensors: one made by ST (the LSM303AGR) and one by NXP (FXOS8700CQ). The micro:bit DAL supports both of these sensors, detecting them at runtime. To date, all v1.5 boards have been manufactured with the LSM303AGR. If we were to move to the NXP part, a round of testing would be required and we would notify the DAL and Devices mailing list.

 

itemdetails
Model LSM303GR
Features3 magnetic field and 3 acceleration axis , 2/4/8/16g ranges
Resolution8/10/12 bits
On board gestures‘freefall’
Other gesturesOther gestures are implemented by software algorithms in the runtime.

Temperature Sensing

The nRF51 application processor has an on board core temperature sensor. This is exposed via the standard runtime software, and provides an estimate of ambient temperature.

 

itemdetails
Typeon-core nRF51
Sensing range-25C .. 75C
Resolution0.25C steps
Accuracy+/-4C (uncalibrated)
More Infohere

General Purpose Input/Output Pins

The edge connector brings out many of the GPIO circuits of the application processor. Some of these circuits are shared with other functions of the micro:bit, but many of these extra circuits can be re-allocated to general purpose use if some software features are turned off. Note: the nRF51 data sheet states that GPIO pins may be in std-drive (0.5mA) and high-drive (5mA) mode, with a maximum of 3 pins in high-drive mode at any one time.

 

itemdetails
Rings3 large IO rings and two large power rings, 4mm plug and crocodile clip compatible
GPIO features19 assignable GPIO pins
2 are assigned to the on board I2C interface
6 are used for display or light sensing feature
2 are used for on board button detection
1 is reserved for an accessibility interface
19 may be assigned as digital input or digital output
19 may be assigned for up to 3 simultaneous PWM channels
19 may be assigned for 1 serial transmit and 1 serial receive channel
6 may be assigned as analog input pins
3 may be assigned to an optional SPI communications interface
3 may be assigned for up to 3 simultaneous touch sensing inputs
ADC resolution10 bit (0..1023)
Edge ConnectorEdge connector data sheet
Pitch1.27mm, 80 way double sided.
Pads5 pads, with 4mm holes
More Infohere

Power Supply

Power to the micro:bit may be provided via the USB connection, via the interface chip (which has an on-board regulator), or via a battery plugged into the top connector. It is also possible (with care) to power the micro:bit from the 3V pad at the bottom. The 3V pad at the bottom can be used to supply a small amount of power external circuits.

itemdetails
Operating range1.8V .. 3.6V
USB current120mA max
Onboard Peripherals budget30mA
Battery connectorJST X2B-PH-SM4-TB
Battery currentTBC
Max current provided via edge connector90mA
More Infohere

Interface

The interface chip handles the USB connection, and is used for flashing new code to the micro:bit, sending and receiving serial data back and forth to your main computer.

itemdetails
ModelFreescale MKL26Z128VFM4
Core variant:ARM Cortex-M0+
Flash ROM128KB
RAM16KB
Speed16MHz
Debug capabilitiesSWD
More Infohere

USB Communications

The micro:bit has an on board USB communications stack, that is built into the firmware of the interface chip. This stack provides the ability to drag and drop files onto the MICROBIT drive in order to load code into the application processor. It also allows serial data to be streamed to and from the micro:bit application processor over USB to an external host computer, and supports the CMSIS-DAP protocol for host debugging of application programs.

 

itemdetails
ConnectorUSB micro, MOLEX_47346-0001
USB version1.1 Full Speed device
Speed12Mbit/sec
USB classes supportedMass Storage Class (MSC)
Communications Device Class (CDC)
More Infohere

Debugging

The interface processor can be used with special host tools to debug code that is running on the application processor. It connects to the application processor via 4 signal wires. The KL26 interface processor code can also be debuged via it’s integral SWD software debug interface, for example to load initial bootloader code into this processor at manufacturing time, or to recover a lost bootloader.

 

itemdetails
ProtocolCMSIS-DAP
OptionsJLink/OB (via different firmware)
More Infohere

Mechanical

We have some nice 2D and 3D CAD drawings and models of the micro:bit including all the important dimensions. These models can be used as a basis for generating really nice marketing and project images of the micro:bit, but also as a basis for accurate manufacture of attachments e.g. via 3D printing.

 

itemdetails
Dimensions5cm(w) 4cm(h)
Weight5g

(Source : https://tech.microbit.org/hardware/#overview )

 

Descripton : nRF51822

    The nRF51822 is a powerful, highly flexible multiprotocol SoC ideally suited for Bluetooth® Low Energy and 2.4GHz ultra low-power wireless applications. The nRF51822 is built around a 32-bit ARM® Cortex™ M0 CPU with 256kB/128kB flash + 32kB/16kB RAM for improved application performance. The embedded 2.4GHz transceiver supports both Bluetooth LE and the Nordic Gazell 2.4 GHz protocol stack which is on air compatible with the nRF24L series products from Nordic Semiconductor.

nRF51822 incorporates a rich selection of analog and digital peripherals that can interact without CPU intervention through the Programmable Peripheral Interconnect (PPI) system. A flexible 31-pin GPIO mapping scheme allows I/O like serial interfaces, PWM and quadrature demodulator to be mapped to any device pin as dictated by PCB requirements. This enables complete design flexibility associated with pin-out location and function.

nRF51822 supports Bluetooth Low Energy protocol stacks as well as 2.4GHz protocol stacks, including Gazell, both available as downloads. nRF51822 requires a single power supply and gives the user the option of using on chip linear regulators giving a supply range of 1.8-3.6V, a direct 1.8V mode and a on chip DC-DC buck converter giving a supply range of 2.1-3.6V. The use of the DC-DC converter can be dynamically controlled during run time and enables nRF51822 to operate at radio peak currents below 10 mA @ 3V supply (TX @ 0 dBm & RX).

nRF51 SDK provides extensive software support for both Bluetooth Low Energy and 2.4GHz proprietary applications.

nRF51822 is available in 6x6mm 48-pin QFN packages and 3 ultra-compact wafer-level chip-scale packages (WL-CSP).

New: nRF51822 is now available as a thin WL-CSP variant measuring 3.83mm x 3.83mm with a height profile of just 0.35mm, and is drop in compatible with regular WL-CSP devices.

nRF51822 is available in either 256kB or 128kB Flash + 32kB or 16kB RAM variants.

Nordic Semiconductor protocol stacks are known as SoftDevices. SoftDevices are pre-compiled, pre-linked binary files. SoftDevices can be programmed in nRF51 series SoCs.

 

Arm Cortex-M0 processor

The exceptionally small silicon area, low power and minimal code footprint of the processor enables developers to achieve 32-bit performance at an 8-bit price point, bypassing the step to 16-bit devices.

The ultra-low gate count of the Cortex-M0 processor also enables its deployment in analog and mixed signal devices. Arm DesignStart provides free access to design and license the Cortex-M0, and free forum support to accelerate custom SoC development. It is the fastest, simplest, no-risk route to custom silicon success.

 

About the processor

The Cortex-M0 processor is a very low gate count, highly energy efficient processor that is intended for microcontroller and deeply embedded applications that require an area optimized processor.

 

Features

The processor features and benefits are:

  • Tight integration of system peripherals reduces area and development costs
  • Thumb instruction set combines high code density with 32-bit performance
  • power control optimization of system components
  • integrated sleep modes for low power consumption
  • fast code execution permits slower processor clock or increases sleep mode time
  • hardware multiplier
  • deterministic, high-performance interrupt handling for time-critical applications
  • Serial Wire Debug reduces the number of pins required for debugging.

The Cortex-M0 processor is a configurable, multistage, 32-bit RISC processor. It has an AMBA AHB-Lite interface and includes an NVIC component. It also has optional hardware debug functionality. The processor can execute Thumb code and is compatible with other Cortex-M profile processors.

 

Fig 2.1 Functional block diagram

 

Input/Output Pins

The pins are your board’s way to communicate with external devices connected to it. There are 19 pins for your disposal, numbered 0-16 and 19-20. Pins 17 and 18 are not available.

For example, the script below will change the display on the micro:bit depending upon the digital reading on pin 0:

 

 

Pin Functionshttps://microbit-micropython.readthedocs.io/en/latest/pin.html#pin-functions

_images/pinout.png

Those pins are available as attributes on the microbit module:microbit.pin0 - microbit.pin20.

  

 

Pin

 

Type

 

Function

0TouchPad 0
1TouchPad 1
2TouchPad 2
3AnalogColumn 1
4AnalogColumn 2
5DigitalButton A
6DigitalRow 2
7DigitalRow 1
8Digital
9DigitalRow 3
10AnalogColumn 3
11DigitalButton B
12Digital
13DigitalSPI MOSI
14DigitalSPI MISO
15DigitalSPI SCK
16Digital
19DigitalI2C SCL
20DigitalI2C SDA

 

The above table summarizes the pins available, their types (see below) and what they are internally connected to.

Pulse-Width Modulationhttps://microbit-micropython.readthedocs.io/en/latest/pin.html#pulse-width-modulation

The pins of your board cannot output analog signal the way an audio amplifier can do it – by modulating the voltage on the pin. Those pins can only either enable the full 3.3V output, or pull it down to 0V. However, it is still possible to control the brightness of LEDs or speed of an electric motor, by switching that voltage on and off very fast, and controlling how long it is on and how long it is off. This technique is called Pulse-Width Modulation (PWM), and that’s what the write_analog method below does.

_images/pwm.png

Above you can see the diagrams of three different PWM signals. All of them have the same period (and thus frequency), but they have different duty cycles.

The first one would be generated by write_analog(511), as it has exactly 50% duty – the power is on half of the time, and off half of the time. The result of that is that the total energy of this signal is the same, as if it was 1.65V instead of 3.3V.

The second signal has 25% duty cycle, and could be generated with write_analog(255). It has similar effect as if 0.825V was being output on that pin.

The third signal has 75% duty cycle, and can be generated with write_analog(767). It has three times as much energy, as the second signal, and is equivalent to outputting 2.475V on th pin.

Note that this works well with devices such as motors, which have huge inertia by themselves, or LEDs, which blink too fast for the human eye to see the difference, but will not work so good with generating sound waves. This board can only generate square wave sounds on itself, which sound pretty much like the very old computer games – mostly because those games also only could do that.

Classeshttps://microbit-micropython.readthedocs.io/en/latest/pin.html#classes

There are three kinds of pins, differing in what is available for them. They are represented by the classes listed below. Note that they form a hierarchy, so that each class has all the functionality of the previous class, and adds its own to that

 

  class microbit.MicroBitDigitalPin

https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin
read_digital()https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.read_digital

Return 1 if the pin is high, and 0 if it’s low.

write_digital(value)https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.write_digital

Set the pin to high if value is 1, or to low, if it is 0.

write_analog(value)https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.write_analog

Output a PWM signal on the pin, with the duty cycle proportional to the provided value. The value may be either an integer or a floating point number between 0 (0% duty cycle) and 1023 (100% duty).

set_analog_period(period)https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.set_analog_period

Set the period of the PWM signal being output to period in milliseconds. The minimum valid value is 1ms.

set_analog_period_microseconds(period)https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.set_analog_period_microseconds

Set the period of the PWM signal being output to period in microseconds. The minimum valid value is 256µs.

 

 

Note

Also note, the micro:bit has external weak (10M) pull-ups fitted on pins 0, 1 and 2 only, in order for the touch sensing to work. There are also external (10k) pull-ups fitted on pins 5 and 11, in order for buttons A and B to work. See the edge connector data sheet here: http://tech.microbit.org/hardware/edgeconnector_ds/

 

 

Testing and Conclusion:

 

In the testing i have used software and tools for programming the microbit board. The two software which are great supporting is micropython and Javascript Blocks Editor.
you can check all the sample and code on: https://makecode.microbit.org/

you can program on the online editor on: https://python.microbit.org/v/1.1

 

Applications

 

The micro:bit apps let you send code to your micro:bit wirelessly using Bluetooth. No leads needed! Learn more about using Applications.

Program the micro:bit using Javascript Blocks on your Windows 10 device. In addition to the familiar features of the web editor, the app lets you program your micro:bit over USB (without needing to drag-and-drop the file onto the micro:bit drive) and directly read serial data from your micro:bit for data logging and other fun experiments!

 

I have tested all the tutorial programs and created few applications https://makecode.microbit.org/

 

The microbit is awesome board for all the people who knows and doesn't know about programming language and want to explore more about controlling devices and want to show something creative using tools. This hardware are necessary for young students to learn about electronics concepts and its working principle in fun and skill developing environment.

 

 

 

 

Anonymous
  • Nice roadtest review.  I look forward to you future updates.

    Gene

  • I'm testing on the wearable project and soon to post with result (Still this documentation is not complete). The micro:bit is easy to use and this kit comes with the wearable packages like you can carry the micro:bit as a smart watch, smart pendent, bag tracking and device key lock, timer and most famous as trending you can carry it as a badge and also you can play games on it too.
    This makes the kit way ahead and have complete wearable resources with its customize features.   

  • This was a very comprehensive description of the BBC micro:bit, but you didn't discuss anything about the "wearable" aspects of this particular kit. Is there anything about this kit that would make it worth the extra cost, compared with just buying a micro:bit?