Project #002 – micro:bit MakeCode Arcade Shield UK Edu Version
We occasionally churn out customized Spin-off from our official boards & designs to meet our client’s branding & requirements.
e.g. MBPP Penang MakeCode Arcade Standalone, Prince Royal College & various other Arduino Boards etc.
But this unique change request, I.M.H.O, deserves its own dedicated write-up.
We had a really good run with our MakeCode Arcade series utilizing Microsoft’s MakeCode Arcade Framework; it successfully introduces Game coding through block programming to many of our younger audiences.
And when we created our second MakeCode Arcade product using micro:bits as its brain, more aspiring younger coders/S.T.E.M. scientists also jumped onto the moving bandwagon! The more, the merrier, as they said.
One fine day, we received a special request from a customer in the UK. She (A British S.T.E.M. teacher with countless years of experience) would want a universal shield that could be used both as a standard MakeCode Arcade shield & at the flip of the switch, be used as a micro:bit accessory packed with a Color LCD and Switches under the micro:bit MakeCode environment.
(we will simply call it micro:bit mode from now on, to avoid confusion)
We thought about it for a while, & were tempted to opt-in to a “smart shield” design option, which would significantly increase the final device price tag.
Not quite desirable when we want to keep the price tag low for the students. If you ask me.
So instead, we added a low-cost 8-bit microcontroller to control a bunch of tri-state buffers to effectively redirect the flow of signals (bus) to the micro:bit.
At the same time, when the shield is in the micro:bit mode, the microcontroller will appear as an i2C device end-point which retrieves the button press information & control the I/O of the LCD.
Why go through all the complexity? You might ask.
We wish to avoid jumping through huddles & do the extra work too, but unfortunately, the MakeCode Arcade environment (cloud compiler) is maintained by Microsoft in its server, and we couldn’t change the pin-out required by the generated game code.
Too many pins, including crucial pins have gone missing while in Arcade mode, the i2C pins too.
In other words, even the micro:bit’s onboard accelerometer & compass will also not function under the Arcade shield. Because the actual physical pins are used for the shift registers & other purposes under the arcade environment instead.
Overall it works out great… the i2C address of the microcontroller is set as 68(int) ~> 68 is a good number for Asians, I think. But when I convert it to hex… *face-palm* whatever…. “They will never know”
Here is a video showing one of our radar project uses the new shield:
** For those who are interested in the radar project with micro:bit, we are still documenting the step-by-step guide for all to follow, so stay tuned for our next post (most likely in the coming week). **