Skip navigation
> RoadTest Reviews

micro:bit wear:it Development Kit - Review

Scoring

Product Performed to Expectations: 10
Specifications were sufficient to design with: 9
Demo Software was of good quality: 10
Product was easy to use: 9
Support materials were available: 9
The price to performance ratio was good: 10
TotalScore: 57 / 60
  • RoadTest: micro:bit wear:it Development Kit
  • Buy Now
  • Evaluation Type: Development Boards & Tools
  • Was everything in the box required?: Yes
  • 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.

     

     

     

     


Comments

Also Enrolling

Enrollment Closes: Jan 14 
Enroll
Enrollment Closes: Dec 17 
Enroll
Enrollment Closes: Dec 21 
Enroll