2016-04-07 22:34:52 +02:00
# micro:bit target for PXT
2016-03-10 23:21:48 +01:00
2019-05-07 17:07:08 +02:00
[![Build Status ](https://travis-ci.org/microsoft/pxt-microbit.svg?branch=master )](https://travis-ci.org/microsoft/pxt-microbit)
2016-05-11 06:43:12 +02:00
2018-11-21 17:36:32 +01:00
pxt-microbit is a [Microsoft Programming Experience Toolkit (PXT) ](https://github.com/Microsoft/pxt ) target that allows you to program a [BBC micro:bit ](https://microbit.org/ ).
2019-07-25 17:34:18 +02:00
* pxt-microbit ``v2.*`` requires pxt v5.x, which is currently in the [master branch of pxt ](https://github.com/Microsoft/pxt/tree/master ).
* pxt-microbit ``v1.*`` requires pxt v4.4, which is currently in the [stable4.4 branch of pxt ](https://github.com/Microsoft/pxt/tree/stable4.4 ).
2018-11-21 17:36:32 +01:00
* pxt-microbit ``v0.*`` is in the [v0 branch of this repository ](https://github.com/microsoft/pxt-microbit/tree/v0 )
2018-08-30 22:39:43 +02:00
2018-11-13 00:32:19 +01:00
* [Try it live ](https://makecode.microbit.org/ )
2016-03-11 06:11:16 +01:00
2016-12-07 06:51:51 +01:00
## Issue tracking
2018-02-15 18:33:35 +01:00
Please add an issue if you discover an (unreported) bug.
2016-12-07 06:51:51 +01:00
2018-11-21 17:36:32 +01:00
## Developing new extensions
Authoring and testing of new extensions can be done directly from the web editor. See [our documentation ](https://makecode.com/blog/github-packages ) on how to get started. If you want to run the editor locally, keep reading.
2016-05-19 19:34:24 +02:00
## Local server
2018-11-21 17:36:32 +01:00
The local server lets you to run the editor and serve the documentation from your own computer. It is meant for a single developer used and not designed to serve the editor to a large amount of users.
### Developer Setup
2016-07-27 22:15:30 +02:00
2018-11-21 17:36:32 +01:00
This is the typical setup used by the MakeCode team to work on the microbit.
2016-03-10 23:26:59 +01:00
2018-08-30 22:39:43 +02:00
1. Install [Node.js ](https://nodejs.org/ ) 8.9.4 or higher.
2018-11-21 17:36:32 +01:00
2. Install [Docker ](https://www.docker.com/get-started ) if you plan to build ``.cpp`` files.
2018-08-30 22:39:43 +02:00
3. Clone the pxt repository.
2016-05-27 06:38:11 +02:00
```
2018-02-28 01:02:58 +01:00
git clone https://github.com/microsoft/pxt
cd pxt
2016-05-27 06:38:11 +02:00
```
2018-08-30 22:39:43 +02:00
4. Install the dependencies of pxt and build it
2016-05-19 19:34:24 +02:00
```
2018-02-28 01:02:58 +01:00
npm install
2018-08-30 22:39:43 +02:00
npm run build
cd ..
2016-05-19 19:34:24 +02:00
```
2018-10-05 20:09:08 +02:00
5. Clone the pxt-common-packages repository
```
git clone https://github.com/microsoft/pxt-common-packages
cd pxt-common-packages
npm install
cd ..
```
2018-11-21 17:36:32 +01:00
6. Clone this repository.
2018-02-24 02:20:31 +01:00
```
2018-11-21 17:36:32 +01:00
git clone https://github.com/microsoft/pxt-microbit
2018-02-28 01:02:58 +01:00
cd pxt-microbit
2018-02-24 02:20:31 +01:00
```
2018-10-05 20:09:08 +02:00
7. Install the PXT command line (add `sudo` for Mac/Linux shells).
2018-02-24 02:20:31 +01:00
```
2018-02-28 01:02:58 +01:00
npm install -g pxt
2018-02-24 02:20:31 +01:00
```
2018-10-05 20:09:08 +02:00
8. Install the pxt-microbit dependencies.
2018-02-24 02:20:31 +01:00
```
npm install
```
2018-12-09 20:07:37 +01:00
8. Link pxt-microbit back to base pxt repo (add `sudo` for Mac/Linux shells).
This step is only required if you intend to make changes to pxt and/or
pxt-common-packages repos. If all you want is serve a local Makecode, you can skip
this step.
2018-02-24 02:20:31 +01:00
```
2018-02-28 01:02:58 +01:00
npm link ../pxt
2018-10-05 20:09:08 +02:00
npm link ../pxt-common-packages
2018-02-24 02:20:31 +01:00
```
2018-02-28 01:02:58 +01:00
Note the above command assumes the folder structure of
2018-02-24 02:20:31 +01:00
```
2018-02-28 01:02:58 +01:00
makecode
|
2018-10-05 20:09:08 +02:00
----------------------------------
| | |
pxt pxt-common-packages pxt-microbit
2018-02-28 01:02:58 +01:00
```
### Running
2018-08-30 22:39:43 +02:00
Run this command from inside pxt-microbit to open a local web server
2018-02-28 01:02:58 +01:00
```
2018-08-30 22:39:43 +02:00
pxt serve
2018-02-24 02:20:31 +01:00
```
2018-02-28 01:02:58 +01:00
If the local server opens in the wrong browser, make sure to copy the URL containing the local token.
Otherwise, the editor will not be able to load the projects.
2016-07-28 12:47:45 +02:00
2018-08-30 22:39:43 +02:00
If you need to modify the `.cpp` files (and have installed yotta), enable yotta compilation using the `--localbuild` flag:
2018-02-24 02:20:31 +01:00
```
2018-11-21 17:36:32 +01:00
pxt serve --local
```
If you want to speed up the build, you can use the ``rebundle`` option, which skips building and simply refreshes the target information
```
pxt serve --rebundle
```
### Cleaning
Sometimes, your built folder might be in a bad state, clean it and try again.
```
pxt clean
2018-02-24 02:20:31 +01:00
```
2018-02-28 01:02:58 +01:00
### Updates
2018-10-05 20:09:08 +02:00
Make sure to pull changes from all repos regularly. More instructions are at https://github.com/Microsoft/pxt#running-a-target-from-localhost
2018-02-28 01:02:58 +01:00
2017-07-18 20:05:28 +02:00
## Repos
2017-10-16 07:15:43 +02:00
The pxt-microbit target depends on several other repos. The main ones are:
2017-07-18 20:05:28 +02:00
- https://github.com/Microsoft/pxt, the PXT framework
2018-11-14 16:54:11 +01:00
- https://github.com/Microsoft/pxt-common-packages, common APIs accross various MakeCode editors
2017-07-18 20:05:28 +02:00
- https://github.com/lancaster-university/microbit, basic wrapper around the DAL
- https://github.com/lancaster-university/microbit-dal
2018-02-24 04:52:11 +01:00
## History
2017-08-02 20:24:33 +02:00
2018-02-24 04:52:11 +01:00
See the [MakeCode blog ](https://makecode.com/blog ).
2017-07-18 20:05:28 +02:00
2016-06-21 22:17:42 +02:00
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct ](https://opensource.microsoft.com/codeofconduct/ ). For more information see the [Code of Conduct FAQ ](https://opensource.microsoft.com/codeofconduct/faq/ ) or contact [opencode@microsoft.com ](mailto:opencode@microsoft.com ) with any additional questions or comments.
2019-05-02 19:23:22 +02:00
## Trademarks
MICROSOFT, the Microsoft Logo, and MAKECODE are registered trademarks of Microsoft Corporation. They can only be used for the purposes described in and in accordance with Microsoft’ s Trademark and Brand guidelines published at https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general.aspx. If the use is not covered in Microsoft’ s published guidelines or you are not sure, please consult your legal counsel or MakeCode team (makecode@microsoft.com).