Skip to main content


The Official BBC micro:bit User Guide

Gareth Halfacree

ISBN: 978-1-119-38673-5 October 2017 312 Pages


The go-to guide to getting started with the BBC micro:bit and exploring all of its amazing capabilities.

The BBC micro:bit is a pocket-sized electronic development platform built with education in mind. It was developed by the BBC in partnership with major tech companies, communities, and educational organizations to provide kids with a fun, easy, inexpensive way to develop their digital skills. With it, kids (and grownups) can learn basic programming and coding while having fun making virtual pets, developing games, and a whole lot more.

Written by internationally bestselling tech author Gareth Halfacree and endorsed by the Micro:bit Foundation, The Official BBC micro:bit User Guide contains what you need to know to get up and running fast with the BBC micro:bit. Learn everything from taking your first steps with the BBC micro:bit to writing your own programs. You'll also learn how to expand its capabilities with add-ons through easy-to-follow, step-by-step instructions.

  • Set up your BBC micro:bit and develop your digital skills
  • Write code in JavaScript Blocks, JavaScript, and Python
  • Discover the BBC micro:bit’s built-in sensors
  • Connect the BBC micro:bit to a Raspberry Pi to extend its capabilities
  • Build your own circuits and create hardware

The Official BBC micro:bit User Guide is your go-to source for learning all the secrets of the BBC micro:bit. Whether you're just beginning or have some experience, this book allows you to dive right in and experience everything the BBC micro:bit has to offer.

Foreword xi

Introduction xiii

Part I

Chapter 1 Meet the BBC micro:bit 3

A Tour of the Board 3

Breaking It Down 5

Display 6

Buttons 7

Processor 8

Radio 9

Accelerometer 10

Compass 11

Input-Output Pins 12

Micro-USB Port 13

Battery Connector 14

Chapter 2 Getting Started with the BBC micro:bit 17

Handling the BBC micro:bit 17

Powering the BBC micro:bit 18

USB Power 18

Battery Power 20

Greetings from the BBC micro:bit 23

Signs of Life 24

Testing the Buttons 24

Motion Gaming 24

Get Coding 25

Resetting the BBC micro:bit 25

Chapter 3 Programming the BBC micro:bit 27

USB Connectivity 27

Drag-and-Drop 29

Automatic Flashing 31

The Code Editor 32

Downloading Your Program 33

About Flash Memory 38

Part II

Chapter 4 Programming Languages 41

About Programming Languages 41

The Three Main BBC micro:bit Languages 42

JavaScript Blocks 43

JavaScript 44

Python 45

Comparing Programming Languages 46

Choosing a Programming Language 48

Other Programming Languages 49

Chapter 5 JavaScript Blocks 51

Introducing the JavaScript Blocks Editor 51

Program 1: ‘Hello, World!’ 54

Loops 57

Program 2: Button Inputs 58

Multiple Buttons 60

Program 3: Touch Inputs 61

Variables 62

Program 4: The Temperature Sensor 65

Formatting the Output 67

Program 5: The Compass Sensor 67

Program 6: The Accelerometer Sensor 70

Delays 73

Reading Raw Accelerometer Data 74

Program 7: The Fruit Catcher Game 76

The Setup 77

The Main Program Loop 78

Conditional Loops 80

Conditional Statements 82

The Control Events 84

Further Steps 86

Chapter 6 JavaScript 87

Introducing the JavaScript Editor 88

Program 1: ‘Hello, World!’ 90

Loops 93

Program 2: Button Inputs 94

Multiple Buttons 97

Program 3: Touch Inputs 98

Variables 99

Program 4: The Temperature Sensor 102

Formatting the Output 104

Program 5: The Compass Sensor 104

Program 6: The Accelerometer Sensor 107

Delays 109

Reading Raw Accelerometer Data 110

Program 7: The Fruit Catcher Game 112

The Setup 113

The Main Program Loop 115

The Conditional Loops 116

The Conditional Statements 117

The Control Events 120

Further Steps 123

Chapter 7 Python 125

Introducing the Python Editor 126

Program 1: ‘Hello, World!’ 128

Loops 132

Program 2: Button Inputs 133

Multiple Buttons 136

Program 3: Touch Inputs 137

Variables 138

Program 4: The Temperature Sensor 141

Formatting the Output 142

Program 5: The Compass Sensor 143

Program 6: The Accelerometer Sensor 145

Delays 147

Reading Raw Accelerometer Data 148

Program 7: The Fruit Catcher Game 150

The Setup 150

The Main Program Loop 153

Conditional Loops 154

Conditional Statements 155

Drawing the Sprites 156

Finishing the Program 157

Further Steps 160

Part III

Chapter 8 The Wireless BBC micro:bit 163

The BBC micro:bit Radio 163

Program 1: One-to-One Communication 164

Program 2: One-to-Many Communication 167

Program 3: Radio Groups 169

Testing the Group Feature 171

Using the BBC micro:bit with a Smartphone or Tablet 173

Chapter 9 The BBC micro:bit and the Raspberry Pi 175

About the Raspberry Pi 176

Connecting the Raspberry Pi to the BBC micro:bit 177

Reading from the BBC micro:bit 180

Using the BBC micro:bit Display 186

Practical Example: A CPU Monitor 189

Chapter 10 Building Circuits 193

Electronic Equipment 194

The Input-Output Pins 196

The Large Pins 197

The Small Pins 199

Serial Peripheral Interface (SPI) 201

Inter-Integrated Circuit (I2C) 201

Universal Asynchronous Receiver/Transmitter (UART) 201

Your First Circuits 202

Reading from a Button Input 202

Reading Resistor Colour Codes 205

Writing to an LED Output 207

Fading an LED via PWM 211

Reading an Analogue Input 213

Chapter 11 Extending the BBC micro:bit 217

Extending via Breakout Boards 217

Kitronik Edge Connector Breakout Board 218

ScienceScope Micro:bit Breakout Board 219

Proto-Pic Bread:Bit 220

Proto-Pic Exhi:Bit 220

Robotics and the BBC micro:bit 222

Kitronik Line-Following Buggy 222

Kitronik Motor Driver Board 223

Technology Will Save Us Micro:Bot 224

4tronix Bit:Bot 225

BinaryBots 226

Other BBC micro:bit Add-Ons 227

Kitronik Mi:Power 227

Proto-Pic Micro:Pixel Board 228

Proto-Pic Simon:Says Board 229

4tronix Bit:2:Pi Board 230

Kitronik Mi:Pro Protector and Mi:Power Cases 231

Chapter 12 The Wearable BBC micro:bit 233

Advantages of the Wearable BBC micro:bit 234

Conductive Thread 235

Using Conductive Thread 237

The Rain-Sensing Hat 241

Building the Hat 242

Mounting the BBC micro:bit 244

The Rain-Sensing Program 245

Battery Power 246

Chapter 13 Additional Resources 249

The Micro:bit Educational Foundation 249

Official Teaching Resources 251

Third-Party Teaching Resources 252

The Institution of Engineering and Technology 252

Computing At School 253

Micro:bit for Primary Schools 253

TES Magazine 255

Code Clubs 256

Part IV

Appendix A JavaScript Blocks Recipes 259

Appendix B JavaScript Recipes 267

Appendix C Python Recipes 275

Appendix D Pin-Out Listing 285

Index 289

Full Code Download
Chapter 5 and 6
Chapter 7
Chapter 7, Figure 7-17, Page 149, replacement (a corrected version of the figure in both originally-submitted uncropped and as-published cropped flavours) provided for figure 7-17 by the Author.

Lines 3, 4, and 5 should begin "display.scroll('", with only one bracket rather than the two brackets. The text of the section is correct; this erratum applies only to the Figure.
Chapter 8
Chapter 9
Chapter 10
Chapter 12
ChapterPageDetailsDatePrint Run
583Errata in text
Paragraph 3 - Third line:
Please strike through the following sentence:
...on the word item and change it to the delay variable. After that, click...

P83, Paragraph 3:
Ignore the first reference to "Click on the word item and change it to the delay variable" in the third sentence; this should not be changed until the last step.

Chapter 585Errata in text
Paragraph 1:
change it into a ≥ (greater than or equal to) symbol
should read
change it into a > (greater than) symbol

691Errata in text
Paragraph 3:
click on the [basic.showString("Hello, World!")] block
should read
click on the [basic.showString("Hello!")] block

6121Errata in text
Page 121, Paragraph 3:
"greater than or equal to 0"
should read
"greater than 0"

Page 121, Paragraph 4:
"greater than or equal to 0"
should read
"greater than 0"

Page 121, Paragraph 9:
On Line 28 change "< 0 to > 4" to "> 0 to < 4"

7137Errata in text
Paragraph 5:
Opening sentence should read
As an experiment, try adding this third if statement to the start
of your program directly below while True:, picking a different
image to display, and changing the other two if statements to read
elif (else-if).

7138Errata in text
Paragraph 5:
The let instruction
should read
This second line

7144Errata in text
Paragraph 2:
The line from microbit import *
should not be indented as printed,
but should line up with the while True:
line beneath it

10201Errata in text
Paragraph 1:
The following two sections describe the SPI and IU+00B2C buses
should read
The following three sections describe the SPI, IU+00B2C, and UART buses