8 ms·
Exploring the BBC Micro:bit Software Stack and OS
- hguhghuff 9y agoThis computer seems the least interesting if all computers I can think of. It's like they actually tried to make it not have exciting potential. You have to really work to hobble a modern computer to remove the excitement factor but somehow the BBC rose to the challenge.
- matthewwarren 9y agoI'm not sure about that, of course it is limited compared to the Raspberry Pi. But, have you ever watched a kid use one and within 5 mins be able to have their name scroll across the screen or make a simple Paper/Scissors/Stone game using the accelerometer? They get pretty excited about it!
- hguhghuff 9y agoI've heard this before, but how can the appeal last longer than a few minutes? Seriously, a computer is about potential but the possibilities are so incredibly limited with this device that it's hard to see where to go after a few blinking lights. That's just not exciting. For an example of what the new BBC project should have been, look up littlebits - now there's potential and open ended creative possibility. A few blinking lights and that's the total potential? Meh.
- matthewwarren 9y agoWell you can wire it up to eternal devices easily enough. Also take a look at some of the ideas on this page, http://microbit.org/ideas/projects/ http://microbit.org/ideas/projects/. (thanks for the info about 'littlebits', I'd not heard about that, taking a look now)
- IanCal 9y agoMultiplayer rock paper scissors with radio communication based on shaking them? https://makecode.microbit.org/projects/rps-teams https://makecode.microbit.org/projects/rps-teams Add on some motors and make a robot that hides from the light? Make a robot that can follow a path, or that drives based on true compass directions. Make a hide and seek with your microbit reporting hot/cold based on signal strength to other microbits? https://makecode.microbit.org/projects/hot-or-cold https://makecode.microbit.org/projects/hot-or-cold Display the temperature? Send messages to people? Add on any other sensors? Connect to your phone and do something else (app driven robot maybe) Firefly synchronisation https://makecode.microbit.org/projects/fireflies https://makecode.microbit.org/projects/fireflies There's loads on that page and really you've got sensors and can control other things, and do distributed communication. There's lots of things you can do with a low powered processor, and it's not locked down to a few options. Edit - I've just found out you can play sounds with it too. Edit 2 - I'm now actually quite excited about this. I'm going to go out and buy one now.
- hguhghuff 9y agoSorry but for a modern kid, the sort of projects you are talking about sound like the sort of projects that an adult thinks kids would love, not what kids would actually love, which is screens, color, games, robotics and interaction. It was a huge mistake not to ship this with a video port.
- detaro 9y ago> It was a huge mistake not to ship this with a video port. Looking at what I see happening with the Raspberry Pi, I don't agree with that assertion. It's not been very important for making cooler projects with kids, it only made coding on it easier since it didn't come with a nice remote environment and you thus could use the Linux desktop on the Pi for coding. (It also opens up use cases like "media center", but those are not very relevant for education). Kids find going to hardware like the microbit/Pi/Arduino interesting because it is breaking out of the usual screen(+keyboard in case of a PC) environment, and you can do > games, robotics and interaction that's not limited to the screen. And nothing stops you to combine both, have the microbit talk to a PC/phone.
- JBorrow 9y agoLittlebits is considerably more expensive than the micro:bit.
- hguhghuff 9y agoYes but the BBC would have been better not to commission a new computer, but to design a standard for connecting tiny cheap computing devices together and let industry build interesting BBC compatible things that could be hooked together, expanded, interfaced, with electronics, vision, sound, robotics, movement etc etc
- zarify 9y agoYou can hook up lots of the popular kit that works with Arduino to Microbits quite easily (servos, steppers, ultrasonic sensors, extended LED arrays, humidity and moisture sensors). Most of it will work with block code too.
- Angostura 9y agoThat's great - unless you mission is to quickly get cheap devices into classrooms
- matthewwarren 9y agoYeah, I suspect the BBC had a very specific remit and they would've been in trouble if they'd got into too much competition with existing manufacturers/companies. They are very much a publicly funded corporation, so everything they do has to fit with that.
- mavhc 9y agoIt's not exactly a new computer, it's using ARM's mbed system, so that's a standard real world IoT platform, not a toy. You can drive larger displays https://github.com/carlosperate/awesome-microbit https://github.com/carlosperate/awesome-microbit Plus don't think it's the only computer they'll have, it's an IoT computer, it's supposed to not have a video out. I like that it's all in one, you can program it in 5 mins with a browser, and yet connects to real IO the same way real embedded computers do, you have to get a bit messy, you know it's not a toy.
- zarify 9y agoI've been teaching using these for the last 9 months, using them for an introductory and tactile programming environment (being able to easily switch from block code to Python when they get the concepts is great), learning about how computers use a variety of external sensors, introducing some of the structure of wireless networking, congestion and attenuation and more. And that's without using any of the pins to hook up external gear. My kids have just started hooking up continuous servos and creating remote control buggies with them, learning about protocols in the meantime. They're probably one of the best pieces of kit I've used in 13 years of teaching (and cheap to boot). But feel free to keep rubbishing them, that's your prerogative :)
- IanCal 9y agoIt has the advantage as well as coming with buttons and lights (as well as accelerometer, compass, light sensor, temperature sensor, bluetooth), so the time between 'open package' and see your code doing something is much smaller. At £15 for one with a battery pack, cables, tutorials, and all that, it sounds great. And apparently has a different radio too, to connect to other micro:bits? Multiplayer rock paper scissors: https://makecode.microbit.org/projects/rps-teams https://makecode.microbit.org/projects/rps-teams I'll happily trade not having loads of ram for something a kid (or a big kid myself :) ) can pick up and just make something fun in almost no time.
- mavhc 9y agoAs I understand it it's using the bluetooth chip, but as it's actually a Software Defined Radio, they wrote simpler software that doesn't take up half the ram of the computer.
- doctornemo 9y agoA few weeks ago I saw dozens of Singaporean kids showing off projects they'd built with the Micro:bit. They learned a good deal, had been very creative, and were clearly interested in learning more. Sounds like a good outcome.
- TickleSteve 9y agoThe constraints are a feature. The benefits of working within RAM and processing constraints teaches about those limits and you become more aware of the interaction between hardware and software. Too many softies these days are completely unaware of this interaction.... (to their deficit).
- IanCal 9y agoI just had a look to see how to build an android app to make a hot/cold beacon finder and where to buy beacons. You know what? I'm already bored. And that's before I've started trying to install eclipse and what sdks I need and whether to use kotlin and how to setup the right things. I mean, I found the google docs and one of the first steps is > Request an OAuth 2.0 Client ID Great, going to get some young kids excited by explaining what oauth is and how to log into the google developers console. Next up, what XML you need to know to create an interface and add what threads are and ... Or: https://makecode.microbit.org/projects/hot-or-cold https://makecode.microbit.org/projects/hot-or-cold Done.
- djaychela 9y agoI think that sums a lot of 'progress' up to me; I've had several abortive attempts to 'get into programming' over the last 20 years or so, and all of them have floundered early on on various pre-requisites which just seemed too much to deal with. I'm now persevering with Python (which seems in some way to suffer less that others, but also because I'm sticking at it this time as I want to change career), but I can remember giving up when it seemed I had to write about 50 lines of code just to get a window up with an OK button. I'm sure the same is true many multiples over with kids, and the micro:bit seems a good solution to that.
- IanCal 9y agoIf it helps, I've recently started adding more UIs to things and the main way I'm doing it is with web pages. Easy to make, lots of tutorials, requires another language unfortunately but still a useful skill. Not always applicable, but can be a good approach. Best of luck, I know there are some hard steps to take (particularly the stage of "ok I can write code but what can I actually do with it"), but things really build after a while. Oh, and I've been coding for maybe 17 years and 1. I keep writing code that's wrong 2. I get basic things wrong all the time 3. I still have to regularly look things up My wife is learning to code, and I think she felt these things meant she wasn't doing well at it, but it's really common. I'm just used to it and have more experience finding my mistakes because I've made them so much. > and the micro:bit seems a good solution to that. I think so. I think there's a huge step forwards when you can get something working quickly, then build from there.
- djaychela 9y agoI'd have to completely disagree there. I recently went round a new (high) school with my youngest step-son (who is 11, so year 6 in the UK). He's not really that impressed by most computer stuff which is at a level he'd actually be able to understand/program. While he's shown some aptitude in scratch, etc., I think the problem is that everything that's exciting to him is light years away from whatever he can actually do. However, he and his friends all spent some time on the open evening looking at the micro:bits that were on display which were set up to do various simple things - detect touches or switch presses and change LEDs, etc. His elder sister is of the age that was supposed to get a free Micro:bit, but that didn't happen.... I think I'll have to buy one and have a play!
- technomalogical 9y agoI'll add my anecdote: my family and I visited friends in California this past summer for vacation. We visited the local Fry's and I saw these and picked up a pair. Our friends' oldest son was mildly interested, but didn't see the appeal. We looked at the peripherals on the boards and decided to make a remote sensing thermometer that we'd put in the freezer. Literally 15 minutes later, we had built working code in the block editor for both components (the broadcasting thermometer, sending the latest temperature once a second, and the receiver which showed the data) We popped it in the freezer and watched as the temperature slowly creeped down to below freezing. He was amazed that we could build something like that so quickly. Our friends went out and purchased their own micro:bits the next day :)
- mtgx 9y agoIt seems like the RISC-V ISA would make more sense for a project like this, no?
- detaro 9y agoNo, why would it? ARM is well-known, well-supported by the software ecosystem and there are tons of cheap chips readily available so you can pick whatever you like. RISC-V has none of these things right now. One type of chip available, I doubt they could have gotten it at the time (or even right now) in the numbers they need, it would need companion chips for things the current one has integrated (Bluetooth), would be more expensive and would likely require more software work. Exciting, yes, but at the lower levels "boring" is exactly what you want for a project like this. The entire thing is supposed to be cheap so you can distribute it widely and additional effort spent has a way higher impact if it goes to documentation, teaching materials, example projects, … than to making low-level changes most users won't even notice.
- pjc50 9y agoCan you buy a RISC-V device off the shelf with integrated Bluetooth? It looks like BT was the architecture driver, so they used https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF51822 https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy... - the radio is the difficult bit, and the processor having spare capacity is a convenient by product.
- deleted 9y ago[deleted]
- cmrdporcupine 9y agoNot yet. But hopefully soon.
- jacquesm 9y agoThere is a very long history regarding the BBC and ARM, you could say that without the BBC ARM would not have existed at all.
- 9y ago
- matthewwarren 9y agoFor some background on the design decisions, here's the 'Key design constraints' from https://github.com/sparkslabs/microbit-prototype/tree/master/doc https://github.com/sparkslabs/microbit-prototype/tree/master... (the technical specs of the microbit prototype, written in Dec 2014) : > Programmable - The device must be reprogrammable > Simple to program - via a graphical browser based UI > Small - maximum 5cm x 5cm > Cheap - manufacture cost must be approximately £2 or less when produced in large scale - for example batches of 100,000 units
- Graham24 9y ago"I’d imagine that for a large amount of computer programmers (currently in their 30’s)..." 40s/50s surely. the 80s is 30 years ago.
- topbanana 9y agoI'm still in my 30s and starting coding in the 80s!
- matthewwarren 9y agoWell, I was basing that on my own age!! (born in the early 80's, still just-about in my 30's). But yes, I guess I should've extended it a bit :-)
- PaulRobinson 9y agoIn the UK programming was taught on BBC Micros in pretty much every school from the age of 5-6 years old as part of the school curriculum. I'm in my late 30s and learned Logo and BASIC almost 35 years ago in the early-mid 1980s. I then went back to it when I was 11 and learned BASIC "properly", and then by 14 was writing C which is around the early-mid-1990s. Most of my colleagues from the UK went through a similar curve, taking in Atari and Amiga machines at home not just as games machines but piqued by their capability to produce software of their own. The UK 8-bit market was one of the biggest economic helpers the country has had in generations. We then went about squandering it. Whilst I was a teenager the school curriculums moved to teaching PowerPoint and Excel which basically meant STEM entrants at University fell off. I was one of the last years to be able to learn how to code at school. Detecting an impeding and urgent skills gap, a couple of years ago a proper computer science GCSE was kicked off (by the much maligned, but on this occasion perhaps quite right, Michael Gove MP), but only 11% of pupils in the UK sat it last year, and most schools are struggling to hire teachers so the quality of the kids they're turning out is a problem for us as a country and economy. This is something I'm spending a lot of time thinking about right now. An open-source set of text books with teacher notes might help a lot of kids get exposure to the skills they need for the workplace in 30 years, the way I got exposure. Yes, the RPi and microbits stuff is part of that, but there needs to be some steps beyond that. Kids need to be able to go home, look at the PC or laptop and think "I could make something on that", and get the guidance needed to do so.
- _Codemonkeyism 9y agoI love the Micro:bit and have used it in many "Coding for Managers" workshops. Currently I switch for my workshops to the Calliope Mini [1], very similar (they talked to the Micro:bit guys), but has additionally RGB LED, microphone, sound, Grove sensor connectors (2) and motor drivers for two motors for robots (but is more expensive). [1] https://calliope.cc/ https://calliope.cc/
- zarify 9y agoNifty, I hadn't seen Calliope before. I'll check it out next time I buy some experimental kit for my classes.
- jamesadevine 9y agoFor more information on the runtime (the underpinnings of MakeCode): https://lancaster-university.github.io/microbit-docs/ https://lancaster-university.github.io/microbit-docs/ We are using the approach taken with micro:bit to support other resource constrained devices, like the adafruit circuit playground: https://makecode.adafruit.com https://makecode.adafruit.com
- ntoll 9y agoIt's important to point out that EVERYTHING to do with the MicroPython work on the micro:bit was done by a community of volunteers working in their spare time. Source code here: https://github.com/bbcmicrobit/micropython https://github.com/bbcmicrobit/micropython Documentation here: https://microbit-micropython.readthedocs.io/en/latest/ https://microbit-micropython.readthedocs.io/en/latest/ I estimate around 80 people volunteered time to bring Python and associated tools (such as the browser based editor, command line tools and a native editor called "Mu" https://mu.readthedocs.io/en/latest/ https://mu.readthedocs.io/en/latest/) to micro:bit. At the heart of all this work was the creator of MicroPython, Damien George who volunteered a huge number of hours to bringing a full reimplementation of Python3 (without standard library) to micro:bit. Check it out, it's awesome. MicroPython is both a reimplementation of Python 3 but on the micro:bit also has music, a simple speech synthesiser, funky display functions, radio and a simple file system all built in. :-)
- pjmlp 9y agoThe work done on MicroPython is amazing, it is the 21st century version of Basic for tiny devices. It even allows compiling to native code and use of inline Assembly. http://docs.micropython.org/en/v1.9.3/pyboard/reference/speed_python.html#the-native-code-emitter http://docs.micropython.org/en/v1.9.3/pyboard/reference/spee... http://docs.micropython.org/en/v1.9.3/pyboard/pyboard/tutorial/assembler.html# http://docs.micropython.org/en/v1.9.3/pyboard/pyboard/tutori...
- zitterbewegung 9y agoYea, I got to try one out and added some pedagogical examples to help people learn about the platform. It was lots of fun!
- matthewwarren 9y agoI knew that a lot of work went into MicroPython, but I didn't appreciate that is was all done by community volunteers. That's very impressive!
- jdcarter 9y agoI've switched all my new embedded projects to MicroPython, and I've found it far superior to Arduino for managing complexity in your software. No more loop() function that gets totally out of hand! Having an OS underneath with support for real concurrency constructs (like fibers) makes a huge difference, and Python is a pleasure to work with. Huge props to everybody involved in making this happen!
- pjmlp 9y agoInteresting, the PXT language (TypeScript subset) does have a native code backend. https://makecode.com/language https://makecode.com/language
- matthewwarren 9y agoHmm, I completely missed that, thanks for pointing it out (https://makecode.com/language#static-compilation-vs-a-dynamic-vm https://makecode.com/language#static-compilation-vs-a-dynami...) I assumed that the PXT worked the same as MicroPython, but it seems like it actually compiles directly to machine code, nice!
- matthewwarren 9y agoJust noticed that the BBC have re-released some of their archive of 'BBC Micro' related TV programmes from the 1980's, see https://www.bbc.co.uk/iplayer/group/p031v2bg https://www.bbc.co.uk/iplayer/group/p031v2bg (probably UK only)
- LeoPanthera 9y agoThose have been on the iPlayer for a year or so now. Definitely worth a watch.
- Someone 9y agohttp://www.nordicsemi.com/nordic/content_download/108537/1840103 http://www.nordicsemi.com/nordic/content_download/108537/184... states ”Nordic Semiconductor’s nrF51822 is the brain of the micro:bit combining the latest Bluetooth low energy, _ANt+_ and proprietary wireless technology with a 32-bit ArM Cortex-M0 microprocessor” So, the hardware supports ANT+. The software stack doesn’t seem to, however. Does anybody know whether that is possible/worked on? If not, is there similar ‘beginner’ hardware that does?