2016-09-14 17:14:04 +02:00
![](/static/mb/device/pano.jpg)
2016-03-29 01:35:51 +02:00
# About
2017-09-07 22:42:08 +02:00
## @description A Blocks / Javascript code editor for the micro:bit, a pocket-size computer with 5x5 display, sensors and Bluetooth.
2016-08-17 18:44:15 +02:00
2017-03-08 14:01:11 +01:00
The [BBC micro:bit ](https://microbit.org ) is a [pocket-size computer ](/device ) with a 5x5 display of 25 LEDs, Bluetooth and sensors that can be programmed by anyone. The BBC micro:bit was made possible by many [partners ](https://www.microbit.co.uk/partners ).
2016-03-29 01:35:51 +02:00
2016-05-18 20:28:15 +02:00
The micro:bit provides an easy and fun introduction to programming and making – switch on, program it to do something fun – wear it, customize it.
2016-03-29 01:35:51 +02:00
Just like Arduino, the micro:bit can be connected to and interact with sensors, displays, and other devices.
2016-09-14 17:14:04 +02:00
* [Read the docs ](/docs )
## [Hardware: The Device](/device)
2016-06-15 20:04:06 +02:00
2016-09-14 17:14:04 +02:00
The BBC micro:bit is packaged with sensors, radio and other goodies. Learn about the [hardware components ](/device ) of the micro:bit to make the most of it!
2016-06-15 20:04:06 +02:00
2017-09-07 22:42:08 +02:00
## ~ hint
2017-03-08 14:01:11 +01:00
**Looking to buy a micro:bit?** See the [list of resellers ](https://microbit.org/resellers ).
2017-09-07 22:42:08 +02:00
## ~
2017-03-08 14:01:11 +01:00
2016-09-14 17:14:04 +02:00
## Programming: [Blocks](/blocks) or [JavaScript](/javascript)
2016-03-29 01:35:51 +02:00
2016-09-14 17:14:04 +02:00
You can program the micro:bit using [Blocks ](/blocks ) or [JavaScript ](/javascript ) in your web browser via the [micro:bit APIs ](/reference ):
2016-03-29 01:35:51 +02:00
2016-09-14 17:14:04 +02:00
```block
2016-07-22 00:32:59 +02:00
input.onButtonPressed(Button.A, () => {
basic.showString("Hi!");
})
2016-03-29 01:35:51 +02:00
```
2016-09-14 17:14:04 +02:00
```typescript
input.onButtonPressed(Button.A, () => {
basic.showString("Hi!");
})
```
The editor work in [most modern browsers ](/browsers ), work [offline ](/offline ) once loaded and do not require any installation.
2016-03-29 01:35:51 +02:00
2016-09-14 17:14:04 +02:00
## [Compile and Flash: Your Program!](/device/usb)
2016-03-29 01:35:51 +02:00
2016-07-14 21:09:40 +02:00
When you have your code ready, you connect your micro:bit to a computer via a USB cable, so it appears as a mounted drive (named MICROBIT).
2016-03-29 01:35:51 +02:00
2016-07-14 21:09:40 +02:00
Compilation to ARM thumb machine code from [Blocks ](/blocks ) or [JavaScript ](/javascript ) happens in the browser. You save the ARM binary
program to a file, which you then copy to the micro:bit drive, which flashes the micro:bit device with the new program.
2016-03-29 01:35:51 +02:00
## Simulator: Test Your Code
2016-06-13 20:49:07 +02:00
2016-07-14 21:09:40 +02:00
You can run your code using the micro:bit simulator, all within the confines of a web browser.
2016-03-29 01:35:51 +02:00
The simulator has support for the LED screen, buttons, as well as compass, accelerometer, and digital I/O pins.
2016-09-14 17:14:04 +02:00
```sim
basic.forever(() => {
basic.showString("Hi!");
})
input.onButtonPressed(Button.A, () => {
led.stopAnimation();
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .`);
});
input.onButtonPressed(Button.B, () => {
led.stopAnimation();
basic.showLeds(`
. # . # .
# . # . #
# . . . #
. # . # .
. . # . .`);
});
```
2017-06-25 04:50:00 +02:00
## Learn!
We have tons of [projects ](/projects ), [examples ](/examples ) and [courses ](/courses ) to get your started!
2016-03-29 01:35:51 +02:00
## C++ Runtime
2016-07-14 21:09:40 +02:00
The [C++ micro:bit runtime ](http://lancaster-university.github.io/microbit-docs/ ), created at [Lancaster University ](http://www.lancaster.ac.uk/ ), provides access to the hardware functions of the micro:bit,
2016-03-29 01:35:51 +02:00
as well as a set of helper functions (such as displaying a number/image/string on the LED screen).
2016-06-09 20:10:01 +02:00
2016-06-15 13:55:19 +02:00
The [micro:bit library ](/reference ) mirrors the functions of the C++ library.
2016-03-29 08:18:21 +02:00
When code is compiled to ARM machine code, the calls to JavaScript micro:bit functions are replaced with calls to the corresponding C++ functions.
2016-06-09 20:10:01 +02:00
2016-09-14 17:14:04 +02:00
## [Command Line Tools](/cli)
2017-07-24 22:39:27 +02:00
Looking to use @homeurl @ in your favorite editor? Install the [command line tools ](/cli ) and get rolling!
2016-09-14 17:14:04 +02:00
2018-09-26 18:35:56 +02:00
## [Extensions](/extensions)
2016-09-14 17:14:04 +02:00
2018-09-26 18:35:56 +02:00
Create, edit and distribute your own blocks and JavaScript using [extensions ](/extensions ). Extensions are hosted on GitHub and may be written using C++, JavaScript and/or ARM thumb.
2016-09-14 17:14:04 +02:00
## [Open Source](/open-source)
2016-06-09 20:10:01 +02:00
2016-07-14 21:09:40 +02:00
The code for the micro:bit is [open source ](/open-source ) on GitHub. Contributors are welcome!
2018-09-14 17:50:03 +02:00
```package
radio
```