Microbits Driver Download



  • Occasionally, changes and improvements to the system software (firmware) on the micro:bit are needed. Updates to the firmware are made by the micro:bit Education Foundation.
  • We also improved the micro:bit support and documentation in the Ada Drivers Library project. Follow this link for documented examples of the various features available on the board (text scrolling, buttons, digital in/out, analog in/out, music).

The BBC micro:bit is a pocket-sized, codable computer that allows anyone to get creative with technology. Made possible through a major partnership with 31 organisations, a micro:bit has been given to every 11 or 12 year old child in year 7 or equivalent across the UK, for free.

Table of Contents

The official website for the BBC micro:bit is http://www.microbit.org.

Microbits

Using C/C you can access a standard mbed SPI driver and work with SPI peripherals. You can even use your own code to implement protocols that are not supported such as the one-wire bus and the DHT11/22 temperature humidity sensor. When you download a file from one of the editors, it is compiled in the browser and downloaded as a.HEX file. Using the editor of your choice, select download and if prompted, choose to save the compiled file on your computer (or anywhere other than the BBC micro:bit).

If you're keen to try using the micro:bit with mbed, then start with this platform page to add it to your compiler (on the right hand side), then check out the activity on the micro:bit team page.

Only the BBC micro:bit V1.3x is currently supported in the mbed online compiler. If you have the V1.5 or the V2.0 device, you will need to use the offline development tools provided for the micro:bit

If you're new to mbed, there's a video showing your first example here

The BBC micro:bit is based on the mbed HDK. The target MCU is a Nordic nRF51822 with 16K RAM, 256K Flash. As well as the nRF51822 there's also an onboard accelerometer and magnetometer from Freescale.

Pinout¶

micro:bit Device Abstraction Layer (DAL)¶

Lancaster University have written a full abstraction of the hardware on the micro:bit, based on mbed. This is used by the higher level languages provided by the BBC and is perfect for creating projects in mbed that use the various pieces of hardware on the micro:bit.

Documentation

Lancaster University have prepared full API documentation and a getting started guide. These live at their own home, hosted from GitHub

If you'd like to use just part of the DAL, the documentation for that is in the advanced guide

There is a set of examples that show how to use the MicroBit class:They can all be found at the micro:bit team, but the simplest is the basic 'hello world'

microbit-hello-world

An example of how to use the micro:bit DAL's abstraction for a simple 'Hello World' on the micro:bit display. This is a one-way translation of the microbit-samples repository on GitHub. Please don't try to push changes here, instead push them to the source repo at https://github.com/lancaster-university/microbit-samples

Last commit 13 Jul 2016 by

And this example, taken from the advanced guide shows using just the display component:

microbit-component-display

Example display component code from http://lancaster-university.github.io/microbit-docs/advanced/#using-components-directly

Microbits Driver Download

Last commit 20 Apr 2016 by

Getting Started Video¶

Features¶

  • Can be programmed with high-level online IDEs using the BBC's website at http://www.microbit.co.uk/create-code including:
    • Microsoft TouchDevelop IDE
    • Microsoft Blocks
    • CodeKingdoms Javascript
    • MicroPython
  • mbed enabled
    • Online IDE at developer.mbed.org
    • Easy to use C/C++ SDK
    • Dedicated micro:bit runtime libraries for rapid development (developed by Lancaster University)
  • Nordic nRF51822 Multi-protocol Bluetooth® 4.0 low energy/2.4GHz RF SoC
    • 32-bit ARM Cortex M0 processor (16MHz)
    • 16kB RAM
    • 256kB Flash
    • Bluetooth Low Energy Master/Slave capable
  • Input/Output
    • 25 LED Matrix
    • Freescale MMA8652 3-axis Accelerometer
    • Freescale MAG3110 3-axis Magnetometer (e-compass)
    • Push Button x2
    • USB and Edge connector Serial I/O
    • 2/3 reconfigurable PWM outputs
    • 5 x Banana/Croc-clip connectors
    • Edge connector
    • 6 x Analog In
    • 6-17 GPIO (configuration dependent)
    • SPI
    • i2c
  • USB Micro B connector
  • JST power connector (3v)

mbed Libraries¶

The DAL described above contains all code required to use the micro:bit with mbed, but if you're looking to use just the underlying mbed libraries, for example for greater portability to other mbed platforms that don't have the same features as the micro:bit, you can use other libraries directly. For example

Microbits Driver Download Torrent

For Bluetooth Low Energy, the mbed BLE_API:

BLE_API

High level Bluetooth Low Energy API and radio abstraction layer

Last commit 14 Sep 2016 by

For more information, see the Bluetooth Low Energy team /teams/Bluetooth-Low-Energy/

Or these component libraries:

Microbit Driver Download

The MAG3110 is a small, low-power digital 3-D magnetic sensor with a wide dynamic range to allow operation in PCBs with high extraneous magnetic fields.
The MMA8652 is a 12 bit, 3 axis accelerometer

Firmware¶

You can find the latest firmware at https://www.mbed.com/en/development/hardware/prototyping-production/daplink/daplink-on-kl26z/#Updating_your_DAPLink_firmware

micro:bit availability¶

The micro:bit is available from a number of different online retailers, and in quantities >90 from CPC in the UK.

Microbits Driver Download Pc

More information, including a registration for for schools to request micro:bits can be found here


You need to log in to post a discussion

Discussion topics

TopicRepliesLast post
Troubles about nRF51822 IC 0 16 Nov 2017 by
low, Microbit, Power, Radio, wirelessHow can I implement a low power wireless receiver with the microbit? 1 23 May 2017 by
ERROR: .syntax divided arm assambly not supported
1 year, 4 months ago
The accelerometer code cannot be executed on the microbit hardware version 1.5.
1 year, 4 months ago
support for neopixel (ws2812 addressable LEDs) on microbit
2 years, 2 months ago
radio problems
1 year, 10 months ago
Unable to use online compiler
2 years, 4 months ago
See more related questions

Microbits Driver Download Windows 10

  • Hey, I'm trying to get into a bit of bluetooth LE. Whilst I've got a microbit with me I want to have it send out a value from an analog pin over bluetooth for anything to pick up. The part I'm confused about is I can't find anything the references using the microbits bluetooth at all.

    The espruino webIDE is the only thing I've seen use it. I can't find anything on the microbit.co.uk/app tools that reference bluetooth. I thought about looking at micropython but apparently they'll never do it;

    Perhaps I'm misunderstanding how BLE is supposed to work. Next I'm going to look at how the Web-IDE from NPM is talking to bluetooth for a bit of an example.

  • Luckily Espruino's a bit more memory efficient than MicroPython ;)

    I forgot to include the BLE API in the online reference. I've just updated it - the stuff you want is here.

    At the moment the support is limited to advertising data (ideally you'd be able to set proper GATT information), but it should be perfect for what you want.

    For example the following reports the current temperature:

    The UUID given should be one of the standard bluetooth ones at the moment.

    It's still a bit limited (it seems you can't send much advertising data at the moment before it runs out of memory, and I'm not sure why).

  • Just to add here, as I understand it you've got 2 main bits to Bluetooth Smart - Advertising, and GATT.

    Advertising is when a device automatically 'pushes' out data in an advertising packet every so often. So it says what it's name is, and what it supports - you don't need to transmit anything to it to get that information. That's what Espruino supports at the moment.

    For GATT, you have 'characteristics' - just a bunch of properties that can be read and set - and the other device has to be able to transmit data in order to use those. At the moment they're not exposed in Espruino (except the 2 that are needed to use Bluetooth as a serial port).

    They could be in the future (and will be) - it's just a matter of someone finding time to do it :)

  • That's an amazing amount of info Gordon thank you. I'm going to look around what I can and hopefully help.

    From reading the page I got the impression I still should be able to use the usb to program it. I tried the Should I start a new thread for this?

    I've been having trouble connecting to the microbit over USB once espruino is uploaded. I can see 'espruino MICROBIT' listed in bluetooth on my phone. chrome on there can't connect to it though. I checked enable-web-bluetooth is enabled.

    Just tried the 1v85 espruino_1v85_microbit.hex from the downloads page zip and also espruino_1v85.63_microbit.hex from the master. Can see them on my phone but can't connect over usb. Chrome IDE normally and run as admin. unplugged/plugged in the bit too.

  • No problem... What OS are you using? I updated the docs recently: http://www.espruino.com/MicroBit

    Basically on Windows you need a driver for the serial port - but once that is installed, a port should appear just like with a normal Espruino board.

    But yeah, if that doesn't work, start a new thread - when we get it sorted the answer might help someone else (although if you can think of any additions to the Micro:bit page they'd really be appreciated!).

  • Yes it was the serial port driver. Wasnt expecting another driver after using arduinos and things. (Win 10 x64)

    I'm just working on trying to find the thing from my phone now the web Bluetooth api seems a bit restrictive.

    Doesn't your example need two pipes by the way?

  • Doesn't your example need two pipes by the way?

    No, it's a JS hack (I've changed it so it'll be more obvious in 1v86's documentation) - doing a binary OR (|) with 0 converts the number to an integer (it's like using Math.floor, but takes less space).

    I'm not 100% sure it's needed as it may happen automatically, but the number that is advertised via Bluetooth is an integer, not floating point.

    If you're working on other phone software for Bluetooth LE, you could take a look at using 'Nordic UART' - I think they have posted some example code. Basically then you can send JavaScript direct to Espruino - so if you want to show something on the LEDs you can literally just send show(0xFF)n

  • Hi Jack,

    If you want to send JavaScript straight to the micro:bit from from your Android phone you can do that right now with the DroidScript plugin. I'm just making a few improvements to it right now actually (you can also read the console output from the micro:bit over BLE)

  • Hello guys.

    Im becoming crazy with this.
    I read your conversation about the GATT profile, where the BT is broadcasting data but on what way I can read it? I need to pair the computer? what software can I use to debug this broadcast? Cannot do a normal socket comunication in two ways?

    Upd: I started writing this one at lunch and now at night my microbit stop working (Had a issue since i bought it). Because I love JS and I want to start in this world, I though to buy a new board but im the worst person with electronic (Im front end dev). Your others board have the same API or are more flexible to do comunication with Bluetooth? Which one include BT?

  • The only BLE-capable board we do at the moment is Puck.js: https://www.kickstarter.com/projects/gfw­/puckjs-the-ground-breaking-bluetooth-be­acon

    It's not available right now, but will ship in December. Same API but it can do 'central' mode as well - so can initiate a connection to something else.

    In terms of BLE:

    Advertising you don't need to pair. The easiest I've found it to use noble and node.js. Example program for reading data here: https://github.com/sandeepmistry/noble/b­lob/master/examples/advertisement-discov­ery.js

    For GATT you have to pair (I think). Espruino implements a normal socket-style connection called 'Nordic UART' which it puts the JS REPL on (by default) - Nordic provide an Android app to use it, as do Adafruit, or you should find various different implementations of it around.

  • For anyone trying to follow this along:
    I ran this code on the microbit:

    And then installed nRF Connect for Mobile for Android. If I then scan for the microbit, it shows (in this case a fake) battery percentage of 88% (see included image). A lot of the other free BLE tools in the Play store failed to either find the microbit or to display the data.

    Note though that on iOS nRF Connect does not give the same result. In fact, it fails to show the data. I used Bluetooth Smart Scanner and LE Nearby to create the other two screenshots.

    p.s. the iOS screenshots were created today using different (still fake) battery percentage of 100% = 0x64

    Next challenge: have it broadcast Eddystone-URL, but I'll start a new topic for that.

    4 Attachments

  • Great - thanks for posting up!

    I think right now the fact that it also advertises the Nordic UART service means that there isn't room in the advertising packet for Eddystone, but if you post up the code I'll see about modifying the firmware to allow you to disable the UART service advertising (it just means that if you wanted to program it wirelessly, you'd have to use one of the proper Espruino tools that knew it was looking for an Espruino).

  • @Pierre, the following would appear to work:

    At least the Nordic tools pick it up as being an Eddystone beacon... However the Physical Web app doesn't seem to. I'm checking up on why, and I'll let you know what I find.

  • It just did on iOS though when I tested your code on my microbit....
    Checking Android..

    1 Attachment

  • Strange. Not on Android in Physical Web.But it shows up in Beacon Scanner now on Android! :)

    1 Attachment

  • I just heard it's because they recently changed to only allow HTTPS, so

    should work - but it still doesn't :(

  • p.s. I did create a new topic for this like you asked, but for now continuing here. Google Chrome on iOS is happy with it also and finds the beacon (see bottom right corner of the screen).

    1 Attachment

  • I know, sorry - I'd posted the first comment before you opened the new thread though :)

    So it looks like Android is very picky, and you have to specify the advertising data exactly. I've had to build a new version of Espruino that allows you to specify the entire advertising packet (hopefully a micro:bit build will be available in a half hour or so).

    Also, Android will silently refuse to recognise any non-HTTPS links, even if they're via goo.gl (which is HTTPS), so you're hit twice.

    This works though (with the new build)

  • So that would be a build newer than 27-Jul-2016 14:45 ?
    (newer than espruino_1v86.148_efm32ggstk.hex)

  • Yes - so what's on http://www.espruino.com/binaries/travis/­master/ now should work.

  • And it does. Both on iOS and Android. Thank you for 'fixing' this (making this feature available)!
    I'll try to do a screencast (in English) explaining how things need to be setup tonight/tomorrow.

    Buying custom beacons probably is cheaper than using a micro:bit, but if a school has them available, this is at least a fun project to doe.

    2 Attachments

  • Also, you can potentially do more fun things with it - for example it can use E.getTemperature() to read the temperature, and can then add #21 (for instance) to the end of the link.

    When you go to that website '#21' it could then report the temperature as 21 degrees C.

  • Also, if you do write it up, please could you mention the Puck.js KickStarter ? it's for this sort of thing, but much faster and with more memory.

  • Video + write-up: Turn your BBC micro:bit into an Eddystone-URL beacon using Espruino

    1 Attachment

  • Thanks! Looks great!

  • Don't worry about formatting, just type in the text and we'll take care of making sense of it. We will auto-convert links, and if you put asterisks around words we will make them bold.

    Tips:

    • Create headers by underlining text with or ----
    • To *italicise* text put one asterisk each side of the word
    • To **bold** text put two asterisks each side of the word
    • Embed images by entering:
      ![](https://www.google.co.uk/images/srpr/logo4w.png)
      That's the hard one: exclamation, square brackets and then the URL to the image in brackets.
    • * Create lists by starting lines with asterisks
    • 1. Create numbered lists by starting lines with a number and a dot
    • > Quote text by starting lines with >
    • Mention another user by @username
    • For syntax highlighting, surround the code block with three backticks:
      ```
      Your code goes here
      ```
      Just like Github, a blank line must precede a code block.
    • If you upload more than 5 files we will display all attachments as thumbnails.

    For a full reference visit the Markdown syntax.