Hacker News new | comments | show | ask | jobs | submit login
In love with the BBC micro:bit (markshroyer.com)
184 points by Niten 169 days ago | hide | past | web | 79 comments | favorite

My organization is working with the BBC Microbit Foundation to make these devices more popular in the US education system. I find the Microbit to be far less intimidating than the Arduino, since the IDE is entirely web based and students can copy a program onto it just as they would copy a file onto an external USB drive.

One feature that kills it in the classroom is the Microbit's built-in 5 x 5 LED matrix, which means right out of the box it's "blink" program is much more interesting than the Arduino's one orange LED. Some kids will just spend the entire first day playing with the LED matrix, like getting their name to scroll across it, or programming the LEDs individually to make cool patterns. The Microbit also comes with an external battery holder for two AAA batteries, and feels a lot better to carry in your pocket than an Arduino or Raspberry Pi.

After seeing the tremendous adoption in the UK and meeting the Microbit founders, I am very confident this board will play a big role in introducing K-12 students to digital electronics.

Read that 5 times before I realised "killed it" was good. Oh dear

I agree...that little 5x5 matrix provides a way to introduce real concepts in a way that is still fun.

Easy ways to demonstrate bitwise ops, double buffering, 2d arrays, ring buffers, pwm, etc.

I'm volunteering with a school in the Puget Sound as part of TEALS and would love to get in touch about augmenting some of our curriculum with these bad boys (especially since the block language is similar to Snap, which is used in Intro CS). Do you have an email I can reach you at?

I work for the micro:bit Foundation, who have taken ownership of the project on from the BBC - great to see some love on HN for this! There's more at http://microbit.org but for the Hacker News audience you're probably interested in http://tech.microbit.org though ;). There's even a reference design to make your own microbit-derived designs.

We'll be hiring tech people again soon, so if you want to come and help us teach kids around the world to be inventors, keep your eye on https://micro-bit-educational-foundation.workable.com/

Finally, as the author hoped, the revision of the hardware now shipping is more resilient to ESD than the previous one :)

Is this the new version?


One minor comment - the article really made me want one, and when I went to the home page, it took me around five or six clicks to get to a place where I can buy one! Finally I found it at the very bottom of the page under "About". And even then when I click on the adafruit one and it takes me to the adafruit homepage. Why not have a giant button on the homepage? Do you folks really not want people to buy your stuff? :-)

What did you change to improve ESD resilience?

I am dev who builds Microsoft MakeCode (https://makecode.com) editor for micro:bit. Try out these fun projects on micro:bit and give us feedback 1. Rock-paper-scissors (https://pxt.microbit.org/projects/rock-paper-scissors) 2. Guitar: (https://pxt.microbit.org/projects/guitar) 3. Milk Monster: (https://pxt.microbit.org/projects/milky-monster)

I helped test the microbit and I wrote a small program for pedagogical purposes. The hardware was very neat and I liked the leds on the back.

Originally there was going to be a coin cell battery but they removed it because children might eat it. Also there is a Bluetooth radio on the microbit but the runtime was 12k and there wasn't enough space to load micropython and Bluetooth at the same time .

A link to the example is here https://github.com/bbcmicrobit/micropython/blob/master/examp... .

In case anyone gets the impression that bluetooth is completely unavailable, you can use Espruino (JS) http://www.espruino.com/MicroBit, Microsoft's http://codethemicrobit.com (scratch-like drag and drop), or C / C++ amongst others, including bluetooth access to the compass and accelerometer.

Here's a rundown: https://blog.bluetooth.com/developing-applications-bbc-micro...

There is a radio module for Micropython that allows devices to communicate with each other without the full Bluetooth stack

...and you can use it to build multiplayer games!


There is actually a C/C++ layer that supports the higher level languages known as the micro:bit runtime[0], which means you can also program the device using C/C++... Another level of progression for children.

[0] https://lancaster-university.github.io/microbit-docs/

Nice, thanks for the link! I didn't realize there was a web-based C++ IDE targeting the micro:bit.

Yes, the runtime is actually built on ARM's mbed, which means their online IDE can also build micro:bit programs :)

As a CS student normally working with lower level languages and IoT devices using Arduino I was a bit skeptical when first trying out this. I've tried MicroPython based devices before but they have left a bad taste in my mouth with their need to have Python on a device that I'm probably only going to start once and then leave indefinitely for a task. But I have to say I was very pleasantly surprised by the MicroBit. I participated at a mini-hackathon with Zach Shelby at the University of Tromsø and I ended up using almost exclusively the JavaScript drag-and-drop stuff. Mostly to try it out and see how much you could do with it, and it actually worked really well. Teaching kids to program without having them worrying over missed commas or mismatched brackets is certainly something that would be beneficial. And it really didn't put as many limits on what I wanted to do as I expected either. Only time I dropped down to code was when I wanted to start organising my program for reuse. And Zach was very friendly and talked about how the devices worked under the hood and explained how the compilation was done in the browser so the only thing you load over is a hex of precomplied code. This allows you to really utilise all of the hardware for the device and even means that they could update things on their end which would make your experience smoother without having to upgrade the device.

My (non techie) partner has used these very successfully with older students who have dropped out of or disengaged with traditional schooling; particularly for numeracy outcomes, but more generally as well.

It's important to not forget their potential as a general educational tool, rather than just something to teach coding with. Have a read of Mindstorms by Papert if you are interested in this space.

We use it to teach kids to code. It's OK, but the screen is way too limited for it to be much fun. It is crying out for a good colour screen that can show more than one character at a time. Also, debugging is a pain. They need some sort of event log that can be inspected on the pc

In some ways the limitations help, don't have kids wanting to program Quake 7.

I use mu, the micropython editor, it shows the error messages on the PC when connected via USB, instead of trying to read them scrolling across the display

Even still a little 128x64 display like many of us cut our teeth on with graphing calculators probably wouldn't have hurt.

I've taught close to 500 kids how to code on them. The number one thing they want to do is show better graphics. Number two is sound.

For me, [stepping through the code] I would expect as a normal part of coding. Not having it seems to hark back to some primitive time.

Speaking of sound, I played around with a BASIC stamp kit[1] and it was pretty cool that it supported polyphonic sound[2] easily, so I was able to program music with harmonies on it right away. It's also fun for creating DTMF signals such as dial tones, busy signals, and dialing numbers.

(Personal note: I've had a lot of fun doing sound on computers from the PC speaker (1 voice square wave), to the SAA1099 as found on the Game Blaster and optional add on for the Sound Blaster (12 voices square wave, 6 per chip), the BASIC stamp mentioned above, or most recently generating wave forms with math (adding sine waves together) and outputting it to DirectX which I learned from Handmade Hero day 007 through 009.[4])

[1] This one exactly: https://www.parallax.com/product/90005

[2] Two frequencies per pin with FREQOUT command: http://www.parallax.com/go/PBASICHelp/Content/LanguageTopics...

[3] http://www.vgmpf.com/Wiki/index.php/SAA1099

[4] https://www.youtube.com/user/handmadeheroarchive

The problem is that if you let them have good graphics their artskills start getting in the way of the programming.

My son is obsessed with PICO-8, and he does indeed spend more time making music and drawing sprites/maps than he does coding.

We do things like scroll your name - one character at a time is rubbish.

Then we do a digital pet (think tamagotchi) and again, with a low pixel count this is crap. They want to draw unicorns or fish or bunnies. None of this is possible.

After that they want it to beep when the pet is hungry. No can do.

All pretty basic stuff.

you can't wire a speaker to an output pin?

if I recall on the Apple II, the speaker was a single bit on/off .. I played games that had music playing concurrently with the onscreen action and even speech!

I understand about the pictures though and I can understand if they kept it simple on purpose to prevent them from being able to download a picture and show it.. I work in a school and while we have a 3d printer on loan from a local company, in the main kids want to print a Voldemort, not something they made themselves..

You can do that, it supports music, and speech


With regards to worries about shorting the connector with crocodile clips on the large I/O pads - the adjacent contacts are 'guard' ones connected to the same place so there's no problem.

I have been working with the micro:bit in my role as a volunteer STEM ambassador almost since it became available and it's a fun tool. My main STEM angles are computing and electronic engineering and initially it was very hard to get good info on the I/O functionality (coding and electronic), but things have come on in leaps and bounds, notably with the micropython guys, and I have concentrated on developing some fun 'advanced expansion' projects, such as a loud 3V audio amplifier (powered from the micro:bit), sound detector and a 5 band audio 'spectrum analyser'. Currently I am working on an alarm clock radio with the micro:bit being a plug-in add on controller (via its buttons and bluetooth). The LED matrix is good for a quick win with visuals, but adding a small OLED display makes a world of difference to what you can do - it would have been really cool if one of the small 0.91" OLED panels was baked in to the micro:bit.

The biggest challenge I originally found was the lack of a focal point for teachers, volunteers and developers to share ideas - I subscribe to many educational forums and groups and the most active I have found is the micropython mailing list (but if anyone knows of others let me know) and there seemed to be little encouragement or management from the official micro:bit side to centralise and promote the community spirit, plus there was a huge delay in getting out the full technical specs and schematics - and boy was it was impossible to get hold of an edge connector for months - so there was a lot of poking and prodding needed to work things out; very kindly some of the tech guys from the companys involved in micro:bit distribution and add-on kits were extremely generous at sharing what they had found out in the early days, especially about the quirky way the LED matrix is wired and driven. A bit more oversight from the project originators in the early days would have really helped.

PS: Totally agree about the RAM - 16K is just a tad tight and 32K would have been a better size.

I've got a 5yo that loves to play with micro:bit. She doesn't read (non-capital) yet, and doesn't know English (as it's not her native tongue), so I read out/explain what each block does, and she decides what she wants to do. Drawing pictures and producing music is currently the most enthralling bit :)

One thing I wish for is that there were visual cues / icons she could distinguish the blocks by (there are a few icons on a few blocks, but not all are covered, they mostly aren't unique, and not intuitive / easy to remember).

Having trialled these at my school, I think they have the potential to be the new turtle. I only hope that the botched rollout in the UK hasn't damaged the project's reputation to much.


The delay in shipping meant they didn't arrive until well into the school semester, meaning teachers didn't get sufficient time to play and incorporate them into the curriculum. I have also heard that due to insufficient teacher training (and play time) that a lot of them are sitting unused. Certainly some teachers are doing awesome things, and the resources and community building behind the project are great, but the realities of teaching on the ground have meant that a lot of the potential is unrealised. I say this based on hearsay and second hand information; I'm not in the UK so don't have any direct knowledge.

I work in a school, and I know at least the teachers did get hold of a few before the students did though I don't know what has been done with them so far as I'm not near the ICT dept -- its worth noting that the ones that were given away to the year 7 students were theirs for their own use and do not belong to the school. This meant that the school had to buy some if they needed them for classroom work, since the students might play with their own at home, but could not be guaranteed to bring them in. For the teachers to incorporate that into their curriculum, they are going to need to budget for 30 at least probably a few more for spares.

Quick question: I've been unable to order these in US but will be traveling to UK in May, is there a store that carries these (and other similar goodies)?

Try Maplin, an electronics chain. It's like what Radio Shack used to be.

Seems to be available on Amazon US, for about $30.

Pimoroni and pi supply ship internationally

I must be missing something. Why would a kid get excited about making a 5x5 array of LEDs to blink when they can easily program a ~2000x1000 array of lights (their laptop/phone/tablet screen) using their browser ?

they can easily program a ~2000x1000 array of lights

Easy for you doesn't mean easy for a 6 year old. Is there really easy pixel-by-pixel programming on any of the devices you mention? As simple as entering few lines of python code and pressing 1 single button? Let alone with direct full-screen access? (I'm really curious, maybe there is).

Also check the example: like 15 lines of Python which make the device play a tone based on the compass. Again: I'm really curious if there are alternatives which achieve this is such an easy way (IIRC even the simplest Arduino style boards I tried required installing an IDE, fiddling with some settings, and the code wasn't nearly as easy as Python). And I'm also not sure if laptop/phone would be amongst those alternatives.

You certainly are missing many things.

What you describe is several orders of magnitude more complex to do for a child.

It's like saying "why would they build a 2d game with Scratch when they could build a 3D FPS in C++?"

actually I was going to suggest Scratch as the sensible alternative! Or Logo or Smalltalk

but is drawing shapes with Canvas or SVG really more difficult than blinking an LED with Python ?

Yes. Much.

I have some experience of trying to teach kids how to use a Pi, and even simple Python part can be a nightmare. SVG is a non-starter.

Also, don't underestimate the fact that the LEDs feel physical while a screen feels virtual. The journey from a single light to an array of lights to shapes shown on the array to shapes shown on a screen is intuitive and fairly obvious.

If you start kids on a screen, even with a turtle, they miss the basics.

Yay... great to see MicroPython on the micro:bit getting some love. In case you're interested, here are the docs for MicroPython on the board -- you can do a remarkable amount on such a small device: https://microbit-micropython.readthedocs.io/en/latest/

(Caveat - I was involved in the MicroPython side of things. So good to see the other dev environments represented in the comments here.)

Hurrah! :-)

I wonder whether it would be possible to make MicroPython functional on an original 1980s BBC Micro, which has a 6502 and a whole 32K of RAM. The "beeb" stores interpreters on pluggable 32K ROMs.

Cute idea. Care to suggest a URL of two about pluggable ROMs for interpreters?

In the 80s they were called "language ROMs"

There's some high-level stuff here http://beebwiki.mdfs.net/Paged_ROM (see "Languages") and I have asked my BBC Micro developer friends to send me some more useful docs, which I'll forward to you as soon as I get them.

Edit: Actually that page has some pretty low-level stuff on it as well, which may keep you busy for a while.

Here's a couple of emails from people who know more about it than me:


Thanks to MicroPython adoption rate, I see it as the BASIC of IoT. :)

Nice work.

Unfortunately there is a lack of easy to use tooling... Mu for the microbit is nice, but other platforms don't have an easy to use editor and file uploader

Do you mean other hardware platforms upon which MicroPython runs, or other software platforms that target the micro:bit? If the former, work is in progress on that front (I am the maintainer of Mu).

Hi! I've been working on adapting mu for other platforms (askvictor/eduvik). My main concern is other hardware platforms (microbit support is great) - there's nothing which 'just works' for esp8266 and other serial-based devices, so any students I point in that direction have to get through a heap of unnecessary technical hurdles to get up and running.

We've been doing outreach work teaching 11-13 year olds to program microbits with Python. It's been a great tool and allowing the kids to see their code running on such a simple device turns out to be a great motivator.

I also think a shout out to https://create.withcode.uk/ is worthwhile. They've got a nice little microbit emulator for trying things out before downloading onto the microbit.

Introduced it to my University of Washington students. It's a primitive but good tool for prototyping. Students don't have to fuss with installing an IDE, learning a new language, etc. Thank you TouchDevelop team.

We have some wacky ideas for microbit:microbit mesh experiments.

A computer without a screen just doesn't provide inspiration for creativity.

can you buy them from USA? any distributor or any in the pipeline to do that?

There is a list of resellers: http://microbit.org/resellers/

"I'm in love with the BBC"

16 KB of memory?

The “64” in “Commodore 64”, the name of a computer introduced in 1982, stands for 64 KB of memory. (A 128 KB version followed 3 years later.) It is now 35 years since 1982…

Instead of lambasting it for a low number, perhaps you could tell us what you'd have a child do in 17KB that they couldn't do in 16KB?

It's an educational device, and that education involves learning to write pieces of code for which industry users may well prefer to pull in large libraries. I'd be surprised if the target audience - 12-13 year olds - use all that; those that have a passion for it will of course end up using more expensive devices with bigger numbers. Those that don't will continue doing only compulsory exercises that could probably manage with less than 16KB.

Quoting from the fine article, which you clearly have not read:

“Finally, the micro:bit’s 16 kB of RAM is quite limiting, at least when using the MicroPython runtime. While writing a moderate-size program I managed to repeatedly exhaust the SoC’s memory, resulting in difficult to debug MemoryExceptions. I can easily imagine intermediate users running up against and being confused by this limitation, and would welcome a version of the micro:bit with double the RAM.”

> the fine article, which you clearly have not read


> " ... easily imagine intermediate users running up against ... "

Something tells me the author isn't imagining the 12-13 year-old target audience when writing 'intermediate users'. There's nothing wrong with reviewing it from a different audience's perspective of course, but it doesn't do to ignore it if you're going to complain about the device's specification.

The Commodore 64 was also $595 when it was introduced, which, adjusted for inflation, is about $1500. The microbit, on the other hand, is about $20. The microbit also has 256k of flash memory -- in comparison, the 170k 1541 floppy drive cost $400, or $1000 in today's dollars. One also needs to keep in mind that programs can run directly from that flash memory, so that 16k is only really a limitation if you're using python, which won't run on the c64. Furthermore, the microbit has features, like bluetooth and a pair of sensors for movement, that you could only dream of when the c64 was introduced. So yes, the c64 had more volatile ram. The microbit has more of pretty much everything else.

As zitterbewegung writes elsewhere in this thread, “there is a Bluetooth radio on the microbit but the runtime was 12k and there wasn't enough space to load micropython and Bluetooth at the same time.”

In 1982, when I bought my BBC micro it was 2000 guilders + another 1650 for the disk drives and yet another 1000 or so for a solidisk RAM expansion. Back then that was about half the price of a small brand new car. I had to save like Scrooge in order to be able to afford that machine and the first year was spent mostly waiting for my cassettes to load or save because once I bought the machine I could not afford the drives.

Compare that to the price of this beauty and you see what 35 years of progress can bring you.

To be fair, the British government didn't give a Commodore 64 to every British child for free.

If only! I could have played Granny's Garden at home then.

Not every child - every Year-7 (11-12 year old) child, whose school had a teacher interested enough to apply for them.

My child's DT teacher did, but they used it for one lesson, then were given it to bring home. It's now in a drawer somewhere.

That was last year. I haven't heard of any plans to repeat the exercise.

As I understand it, it was not the DT teacher -- the government gave one to every year 7 child for themselves to keep and use however they wish. This is nice in a way but the teachers at my school bemoaned that they couldn't really use them in the class, since the students could not really be counted on to bring them in when required. If you think that the school would benefit from them, then contact the PTA or the school governers and get them to ask parents to donate unused micro:bits to the school?

Perhaps, if they did, Silicon Valley would be in the UK.

The UK still had a hangover from the 1970s at the time, local phones calls cost money, and Americans have always been a lot richer anyway. I suspect America had the inherent advantage here.

> Americans have always been a lot richer

Not always. I do recognize the economic sacrifice the UK made for the sake of winning WWII. It's a beautiful thing - altruism on a national scale.

They did put a BBC Micro in every school though.

So that means that they distributed, what, two or three orders of magnitude more micro:bits?

The BBC Micros probably cost more.

The BBC Micro cost £400 in 1981, which was £1400 in 2016, according to the Bank of England. I don't know if this includes monitors, presumably it doesn't include any software. From the other comment, you can double the price to add disc drives etc.

So, at least £400 for every 25 children. My primary school had one in every classroom, but I don't know if that was the standard, so it could be less.

A 10-pack of Micro:Bits with basic accessories come to £11 each, £275 for 25 children.

Yes - there are about 160 kids per year group in my school, and I think all year 7's got one (for themselves, not the school)

It's got 256KBytes of ROM. If that's memory-mapped, the 16KBytes of RAM is much less of a limitation. Most data and virtually all code - especially on ARM - is read-only.

Python might not be the easiest way of working with this setup though...

16KB is plenty for most tasks handled by a low power microcontroller.

Applications are open for YC Winter 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact