Skip to content

Commit

Permalink
mb7.0.12
Browse files Browse the repository at this point in the history
  • Loading branch information
Amerlander committed Jun 24, 2024
1 parent d964a88 commit b1af682
Show file tree
Hide file tree
Showing 1,143 changed files with 37,057 additions and 24,475 deletions.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

Expand All @@ -20,6 +23,11 @@ A clear and concise description of what you expected to happen.
**Screenshots**
Add screenshots to help explain your problem. You can copy paste the screenshot in the github report. The .gif screen recording is very useful as well.

**micro:bit version (please complete the following information):**

You can find this information in the lower right hand corner of the back of micro:bit (the side that says BBC micro:bit).
- Which version of the micro:bit is this relevant to [ EG V1.3, V1.5, V2.0, or specify it's not hardware related ]

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
Expand Down
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/design-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Design Request
about: 'Describe a design or art need '
title: ''
labels: design
assignees: soniakandah, unthinkmedia, BeckHaru

---

Describe your design or art need by answering the questions below:

## What are the requirements for the project?

## Is there a deadline or date this is needed by?

## Please share any existing references, screenshots, links, etc. here that will help us better understand your requirements

## Optional Additional Questions:

### Who are the stakeholders that need to sign off on this design? Tag them here.

### What audience is this request for?

### What does success look like?

### How will we measure if this is successful or not?
3 changes: 3 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

Expand Down
11 changes: 4 additions & 7 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ on:
schedule:
- cron: '0 19 * * 0'

permissions:
security-events: write

jobs:
CodeQL-Build:

Expand All @@ -17,7 +14,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@main
uses: actions/checkout@v2
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
Expand All @@ -30,14 +27,14 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v2
with:
languages: javascript

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -51,4 +48,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v2
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ electron-out
hexcache
build
crowdinstats.csv
libs/*/_locales/*.json
.pxt/

*.user
Expand Down
90 changes: 75 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
# calliope target for PXT
# micro:bit target for PXT

[![Build Status](https://travis-ci.org/microsoft/pxt-microbit.svg?branch=master)](https://travis-ci.org/microsoft/pxt-microbit) ![pxt-testghpkgs](https://github.com/microsoft/pxt-microbit/workflows/pxt-testghpkgs/badge.svg)

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/).

pxt-calliope is a [Microsoft Programming Experience Toolkit (PXT)](https://github.com/Microsoft/pxt) target that allows you to program a [Calliope mini](https://calliope.cc/en).
* pxt-microbit **beta**, ``v3.0.*`` requires
* [pxt-microbit#stable3.0](https://github.com/Microsoft/pxt-microbit/tree/stable3.0)
* [pxt#stable6.0](https://github.com/Microsoft/pxt/tree/stable6.0).
* [pxt-common-packages#stable6.0](https://github.com/Microsoft/pxt-common-packages/tree/stable7.0).
* pxt-microbit ``v2.0.*``, branch ``stable2.0``, requires [pxt v5.15.\*](https://github.com/microsoft/pxt/tree/stable5.15). It is the servicing branch for live editor.
* 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).
* pxt-microbit ``v0.*`` is in the [v0 branch of this repository](https://github.com/microsoft/pxt-microbit/tree/v0)


* [Try it live](https://makecode.calliope.cc/)
* [Try it live](https://makecode.microbit.org/)

## Issue tracking

Expand All @@ -22,14 +29,14 @@ The local server lets you to run the editor and serve the documentation from you
1. Install [Node.js](https://nodejs.org/) 8.9.4 or higher.
2. Clone this repository.
```
git clone https://github.com/microsoft/pxt-calliope
cd pxt-calliope
git clone https://github.com/microsoft/pxt-microbit
cd pxt-microbit
```
3. Install the PXT command line (add `sudo` for Mac/Linux shells).
```
npm install -g pxt
```
4. Install the pxt-calliope dependencies.
4. Install the pxt-microbit dependencies.
```
npm install
```
Expand Down Expand Up @@ -58,27 +65,28 @@ cd ..
git clone https://github.com/microsoft/pxt-common-packages
cd pxt-common-packages
npm install
cd ..
```

6. Link pxt-common-packages to pxt
```
npm link ../pxt
cd ..
```

7. Clone this repository.
```
git clone https://github.com/microsoft/pxt-calliope
cd pxt-calliope
git clone https://github.com/microsoft/pxt-microbit
cd pxt-microbit
```
8. Install the PXT command line (add `sudo` for Mac/Linux shells).
```
npm install -g pxt
```
9. Install the pxt-calliope dependencies.
9. Install the pxt-microbit dependencies.
```
npm install
```
10. Link pxt-calliope back to base pxt repo (add `sudo` for Mac/Linux shells).
10. 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.
Expand All @@ -92,12 +100,12 @@ Note the above command assumes the folder structure of
|
----------------------------------
| | |
pxt pxt-common-packages pxt-calliope
pxt pxt-common-packages pxt-microbit
```

### Running

Run this command from inside pxt-calliope to open a local web server
Run this command from inside pxt-microbit to open a local web server
```
pxt serve
```
Expand All @@ -121,12 +129,64 @@ Sometimes, your built folder might be in a bad state, clean it and try again.
pxt clean
```


### Building with CODAL locally

The following commands force a local build using CODAL.

```
pxt buildtarget --local
```

To disable docker, run

```
export PXT_NODOCKER=1
```

If you are also modifiying CODAL, consider running ``pxt clean`` to ensure the proper branch is picked up.

### Modifying DAL/CODAL locally

* follow instructions above until `pxt serve`
* open editor on localhost and create a project
* do `export PXT_FORCE_LOCAL=1 PXT_RUNTIME_DEV=1 PXT_ASMDEBUG=1`; you can add `PXT_NODOCKER=1`; `pxt help` has help on these
* find project folder under `pxt-microbit/projects`, typically `pxt-microbit/projects/Untitled-42`
* if you're going to modify `.cpp` files in PXT, replace `"core": "*"` in `pxt.json` with `"core": "file:../../libs/core"`;
similarly `"radio": "file:../../libs/radio"` and `"microphone": "file:../../libs/microphone"`
* you can edit `main.ts` to change the PXT side of the program; you can also edit it from the localhost editor;
note that `Download` in the localhost editor will produce different binary than command line, as it builds in the cloud
and uses tagged version of CODAL
* in that folder run `pxt build` - this will clone codal somewhere under `built/` (depends on build engine and docker)
* there can be an issue with exporting the variables i.e. PXT_FORCE, so including them in the build command can help solve issues `sudo PXT_NODOCKER=1 PXT_ASMDEBUG=1 PXT_RUNTIME_DEV=1 PXT_DEBUG=1 PXT_FORCE_LOCAL=1 PXT_COMPILE_SWITCHES=csv---mbcodal pxt build`
* if the target is not building, delete files in `hexcache` found in `pxt-microbit/built/hexcache` to force local build
* the built hex can be found in `pxt-microbit/projects/<your project name>/built` named `binary.hex`
* similarly, you can run `pxt deploy` (or just `pxt` which is the same) - it will build and copy to `MICROBIT` drive
* assuming the build folder is under `built/codal`, go to `built/codal/libraries` and run `code *`
* in git tab, checkout appropriate branches (they are all in detached head state to the way we tag releases)
* modify files, run `pxt`, see effects
* you can also run `pxt gdb` to debug; this requires `openocd`
* other commands using `openocd` are `pxt dmesg` which dumps `DMESG(...)` buffer and `pxt heap` which can be used to visualize PXT heap
(and CODAL's one to some extent)

### Updating dal.d.ts

```
cd libs/blocksprj
rm -rf built
PXT_FORCE_LOCAL=1 PXT_COMPILE_SWITCHES=csv---mbcodal pxt build
PXT_FORCE_LOCAL=1 PXT_COMPILE_SWITCHES=csv---mbcodal pxt builddaldts
mv dal.d.ts ../core
```

### Updates

Make sure to pull changes from all repos regularly. More instructions are at https://github.com/Microsoft/pxt#running-a-target-from-localhost

## Update playlists in markdown

To add a new playlist, add an entry in ``/playlists.json``, and regenerate the markdown (see paragraph below). You'll now have a new markdown gallery file listing the videos which you can reference in ``/targetconfig.json``.

Get a Google API key and store it in the ``GOOGLE_API_KEY`` environment variables (turn on data from the app).

```
Expand All @@ -135,7 +195,7 @@ pxt downloadplaylists

## Repos

The pxt-calliope target depends on several other repos. The main ones are:
The pxt-microbit target depends on several other repos. The main ones are:
- https://github.com/Microsoft/pxt, the PXT framework
- https://github.com/Microsoft/pxt-common-packages, common APIs accross various MakeCode editors
- https://github.com/lancaster-university/microbit, basic wrapper around the DAL
Expand Down
12 changes: 5 additions & 7 deletions compiler/combiner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ namespace ts.pxtc.extension {
pxtc.compilerHooks.postBinary = (program: ts.Program, opts: CompileOptions, res: CompileResult) => {
if (!opts.target.isNative)
return
const minidal = res.outfiles["minidal-binary.hex"]
const minicodal = res.outfiles["minicodal-binary.hex"]
if (!minidal || !minicodal)
const mbdal = res.outfiles["mbdal-binary.hex"]
const mbcodal = res.outfiles["mbcodal-binary.hex"]
if (!mbdal || !mbcodal)
return

let outp = ""

wrapHex(minidal, 0x00, [0x99, 0x00, 0xc0, 0xde])
wrapHex(minicodal, 0x0D, [0x99, 0x03, 0xc0, 0xde], true)
wrapHex(mbdal, 0x00, [0x99, 0x00, 0xc0, 0xde])
wrapHex(mbcodal, 0x0D, [0x99, 0x03, 0xc0, 0xde], true)

outp += ":00000001FF\n"

Expand Down Expand Up @@ -68,7 +68,6 @@ namespace ts.pxtc.extension {

switch (parsed.type) {
case 0x00:

const parsed2 = parsed.len <= 16 && lines[i + 1] ?
ts.pxtc.hexfile.parseHexRecord(lines[i + 1])
: null
Expand All @@ -80,7 +79,6 @@ namespace ts.pxtc.extension {
parsed.len += parsed2.len
i++
}

addData([parsed.addr >> 8, parsed.addr & 0xff, dataType]
.concat(parsed.data))
break
Expand Down
Loading

0 comments on commit b1af682

Please sign in to comment.