|Product Performed to Expectations:||1|
|Specifications were sufficient to design with:||1|
|Demo Software was of good quality:||5|
|Product was easy to use:||5|
|Support materials were available:||5|
|The price to performance ratio was good:||8|
|TotalScore:||25 / 60|
The front of the unit has an LED array and two buttons for interfacing the device. The funny looking bottom is a great design for interfacing the micro:bit using alligator pins, or for inserting into interface ports like the kiktronik robotics board.
The back of the unit displays the two power inputs (lipo connector and usb connector), and displays the multiple available sensors, including accelerometer and compass.
Also included in the kit is the Kiktronik robotics board. This shield interfaces the microbit and allows several stepper motors or servo motors to be controlled. Power supply to this device is recommended via a separate power supply, although some power will flow into the shield via the interface with the microbit.
Initial setup of the micro:bit occurs quite easily. When you connect device via USB, you can immediately access a python editor where you can write MicroPython code. The IDE is decently made, including options to save, load, and download code. For a quick interface to start coding Python and lighting up the lights on the device, it’s definitely a slick and quick IDE.
The device itself comes with a decent library that wraps commands like text and shape rendering to the LED array. Within minutes I found some example commands and can write messages across the screen. This is exactly the type of smooth onboarding you want to present to a young mind to get them excited for the capabilities of the product.
The editor has many pre-built tutorials to try out, and again presents an interface that is very friendly to beginners. The visual interface makes creation of custom LED images much easier. In the program below I was able to quickly draw 4 images and make a logic to show some images on start-up, and then alternate 2 images in a loop. This interface is pretty well suited to this task, whereas I think this would have taken 4 times longer to write from scratch in the Python editor.
The Editor will even simulate your script in left side of the screen! Simply a joy to use.
Going further with MakeCode editor, you can read inputs from the push buttons, and use this to trigger actions. In a basic demo, I display a number on screen, and increment or decrement this number with the buttons. One can easily see how they might begin to design a game. One only needs the patience and creativity to take the next steps. Designing a mini Tetris or flappy-bird game could be within reach for an eager young mind!
In demo below I could easily and quickly made a custom program to accept button press inputs, increment counter, reset the counter at a value, and trigger a reset for a specific button combo. This is a very versatile and useful coding interface.
Some other program experiences.
You can make a program that generates tones!
A variety of tutorials exist on MakeCode, and they are great for getting orientated in the MakeCode environment and for understanding the capabilities of the micro:bit. The tutorials really up the educational value of this product, and could keep a kid learning all summer or all year.
This motor board shield is a must-have for taking the micro:bit to the next level. This board is really packed with pins and interfaces to the motors.
It’s mounted into micro:bit in the following manner
Diagram overview is below.
I started trying to use the motor board and ran into a handful of obstacles. To begin interfacing motors, insert the micro:bit into the motor shield and connect up a motor. You’ll need to add extension to access commands for the motor board. See image below:
While I could drive my servo motors with my Arduino with DC power supplied simply from laptop USB cable, I could not successfully power the motors when they were connected via the kitronik shield. Further, I had significant challenge in locating the proper MakeCode plugins which provided access to the correct motor driver blocks. I repeatedly ended up selecting some Kitronik motor driver, and I strongly suspect I wouldn’t be the only person making this error.
I first did not even realize that I needed these plugins to control the servor motors. I first off was trying to control servos with the standard servo controls. No success. A this point I didn’t know if it was the code a power problem to motors via kitronik board, but I did know the motors worked via Arduino without external power.
Going further, I finally found some mention of these extensions you should add to interface these shields. No mention of this on kitronik’s pages when I was searching around. I first found this motor driver extension. This is the wrong plugin: https://makecode.microbit.org/pkg/kitronikltd/pxt-kitronik-motor-driver. Note that there are no servo pins at the bottom. On all other accounts the shields look identical. Very confusing. The resulting commands only allow interface to two motors, and no servor controls.
This is the actual plugin you want: https://makecode.microbit.org/pkg/kitronikltd/pxt-kitronik-robotics-board. After so much ease in setting up the micro:bit, I was confused and fairly irritated at how long it took me to navigate. At least we can finally see servo motor controls. Alas I setup the program and don’t see the motors running, so I’m back to adding extra commands everywhere in my script in a desperate attempt to find the source of my errors. After selecting the correct extension and building a test program, I still have no luck.
Toward the very end of my desperation, I find the GitHub link for kitronik’s MicroPython code: https://github.com/KitronikLtd/micropython-microbit-kitronik-robotics. I download this library and try to give it a spin. I don’t get much further down this road, by hitting issues somewhere between executing python code locally on PC and trying to drop the python script on the device to make it run. I’m having some I2C errors, and at this point I’ve deviated pretty far from the initial goal of making a motor spin.
In summary, attempting to setup up the kitronik motor shield led me down a very confusing, undocumented paths. I tried in vain to spin a servo motor using the following methods.
Along the way I found a real dearth of other people writing guides for this device, and no tutorials from kitronik showing the steps to get a motor spinning. The main education I got during the latter part of this roadtest was an exercise in frustration. For a product that is sold to interface with the educational wonder that is micro:bit, I think a lot more documentation is required. Some suggestions:
I did a bit more plodding around and noticed the voltage across the servo pins is quite low (0.9V) when the kitronik shield is powered by the micro:bit, which is itself powered by a 5V USB connection. It seems quite likely that voltage and current is limited between micro:bit and a peripheral kitronik shield, but I saw no mention of this in kitronik documentation, and the micro:bit pins themselves are able to power a servo motor (hence the following picture when using micro:bit native servo controls)
As I write this review I did another search for more info, I find several guides for controlling servo directly with micro:bit:
However, I still find no information for using and troubleshooting this kitronik shield.
In summary I think the micro:bit is a true piece of art and I think it’s a great product for placing into the hands of a curious child. The kitronik shield however seems to need a better engineer than me to get working, mostly due to the complete lack of documentation. I think this device needs a lot more polishing before its ready for use with children. If you know someone who wants to learn the basics of computer programming with a fun toy, I whole heartedly recommend the micro:bit. If that young person might want to control a servo or three, I still recommend the micro:bit, since it has 3 pins to control the motors. If you want to control 4 or more servos, I would honestly recommend buying another micro:bit because the kitronik shield really does not feel up to snuff based on its lack of documentation and examples online.
To provide some more clarity and rational for my evaluation scores:
I think the micro:bit is an excellent product, good documentation, and a great value. I found the kitronik shield to be needing some serious improvements in tutorials, documentation, and examples. As I found an utter lack in hookup guide, example wiring, etc, I feel that the product was not even given a chance to perform to spec.
While I feel somewhat unfair in giving a low mark for lack of support material because I didn't contact kitronik via email/phone, I did write them a comment on their YouTube video for this product, and have not heard a response in 2 months.