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.
item | details |
---|---|
Model | Nordic nRF51822-QFAA-R rev 3 |
Core variant | ARM Cortex-M0 32 bit processor |
Flash ROM | 256KB |
RAM | 16KB |
Speed | 16MHz |
Debug | SWD, 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.
item | details |
---|---|
Stack | Bluetooth 4.1 with Bluetooth low energy |
Band | 2.4GHz ISM (Industrial, Scientific and Medical) 2.4GHz..2.41GHz |
Channels | 50 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 |
Role | GAP Peripheral |
Congestion avoidance | Adaptive Frequency Hopping |
Profiles | 1 BBC micro:bit profile |
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.
item | details |
---|---|
Protocol | Nordic Gazell |
Freq band | 2.4GHz |
Channel rate | 1Mbps or 2Mbps |
Encryption | None |
Channels | 101 (0..100) |
Group codes | 255 |
Tx power | Eight user configurable settings from 0(-30dbm) to 7 (+4dbm) |
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.
item | details |
---|---|
Type | 2 tactile user buttons, 1 tactile system button |
Debounce | (A & B) software debounced, 54ms period |
Pullup | (A & B) external 4K7, (System) 10K |
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.
item | details |
Type | minature surface mount red LED |
Physical structure | 5x5 matrix |
Electrical structure | 3x9 |
Intensity control | 10 steps |
Intensity range | TBC |
Sensing | ambient light estimation via software algorithm |
Sensing Range | TBC, 10 levels from off to full on |
Colour sensitivity | red centric, red is 700nm |
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.
item | details |
---|---|
Model | LSM303GR |
Features | 3 magnetic field and 3 acceleration axis , 2/4/8/16g ranges |
Resolution | 8/10/12 bits |
On board gestures | ‘freefall’ |
Other gestures | Other gestures are implemented by software algorithms in the runtime. |
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.
item | details |
---|---|
Type | on-core nRF51 |
Sensing range | -25C .. 75C |
Resolution | 0.25C steps |
Accuracy | +/-4C (uncalibrated) |
More Info | here |
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.
item | details |
---|---|
Rings | 3 large IO rings and two large power rings, 4mm plug and crocodile clip compatible |
GPIO features | 19 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 resolution | 10 bit (0..1023) |
Edge Connector | Edge connector data sheet |
Pitch | 1.27mm, 80 way double sided. |
Pads | 5 pads, with 4mm holes |
More Info | here |
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.
item | details |
---|---|
Operating range | 1.8V .. 3.6V |
USB current | 120mA max |
Onboard Peripherals budget | 30mA |
Battery connector | JST X2B-PH-SM4-TB |
Battery current | TBC |
Max current provided via edge connector | 90mA |
More Info | here |
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.
item | details |
---|---|
Model | Freescale MKL26Z128VFM4 |
Core variant: | ARM Cortex-M0+ |
Flash ROM | 128KB |
RAM | 16KB |
Speed | 16MHz |
Debug capabilities | SWD |
More Info | here |
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.
item | details |
---|---|
Connector | USB micro, MOLEX_47346-0001 |
USB version | 1.1 Full Speed device |
Speed | 12Mbit/sec |
USB classes supported | Mass Storage Class (MSC) |
Communications Device Class (CDC) | |
More Info | here |
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.
item | details |
---|---|
Protocol | CMSIS-DAP |
Options | JLink/OB (via different firmware) |
More Info | here |
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.
item | details |
---|---|
Dimensions | 5cm(w) 4cm(h) |
Weight | 5g |
(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.
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:
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:
Those pins are available as attributes on the microbit
module:microbit.pin0
- microbit.pin20
.
Pin | Type |
Function |
0 | Touch | Pad 0 |
1 | Touch | Pad 1 |
2 | Touch | Pad 2 |
3 | Analog | Column 1 |
4 | Analog | Column 2 |
5 | Digital | Button A |
6 | Digital | Row 2 |
7 | Digital | Row 1 |
8 | Digital | |
9 | Digital | Row 3 |
10 | Analog | Column 3 |
11 | Digital | Button B |
12 | Digital | |
13 | Digital | SPI MOSI |
14 | Digital | SPI MISO |
15 | Digital | SPI SCK |
16 | Digital | |
19 | Digital | I2C SCL |
20 | Digital | I2C SDA |
The above table summarizes the pins available, their types (see below) and what they are internally connected to.
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.
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.
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
read_digital
()https://microbit-micropython.readthedocs.io/en/latest/pin.html#microbit.MicroBitDigitalPin.read_digitalReturn 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_digitalSet 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_analogOutput 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_periodSet 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_microsecondsSet 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.
Top Comments
Nice roadtest review. I look forward to you future updates.
Gene
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…
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…