diff --git a/docs/static/devices/mini1.png b/docs/static/devices/mini1.png index edc7e005b..8bb4d5185 100644 Binary files a/docs/static/devices/mini1.png and b/docs/static/devices/mini1.png differ diff --git a/docs/static/devices/mini2.png b/docs/static/devices/mini2.png index c068cf2b9..17dd1bae2 100644 Binary files a/docs/static/devices/mini2.png and b/docs/static/devices/mini2.png differ diff --git a/docs/static/download/connect-microbit.gif b/docs/static/download/connect-microbit.gif index 531d5c31f..0661e859e 100644 Binary files a/docs/static/download/connect-microbit.gif and b/docs/static/download/connect-microbit.gif differ diff --git a/docs/static/download/connected.png b/docs/static/download/connected.png index c8adc5d9f..d8d388b1c 100644 Binary files a/docs/static/download/connected.png and b/docs/static/download/connected.png differ diff --git a/docs/static/download/device-forgotten.gif b/docs/static/download/device-forgotten.gif index dd759c7e3..3a86d53f0 100644 Binary files a/docs/static/download/device-forgotten.gif and b/docs/static/download/device-forgotten.gif differ diff --git a/docs/static/download/firmware.png b/docs/static/download/firmware.png index c2280fb2c..d0636f1dd 100644 Binary files a/docs/static/download/firmware.png and b/docs/static/download/firmware.png differ diff --git a/docs/static/download/incompatible.png b/docs/static/download/incompatible.png index 1ae40aeea..0ec51309b 100644 Binary files a/docs/static/download/incompatible.png and b/docs/static/download/incompatible.png differ diff --git a/docs/static/download/pair-browser.png b/docs/static/download/pair-browser.png index 451a7b795..6d37f5303 100644 Binary files a/docs/static/download/pair-browser.png and b/docs/static/download/pair-browser.png differ diff --git a/docs/static/download/pair.png b/docs/static/download/pair.png index 82d05d72d..afc49f926 100644 Binary files a/docs/static/download/pair.png and b/docs/static/download/pair.png differ diff --git a/docs/static/download/selecting-microbit.png b/docs/static/download/selecting-microbit.png new file mode 100644 index 000000000..b6f95a0be Binary files /dev/null and b/docs/static/download/selecting-microbit.png differ diff --git a/docs/static/download/successfully-paired.png b/docs/static/download/successfully-paired.png index 87ce2f19a..dd22ca7a2 100644 Binary files a/docs/static/download/successfully-paired.png and b/docs/static/download/successfully-paired.png differ diff --git a/docs/static/download/transfer.png b/docs/static/download/transfer.png index 9f18101af..f3e4f811e 100644 Binary files a/docs/static/download/transfer.png and b/docs/static/download/transfer.png differ diff --git a/editor/flash.ts b/editor/flash.ts index 534ce3beb..65230fd76 100644 --- a/editor/flash.ts +++ b/editor/flash.ts @@ -108,7 +108,7 @@ class DAPWrapper implements pxt.packetio.PacketIOWrapper { this.allocDAP(); } - icon = "xicon microbit"; + icon = "icon usb"; private pendingSerial: Uint8Array private lastPendingSerial: number diff --git a/libs/audio-recording/pxt.json b/libs/audio-recording/pxt.json index 1d23f2e5b..b38cb7bcd 100644 --- a/libs/audio-recording/pxt.json +++ b/libs/audio-recording/pxt.json @@ -11,5 +11,8 @@ "recording.cpp", "shims.d.ts" ], - "public": true + "public": true, + "disablesVariants": [ + "minidal" + ] } \ No newline at end of file diff --git a/libs/core-mini-codal/pxt.json b/libs/core-mini-codal/pxt.json index 13703f94a..80d01a987 100644 --- a/libs/core-mini-codal/pxt.json +++ b/libs/core-mini-codal/pxt.json @@ -17,42 +17,5 @@ "soundexpressions.ts", "playable.ts", "rgbled.ts" - ], - "yotta": { - "optionalConfig": { - "microbit-dal": { - "bluetooth": { - "open": 0, - "security_level": "SECURITY_MODE_ENCRYPTION_NO_MITM", - "whitelist": 1 - } - } - }, - "userConfigs": [ - { - "description": "Bluetooth: No pairing required (Calliope mini 1 and Calliope mini 2 behaviour)", - "config": { - "microbit-dal": { - "bluetooth": { - "open": 1, - "security_level": null, - "whitelist": 0 - } - } - } - }, - { - "description": "Bluetooth: Paring required (Calliope mini 3 default. Fixes Android 13 bug »GATT ERROR 133«, mini must be already flashed with this option)", - "config": { - "microbit-dal": { - "bluetooth": { - "open": 0, - "security_level": "SECURITY_MODE_ENCRYPTION_NO_MITM", - "whitelist": 1 - } - } - } - } - ] - } + ] } diff --git a/libs/core-mini-dal/pxt.json b/libs/core-mini-dal/pxt.json index c595ef680..61e0986d2 100644 --- a/libs/core-mini-dal/pxt.json +++ b/libs/core-mini-dal/pxt.json @@ -13,42 +13,5 @@ "motors.ts", "parts/dcmotor.svg", "input.cpp" - ], - "yotta": { - "optionalConfig": { - "microbit-dal": { - "bluetooth": { - "open": 1, - "security_level": null, - "whitelist": 0 - } - } - }, - "userConfigs": [ - { - "description": "Bluetooth: No pairing required (default)", - "config": { - "microbit-dal": { - "bluetooth": { - "open": 1, - "security_level": null, - "whitelist": 0 - } - } - } - }, - { - "description": "Bluetooth: Paring required (fixes Android 13 »GATT ERROR 133«-Bug, mini must be already flashed with this option)", - "config": { - "microbit-dal": { - "bluetooth": { - "open": 0, - "security_level": "SECURITY_MODE_ENCRYPTION_NO_MITM", - "whitelist": 1 - } - } - } - } - ] - } + ] } \ No newline at end of file diff --git a/libs/core-mini/pxt.json b/libs/core-mini/pxt.json index 81af8fb11..1895a3d60 100644 --- a/libs/core-mini/pxt.json +++ b/libs/core-mini/pxt.json @@ -11,5 +11,42 @@ "storage.ts", "rgbled.cpp", "rgbled.ts" - ] + ], + "yotta": { + "optionalConfig": { + "microbit-dal": { + "bluetooth": { + "open": 1, + "security_level": null, + "whitelist": 0 + } + } + }, + "userConfigs": [ + { + "description": "Bluetooth: No pairing required (default)", + "config": { + "microbit-dal": { + "bluetooth": { + "open": 1, + "security_level": null, + "whitelist": 0 + } + } + } + }, + { + "description": "Bluetooth: Paring required (Android 13 »GATT ERROR 133«-Bug)", + "config": { + "microbit-dal": { + "bluetooth": { + "open": 0, + "security_level": "SECURITY_MODE_ENCRYPTION_NO_MITM", + "whitelist": 1 + } + } + } + } + ] + } } diff --git a/libs/core/enums.d.ts b/libs/core/enums.d.ts index bb206f8c7..e8b7efeea 100644 --- a/libs/core/enums.d.ts +++ b/libs/core/enums.d.ts @@ -445,43 +445,52 @@ declare namespace input { P2 = 102, // MICROBIT_ID_IO_P2 P3 = 103, // MICROBIT_ID_IO_P3 - //% blockHidden=true C4 = 104, // MICROBIT_ID_IO_P4 + //% blockHidden=true P4 = 104, // MICROBIT_ID_IO_P4 C5 = 105, // MICROBIT_ID_IO_P5 + //% blockHidden=true P5 = 105, // MICROBIT_ID_IO_P5 - //% blockHidden=true C6 = 106, // MICROBIT_ID_IO_P6 + //% blockHidden=true P6 = 106, // MICROBIT_ID_IO_P6 - //% blockHidden=true C7 = 107, // MICROBIT_ID_IO_P7 + //% blockHidden=true P7 = 107, // MICROBIT_ID_IO_P7 - //% blockHidden=true C8 = 108, // MICROBIT_ID_IO_P8 + //% blockHidden=true P8 = 108, // MICROBIT_ID_IO_P8 - //% blockHidden=true C9 = 109, // MICROBIT_ID_IO_P9 + //% blockHidden=true P9 = 109, // MICROBIT_ID_IO_P9 - //% blockHidden=true C10 = 110, // MICROBIT_ID_IO_P10 + //% blockHidden=true P10 = 110, // MICROBIT_ID_IO_P10 - //% blockHidden=true + C11 = 111, // MICROBIT_ID_IO_P11 + //% blockHidden=true P11 = 111, // MICROBIT_ID_IO_P11 - //% blockHidden=true C12 = 112, // MICROBIT_ID_IO_P12 + //% blockHidden=true P12 = 112, // MICROBIT_ID_IO_P12 + C13 = 113, // MICROBIT_ID_IO_P13 + C14 = 114, // MICROBIT_ID_IO_P14 + C15 = 115, // MICROBIT_ID_IO_P15 + + //% blockHidden=true P13 = 113, // MICROBIT_ID_IO_P13 + //% blockHidden=true P14 = 114, // MICROBIT_ID_IO_P14 + //% blockHidden=true P15 = 115, // MICROBIT_ID_IO_P15 //% blockHidden=true diff --git a/libs/core/pins.cpp b/libs/core/pins.cpp index 91fdc4499..d0dc77cee 100644 --- a/libs/core/pins.cpp +++ b/libs/core/pins.cpp @@ -13,43 +13,52 @@ enum class DigitalPin { P2 = MICROBIT_ID_IO_P2, // edge connector 2 P3 = MICROBIT_ID_IO_P3, // edge connector 3 - //% blockHidden=true C4 = MICROBIT_ID_IO_P4, // -> P4 + //% blockHidden=true P4 = MICROBIT_ID_IO_P4, // LED matrix COLUMN 1 C5 = MICROBIT_ID_IO_P5, // -> P5 + //% blockHidden=true P5 = MICROBIT_ID_IO_P5, // LED matrix COLUMN 2 - //% blockHidden=true C6 = MICROBIT_ID_IO_P6, // -> P6 + //% blockHidden=true P6 = MICROBIT_ID_IO_P6, // LED matrix COLUMN 3 - //% blockHidden=true C7 = MICROBIT_ID_IO_P7, // -> P7 + //% blockHidden=true P7 = MICROBIT_ID_IO_P7, // LED matrix COLUMN 4 - //% blockHidden=true C8 = MICROBIT_ID_IO_P8, // -> P8 + //% blockHidden=true P8 = MICROBIT_ID_IO_P8, // LED matrix COLUMN 5 - //% blockHidden=true C9 = MICROBIT_ID_IO_P9, // -> P9 + //% blockHidden=true P9 = MICROBIT_ID_IO_P9, // LED matrix COLUMN 6 - //% blockHidden=true C10 = MICROBIT_ID_IO_P10, // -> P10 + //% blockHidden=true P10 = MICROBIT_ID_IO_P10, // LED matrix COLUMN 7 - //% blockHidden=true + C11 = MICROBIT_ID_IO_P11, // -> P11 + //% blockHidden=true P11 = MICROBIT_ID_IO_P11, // LED matrix COLUMN 8 - //% blockHidden=true C12 = MICROBIT_ID_IO_P12, // -> P12 + //% blockHidden=true P12 = MICROBIT_ID_IO_P12, // LED matrix COLUMN 9 + C13 = MICROBIT_ID_IO_P13, // LED matrix ROW 1 + C14 = MICROBIT_ID_IO_P14, // LED matrix ROW 2 + C15 = MICROBIT_ID_IO_P15, // LED matrix ROW 3 + + //% blockHidden=true P13 = MICROBIT_ID_IO_P13, // LED matrix ROW 1 + //% blockHidden=true P14 = MICROBIT_ID_IO_P14, // LED matrix ROW 2 + //% blockHidden=true P15 = MICROBIT_ID_IO_P15, // LED matrix ROW 3 //% blockHidden=true diff --git a/libs/core/touchmode.cpp b/libs/core/touchmode.cpp index 6267515bd..789a9ef42 100644 --- a/libs/core/touchmode.cpp +++ b/libs/core/touchmode.cpp @@ -35,7 +35,6 @@ namespace pins { //% weight=60 //% blockId=device_touch_set_type block="set %name to touch mode %mode" //% advanced=true - //% group="micro:bit (V2)" //% help=pins/touch-set-mode void touchSetMode(TouchTarget name, TouchTargetMode mode) { #if MICROBIT_CODAL diff --git a/libs/datalogger/datalogger.ts b/libs/datalogger/datalogger.ts index ea05d0e25..5e7d6a38e 100644 --- a/libs/datalogger/datalogger.ts +++ b/libs/datalogger/datalogger.ts @@ -64,7 +64,6 @@ namespace datalogger { //% value.shadow=math_number //% column.shadow=datalogger_columnfield //% blockId=dataloggercreatecolumnvalue - //% group="micro:bit (V2)" //% weight=80 help=datalogger/create-cv export function createCV(column: string, value: any): ColumnValue { return new ColumnValue(column, value); @@ -72,7 +71,6 @@ namespace datalogger { //% block="$column" //% blockId=datalogger_columnfield - //% group="micro:bit (V2)" //% blockHidden=true shim=TD_ID //% column.fieldEditor="autocomplete" column.fieldOptions.decompileLiterals=true //% column.fieldOptions.key="dataloggercolumn" @@ -88,7 +86,6 @@ namespace datalogger { //% blockId=dataloggerlogdata //% data.shadow=lists_create_with //% data.defl=dataloggercreatecolumnvalue - //% group="micro:bit (V2)" //% blockHidden=true //% weight=100 export function logData(data: ColumnValue[]): void { @@ -133,7 +130,6 @@ namespace datalogger { //% data10.shadow=dataloggercreatecolumnvalue //% inlineInputMode="variable" //% inlineInputModeLimit=1 - //% group="micro:bit (V2)" //% weight=100 help=datalogger/log export function log( data1: datalogger.ColumnValue, @@ -171,7 +167,6 @@ namespace datalogger { //% blockId=dataloggersetcolumns //% data.shadow=list_create_with //% data.defl=datalogger_columnfield - //% group="micro:bit (V2)" //% blockHidden=true //% weight=70 export function setColumns(cols: string[]): void { @@ -198,7 +193,6 @@ namespace datalogger { //% blockId=dataloggersetcolumntitles //% inlineInputMode="variable" //% inlineInputModeLimit=1 - //% group="micro:bit (V2)" //% weight=70 help=datalogger/set-column-titles //% col1.shadow=datalogger_columnfield //% col2.shadow=datalogger_columnfield @@ -236,7 +230,6 @@ namespace datalogger { */ //% block="delete log||$deleteType" //% blockId=dataloggerdeletelog - //% group="micro:bit (V2)" //% weight=60 help=datalogger/delete-log export function deleteLog(deleteType?: DeleteType): void { init(); @@ -250,7 +243,6 @@ namespace datalogger { */ //% block="on log full" //% blockId="on log full" - //% group="micro:bit (V2)" //% weight=40 help=datalogger/on-log-full export function onLogFull(handler: () => void): void { init(); @@ -264,7 +256,6 @@ namespace datalogger { //% block="set timestamp $format" //% blockId=dataloggertoggleincludetimestamp //% format.defl=FlashLogTimeStampFormat.None - //% group="micro:bit (V2)" //% weight=30 help=datalogger/include-timestamp export function includeTimestamp(format: FlashLogTimeStampFormat): void { init(); diff --git a/libs/flashlog/_locales/flashlog-strings.json b/libs/flashlog/_locales/flashlog-strings.json index 84a82572d..86cfab0ab 100644 --- a/libs/flashlog/_locales/flashlog-strings.json +++ b/libs/flashlog/_locales/flashlog-strings.json @@ -6,6 +6,5 @@ "FlashLogTimeStampFormat.None|block": "none", "FlashLogTimeStampFormat.Seconds|block": "seconds", "flashlog|block": "flashlog", - "{id:category}Flashlog": "Flashlog", - "{id:group}micro:bit (V2)": "micro:bit (V2)" + "{id:category}Flashlog": "Flashlog" } \ No newline at end of file diff --git a/libs/flashlog/flashlog.cpp b/libs/flashlog/flashlog.cpp index f99cd0978..0e242b042 100644 --- a/libs/flashlog/flashlog.cpp +++ b/libs/flashlog/flashlog.cpp @@ -32,7 +32,6 @@ namespace flashlog { //% help=flashlog/begin-row //% parts="flashlog" //% blockGap=8 -//% group="micro:bit (V2)" int beginRow() { #if MICROBIT_CODAL return uBit.log.beginRow(); @@ -47,7 +46,6 @@ int beginRow() { //% help=flashlog/log-data //% parts="flashlog" //% blockGap=8 -//% group="micro:bit (V2)" int logData(String key, String value) { if (NULL == key || NULL == value) return DEVICE_INVALID_PARAMETER; @@ -64,7 +62,6 @@ int logData(String key, String value) { //% help=flashlog/log-string //% parts="flashlog" //% blockGap=8 -//% group="micro:bit (V2)" int logString(String value) { if (NULL == value) return DEVICE_INVALID_PARAMETER; @@ -81,7 +78,6 @@ int logString(String value) { //% help=flashlog/end-row //% parts="flashlog" //% blockGap=8 -//% group="micro:bit (V2)" int endRow() { #if MICROBIT_CODAL return uBit.log.endRow(); @@ -96,7 +92,6 @@ int endRow() { //% help=flashlog/clear //% parts="flashlog" //% blockGap=8 -//% group="micro:bit (V2)" void clear(bool fullErase) { #if MICROBIT_CODAL uBit.log.clear(fullErase); @@ -113,7 +108,6 @@ void clear(bool fullErase) { //% help=flashlog/set-timestamp //% parts="flashlog" //% blockGap=8 -//% group="micro:bit (V2)" void setTimeStamp(FlashLogTimeStampFormat format) { #if MICROBIT_CODAL return uBit.log.setTimeStamp((codal::TimeStampFormat)format); @@ -128,7 +122,6 @@ void setTimeStamp(FlashLogTimeStampFormat format) { //% help=flashlog/set-serial-mirroring //% parts="flashlog" //% blockGap=8 -//% group="micro:bit (V2)" void setSerialMirroring(bool enable) { #if MICROBIT_CODAL return uBit.log.setSerialMirroring(enable); diff --git a/libs/flashlog/pxt.json b/libs/flashlog/pxt.json index 347fd23c5..88b1d02af 100644 --- a/libs/flashlog/pxt.json +++ b/libs/flashlog/pxt.json @@ -16,6 +16,6 @@ "minidal" ], "dependencies": { - "core": "file:../core" + "core": "file:../core", } } \ No newline at end of file diff --git a/libs/flashlog/shims.d.ts b/libs/flashlog/shims.d.ts index 0996d3293..8fa9af5bf 100644 --- a/libs/flashlog/shims.d.ts +++ b/libs/flashlog/shims.d.ts @@ -12,8 +12,7 @@ declare namespace flashlog { **/ //% help=flashlog/begin-row //% parts="flashlog" - //% blockGap=8 - //% group="micro:bit (V2)" shim=flashlog::beginRow + //% blockGap=8 shim=flashlog::beginRow function beginRow(): int32; /** @@ -21,8 +20,7 @@ declare namespace flashlog { **/ //% help=flashlog/log-data //% parts="flashlog" - //% blockGap=8 - //% group="micro:bit (V2)" shim=flashlog::logData + //% blockGap=8 shim=flashlog::logData function logData(key: string, value: string): int32; /** @@ -30,8 +28,7 @@ declare namespace flashlog { **/ //% help=flashlog/log-string //% parts="flashlog" - //% blockGap=8 - //% group="micro:bit (V2)" shim=flashlog::logString + //% blockGap=8 shim=flashlog::logString function logString(value: string): int32; /** @@ -39,8 +36,7 @@ declare namespace flashlog { **/ //% help=flashlog/end-row //% parts="flashlog" - //% blockGap=8 - //% group="micro:bit (V2)" shim=flashlog::endRow + //% blockGap=8 shim=flashlog::endRow function endRow(): int32; /** @@ -48,8 +44,7 @@ declare namespace flashlog { **/ //% help=flashlog/clear //% parts="flashlog" - //% blockGap=8 - //% group="micro:bit (V2)" shim=flashlog::clear + //% blockGap=8 shim=flashlog::clear function clear(fullErase: boolean): void; /** @@ -61,8 +56,7 @@ declare namespace flashlog { */ //% help=flashlog/set-timestamp //% parts="flashlog" - //% blockGap=8 - //% group="micro:bit (V2)" shim=flashlog::setTimeStamp + //% blockGap=8 shim=flashlog::setTimeStamp function setTimeStamp(format: FlashLogTimeStampFormat): void; /** @@ -72,8 +66,7 @@ declare namespace flashlog { */ //% help=flashlog/set-serial-mirroring //% parts="flashlog" - //% blockGap=8 - //% group="micro:bit (V2)" shim=flashlog::setSerialMirroring + //% blockGap=8 shim=flashlog::setSerialMirroring function setSerialMirroring(enable: boolean): void; } diff --git a/libs/motor/_locales/calliope-jsdoc-strings.json b/libs/motor/_locales/calliope-jsdoc-strings.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/libs/motor/_locales/calliope-jsdoc-strings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/libs/motor/_locales/calliope-strings.json b/libs/motor/_locales/calliope-strings.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/libs/motor/_locales/calliope-strings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/pxtarget.json b/pxtarget.json index 5d1cdf853..9657e6fe8 100644 --- a/pxtarget.json +++ b/pxtarget.json @@ -9,7 +9,6 @@ "libs/core", "libs/core-mini", "libs/core-mini-dal", - "libs/core-mini-codal", "libs/v1", "libs/v2", "libs/radio", @@ -18,11 +17,7 @@ "libs/servo", "libs/radio-broadcast", "libs/microphone", - "libs/settings", - "libs/flashlog", - "libs/datalogger", - "libs/color", - "libs/audio-recording" + "libs/color" ], "cloud": { "workspace": false, @@ -41,6 +36,7 @@ "isNative": false, "useUF2": false, "hasHex": true, + "webUSB": true, "deployDrives": "MINI", "driveName": "MINI", "hexMimeType": "application/x-microbit-hex", @@ -140,7 +136,6 @@ "vid": "0x1366", "pid": "0x1025" }], - "webUSB": true, "useNewFunctions": true }, "compileService": { @@ -154,7 +149,8 @@ "variants": { "minidal": { "compile": { - "useUF2": false + "useUF2": false, + "webUSB": false }, "compileService": { } @@ -164,14 +160,15 @@ "flashCodeAlign": 4096, "flashUsableEnd": 487424, "flashEnd": 524288, - "useUF2": false + "useUF2": false, + "webUSB": true }, "compileService": { "buildEngine": "codal", "codalTarget": { "name": "codal-microbit-v2", "url": "https://github.com/calliope-edu/codal-microbit-v2", - "branch": "v0.2.57-calliope-1.4", + "branch": "v0.2.57-calliope-1.5", "type": "git" }, "codalBinary": "MICROBIT", @@ -369,7 +366,7 @@ "appLogo": "./static/icons/apple-touch-icon.png", "organization": "Microsoft MakeCode", "organizationUrl": "https://makecode.com/", - "organizationLogo": "./static/Microsoft-logo_rgb_c-gray-square.png", + "organizationLogo": "./static/Logo_Calliope_Woman.svg", "organizationWideLogo": "./static/Microsoft-logo_rgb_c-white.png", "homeScreenHero": { "imageUrl": "./static/hero.jpg", @@ -544,8 +541,8 @@ "downloadDialogTheme": { "webUSBDeviceNames": ["Calliope mini CMSIS-DAP", "DAPLink CMSIS-DAP", "Calliope mini", "J-Link"], "minimumFirmwareVersion": "0249", - "deviceIcon": "xicon microbit", - "deviceSuccessIcon": "xicon microbit-check", + "deviceIcon": "usb", + "deviceSuccessIcon": "check", "downloadMenuHelpURL" : "/device/usb", "downloadHelpURL" : "/device/usb", diff --git a/targetconfig.json b/targetconfig.json index e30252d2e..f7162530b 100644 --- a/targetconfig.json +++ b/targetconfig.json @@ -208,6 +208,7 @@ "calliope-edu/pxt-jacdac/wifi", "calliope-edu/pxt-jacdac/wind-direction", "calliope-edu/pxt-jacdac/wind-speed", + "calliope-net/i2c-liste", "Tinkertanker/pxt-alphanumeric-ht16k33", "Tinkertanker/pxt-continuous-servo", "Tinkertanker/pxt-iot-environment-kit", @@ -229,7 +230,7 @@ "calliope-edu/pxt-grove", "calliope-edu/pxt-rgblcd", "calliope-edu/pxt-sunlightsensor-si1145", - "calliope-mini/pxt-SCD30", + "tinysuperlab/motionkitv2", "tinysuperlab/motionkit", "tinysuperlab/touchkit", "cgs-matthew-pham/pxt-hitechnic-irseeker-v2", @@ -269,10 +270,9 @@ "sparkfun/pxt-gator-particle", "sparkfun/pxt-gator-soil", "sparkfun/pxt-gator-temp", - "tinysuperlab/motionkit", - "tinysuperlab/touchkit", "vengit/pxt-sbrick", - "CalliTGS3/pxt-calliope-grovePCF85063TP" + "CalliTGS3/pxt-calliope-grovePCF85063TP", + "calliope-net/i2c-liste" ], "preferredRepos": [ "calliope-edu/CO2-Sensor-SCD40", @@ -283,6 +283,7 @@ "calliope-edu/pxt-rgblcd", "calliope-edu/pxt-sunlightsensor-si1145", "calliope-mini/pxt-SCD30", + "tinysuperlab/MotionKitV2", "tinysuperlab/motionkit", "tinysuperlab/touchkit", "MKleinSB/pxt-KY-040", @@ -306,17 +307,555 @@ "MKleinSB/pxt-serialmp3", "Microsoft/pxt-microturtle", "Microsoft/pxt-neopixel", + "calliope-net/i2c-liste", "CalliTGS3/pxt-calliope-grovePCF85063TP" ], "approvedRepoLib": { + "tinysuperlab/motionkitv2": { + "tags": [ + "Motor" + ], + "preferred": true + }, + "tinysuperlab/motionkit": { + "tags": [ + "Motor" + ], + "preferred": true + }, + "tinysuperlab/touchkit": { + "tags": [ + "Audio" + ], + "preferred": true + }, + "51bit/colorbit": { + "tags": [ + "Display" + ] + }, + "51bit/sfc": {}, + "51bit/smarttools": {}, + "51bit/dfplayermini": {}, + "callitgs3/pxt-calliope-grovepcf85063tp": { + "preferred": true + }, + "freenove/makecode-extension-starter-kit": {}, + "kitronikltd/pxt-kitronik-i2c-16-servo": { + "tags": [ + "Motor" + ] + }, + "kitronikltd/pxt-kitronik-game-controller": {}, + "kitronikltd/pxt-kitronik-klef-piano": { + "tags": [ + "Audio" + ] + }, + "kitronikltd/pxt-kitronik-klimate": { + "tags": [ + "Climate" + ] + }, + "kitronikltd/pxt-kitronik-lampbit": {}, + "kitronikltd/pxt-kitronik-robotics-board": { + "tags": [ + "Motor" + ] + }, + "kitronikltd/pxt-kitronik-rtc": {}, + "kitronikltd/pxt-kitronik-servo-lite": { + "tags": [ + "Motor" + ] + }, + "kitronikltd/pxt-kitronik-stopbit": {}, + "mkleinsb/scrolltext": {}, + "mkleinsb/pxt-bme680": { + "tags": [ + "Climate" + ] + }, + "mkleinsb/pxt-co2oled": { + "tags": [ + "Display", + "Climate" + ], + "preferred": true + }, + "mkleinsb/pxt-ir-calliope": {}, + "mkleinsb/pxt-ky-040": { + "preferred": true + }, + "mkleinsb/pxt-max7219_8x8": { + "tags": [ + "Display" + ], + "preferred": true + }, + "mkleinsb/pxt-mcp23017": {}, + "mkleinsb/pxt-oled-ssd1306": { + "tags": [ + "Display" + ], + "preferred": true + }, + "mkleinsb/pxt-oledpaint": { + "tags": [ + "Display" + ], + "preferred": true + }, + "mkleinsb/pxt-seeed-temperatursensor": { + "tags": [ + "Climate" + ] + }, + "mkleinsb/pxt-automationbit-calliope": {}, + "mkleinsb/pxt-bc95": { + "tags": [ + "Climate" + ] + }, + "mkleinsb/pxt-callibot": {}, + "mkleinsb/pxt-callicolor": { + "tags": [ + "RGB" + ], + "preferred": true + }, + "mkleinsb/pxt-callicross": { + "preferred": true + }, + "mkleinsb/pxt-callimotor": { + "tags": [ + "Motor" + ], + "preferred": true + }, + "mkleinsb/pxt-calliope-buttons": { + "preferred": true + }, + "mkleinsb/pxt-calliope-esp": { + "tags": [ + "IoT" + ] + }, + "mkleinsb/pxt-calliope-oled96": { + "tags": [ + "Display" + ] + }, + "mkleinsb/pxt-columbuseye": { + "tags": [ + "Climate" + ] + }, + "mkleinsb/pxt-dht11": { + "preferred": true + }, + "mkleinsb/pxt-envirobit": { + "tags": [ + "Climate" + ] + }, + "mkleinsb/pxt-esp-thingspeak": { + "tags": [ + "IoT" + ], + "preferred": true + }, + "mkleinsb/pxt-fischertechnik-calliope": { + "tags": [ + "Motor" + ] + }, + "mkleinsb/pxt-foldio": {}, + "mkleinsb/pxt-ft-fototransistor-calliope": {}, + "mkleinsb/pxt-gatorlog-calliope": { + "preferred": true + }, + "mkleinsb/pxt-graphs": {}, + "mkleinsb/pxt-huskylens": { + "tags": [ + "AI" + ], + "preferred": true + }, + "mkleinsb/pxt-iot-environment-kit": { + "tags": [ + "IoT", + "Climate" + ] + }, + "mkleinsb/pxt-kitronik-robotics-board-calliope": { + "tags": [ + "Motor" + ] + }, + "mkleinsb/pxt-kitronik-zip-64": { + "tags": [ + "RGB" + ] + }, + "mkleinsb/pxt-kitronik-zip-tile-calliope": { + "tags": [ + "RGB" + ], + "preferred": true + }, + "mkleinsb/pxt-makerbit-motor-calliope": { + "tags": [ + "Motor" + ] + }, + "mkleinsb/pxt-makerbit-touch": {}, + "mkleinsb/pxt-makerbit-ultrasonic-calliope": {}, + "mkleinsb/pxt-mpr121": { + "preferred": true + }, + "mkleinsb/pxt-pca9685": { + "preferred": true + }, + "mkleinsb/pxt-seeed-temperature": { + "tags": [ + "Climate" + ], + "preferred": true + }, + "mkleinsb/pxt-serial-rb": {}, + "mkleinsb/pxt-serialmp3": { + "tags": [ + "Audio" + ], + "preferred": true + }, + "mkleinsb/pxt-thumbjoystick-calliope": {}, + "microsoft/pxt-bluetooth-max6675": {}, + "microsoft/pxt-bluetooth-midi": { + "tags": [ + "Audio" + ] + }, + "microsoft/pxt-bluetooth-temperature-sensor": { + "tags": [ + "Climate" + ] + }, + "microsoft/pxt-filesystem": {}, + "microsoft/pxt-hacking-stem": {}, + "microsoft/pxt-max6675": {}, + "microsoft/pxt-microturtle": { + "preferred": true + }, + "microsoft/pxt-midi": {}, "microsoft/pxt-neopixel": { - "tags": [ "Lights and Display" ], + "tags": [ + "RGB" + ] + }, + "microsoft/pxt-radio-blockchain": {}, + "microsoft/pxt-sonar": {}, + "microsoft/pxt-ws2812b": { + "tags": [ + "RGB" + ] + }, + "tinkertanker/pxt-alphanumeric-ht16k33": {}, + "tinkertanker/pxt-continuous-servo": { + "tags": [ + "Motor" + ] + }, + "tinkertanker/pxt-iot-environment-kit": { + "tags": [ + "Climate" + ] + }, + "tinkertanker/pxt-ir-receiver": {}, + "tinkertanker/pxt-oled-ssd1306": { + "tags": [ + "Display" + ] + }, + "tinkertanker/pxt-range-vl53l0x": {}, + "tinkertanker/pxt-realtimeclock-ds1307": {}, + "tinkertanker/pxt-rotary-encoder-ky040": {}, + "tinkertanker/pxt-smarthome": { + "tags": [ + "IoT" + ] + }, + "tinkertanker/pxt-tinkercademy-tinker-kit": {}, + "alankrantas/pxt-dht11_dht22": { + "tags": [ + "Climate" + ] + }, + "alankrantas/pxt-esp8266_thingspeak": { + "tags": [ + "IoT" + ] + }, + "assirati/pxt-inventura": {}, + "calliope-edu/co2-sensor-scd40": { + "tags": [ + "Climate" + ], + "preferred": true + }, + "calliope-edu/pxt-hm3301_dust_sensor": { + "tags": [ + "Climate" + ], + "preferred": true + }, + "calliope-edu/pxt-scd30": { + "tags": [ + "Climate" + ], + "preferred": true + }, + "calliope-edu/pxt-tcs34725fn": { + "preferred": true + }, + "calliope-edu/pxt-display": { + "preferred": true + }, + "calliope-edu/pxt-grove": { + "preferred": true + }, + "calliope-edu/pxt-jacdac": {}, + "calliope-edu/pxt-jacdac/accelerometer": {}, + "calliope-edu/pxt-jacdac/acidity": {}, + "calliope-edu/pxt-jacdac/air-pressure": {}, + "calliope-edu/pxt-jacdac/air-quality-index": {}, + "calliope-edu/pxt-jacdac/arcade-gamepad": {}, + "calliope-edu/pxt-jacdac/azure-iot-hub-health": {}, + "calliope-edu/pxt-jacdac/button": {}, + "calliope-edu/pxt-jacdac/buzzer": {}, + "calliope-edu/pxt-jacdac/character-screen": {}, + "calliope-edu/pxt-jacdac/codal-message-bus": {}, + "calliope-edu/pxt-jacdac/color": {}, + "calliope-edu/pxt-jacdac/compass": {}, + "calliope-edu/pxt-jacdac/dc-current-measurement": {}, + "calliope-edu/pxt-jacdac/dc-voltage-measurement": {}, + "calliope-edu/pxt-jacdac/distance": {}, + "calliope-edu/pxt-jacdac/dmx": {}, + "calliope-edu/pxt-jacdac/dot-matrix": {}, + "calliope-edu/pxt-jacdac/dual-motors": {}, + "calliope-edu/pxt-jacdac/e-co2": {}, + "calliope-edu/pxt-jacdac/flex": {}, + "calliope-edu/pxt-jacdac/gamepad": {}, + "calliope-edu/pxt-jacdac/gyroscope": {}, + "calliope-edu/pxt-jacdac/heart-rate": {}, + "calliope-edu/pxt-jacdac/hid-joystick": {}, + "calliope-edu/pxt-jacdac/hid-keyboard": {}, + "calliope-edu/pxt-jacdac/hid-mouse": {}, + "calliope-edu/pxt-jacdac/humidity": {}, + "calliope-edu/pxt-jacdac/illuminance": {}, + "calliope-edu/pxt-jacdac/led": {}, + "calliope-edu/pxt-jacdac/led-single": {}, + "calliope-edu/pxt-jacdac/led-strip": {}, + "calliope-edu/pxt-jacdac/light-bulb": {}, + "calliope-edu/pxt-jacdac/light-level": {}, + "calliope-edu/pxt-jacdac/magnetic-field-level": {}, + "calliope-edu/pxt-jacdac/magnetometer": {}, + "calliope-edu/pxt-jacdac/model-runner": {}, + "calliope-edu/pxt-jacdac/motion": {}, + "calliope-edu/pxt-jacdac/motor": {}, + "calliope-edu/pxt-jacdac/multitouch": {}, + "calliope-edu/pxt-jacdac/potentiometer": {}, + "calliope-edu/pxt-jacdac/power": {}, + "calliope-edu/pxt-jacdac/pulse-oximeter": {}, + "calliope-edu/pxt-jacdac/rain-gauge": {}, + "calliope-edu/pxt-jacdac/real-time-clock": {}, + "calliope-edu/pxt-jacdac/reflected-light": {}, + "calliope-edu/pxt-jacdac/relay": {}, + "calliope-edu/pxt-jacdac/rng": {}, + "calliope-edu/pxt-jacdac/rotary-encoder": {}, + "calliope-edu/pxt-jacdac/sensor-aggregator": {}, + "calliope-edu/pxt-jacdac/servo": {}, + "calliope-edu/pxt-jacdac/seven-segment-display": {}, + "calliope-edu/pxt-jacdac/soil-moisture": {}, + "calliope-edu/pxt-jacdac/solenoid": {}, + "calliope-edu/pxt-jacdac/sound-level": {}, + "calliope-edu/pxt-jacdac/speech-synthesis": {}, + "calliope-edu/pxt-jacdac/switch": {}, + "calliope-edu/pxt-jacdac/tcp": {}, + "calliope-edu/pxt-jacdac/temperature": {}, + "calliope-edu/pxt-jacdac/traffic-light": {}, + "calliope-edu/pxt-jacdac/tvoc": {}, + "calliope-edu/pxt-jacdac/uv-index": {}, + "calliope-edu/pxt-jacdac/vibration-motor": {}, + "calliope-edu/pxt-jacdac/water-level": {}, + "calliope-edu/pxt-jacdac/weight-scale": {}, + "calliope-edu/pxt-jacdac/wifi": {}, + "calliope-edu/pxt-jacdac/wind-direction": {}, + "calliope-edu/pxt-jacdac/wind-speed": {}, + "calliope-edu/pxt-rgblcd": { + "tags": [ + "Display" + ], "preferred": true }, - "calliope-edu/pxt-jacdac": { - "tags": [ "jacdac", "V3" ], + "calliope-edu/pxt-sunlightsensor-si1145": { + "tags": [ + "Climate" + ], "preferred": true - } + }, + "cgs-matthew-pham/pxt-hitechnic-irseeker-v2": {}, + "coding4coconut/pxt-lcd128x160-st7735s": { + "tags": [ + "Display" + ] + }, + "coding4coconut/pxt-oled128x128-sh1107": { + "tags": [ + "Display" + ] + }, + "jcubuntu/pxt-ikb1": {}, + "jdarling/pxt-pca9685": {}, + "joernalraun/pxt-remember-int": {}, + "keigan-motor/pxt-keiganmotor": { + "tags": [ + "Motor" + ] + }, + "letstalkscience/pxt-cozir": {}, + "lwchkg/pxt-proportional-font": {}, + "makecode-extensions/apds9930": {}, + "makecode-extensions/at24xx": {}, + "makecode-extensions/bh1750": {}, + "makecode-extensions/bme280": { + "tags": [ + "Climate" + ] + }, + "makecode-extensions/bmp180": {}, + "makecode-extensions/bmp280": {}, + "makecode-extensions/ds1302": {}, + "makecode-extensions/ds1307": {}, + "makecode-extensions/hts221": {}, + "makecode-extensions/lis2dw12": {}, + "makecode-extensions/lis2mdl": {}, + "makecode-extensions/lps22": {}, + "makecode-extensions/lsm6dso": {}, + "makecode-extensions/ntc": {}, + "makecode-extensions/oled12864_i2c": { + "tags": [ + "Display" + ] + }, + "makecode-extensions/stts751": {}, + "makecode-extensions/scrolltext": {}, + "makecode-extensions/tm1637": {}, + "makecode-extensions/tm1650": {}, + "makecode-extensions/whaleysansfont": {}, + "makecode-extensions/i2clcd1602": {}, + "microsoft/pxt-jacdac": { + "tags": [ + "JacDac" + ], + "preferred": true + }, + "microsoft/pxt-jacdac/accelerometer": {}, + "microsoft/pxt-jacdac/acidity": {}, + "microsoft/pxt-jacdac/air-pressure": {}, + "microsoft/pxt-jacdac/air-quality-index": {}, + "microsoft/pxt-jacdac/arcade-gamepad": {}, + "microsoft/pxt-jacdac/azure-iot-hub-health": {}, + "microsoft/pxt-jacdac/button": {}, + "microsoft/pxt-jacdac/buzzer": {}, + "microsoft/pxt-jacdac/character-screen": {}, + "microsoft/pxt-jacdac/codal-message-bus": {}, + "microsoft/pxt-jacdac/color": {}, + "microsoft/pxt-jacdac/compass": {}, + "microsoft/pxt-jacdac/dc-current-measurement": {}, + "microsoft/pxt-jacdac/dc-voltage-measurement": {}, + "microsoft/pxt-jacdac/distance": {}, + "microsoft/pxt-jacdac/dmx": {}, + "microsoft/pxt-jacdac/dot-matrix": {}, + "microsoft/pxt-jacdac/dual-motors": {}, + "microsoft/pxt-jacdac/e-co2": {}, + "microsoft/pxt-jacdac/flex": {}, + "microsoft/pxt-jacdac/gamepad": {}, + "microsoft/pxt-jacdac/gyroscope": {}, + "microsoft/pxt-jacdac/heart-rate": {}, + "microsoft/pxt-jacdac/hid-joystick": {}, + "microsoft/pxt-jacdac/hid-keyboard": {}, + "microsoft/pxt-jacdac/hid-mouse": {}, + "microsoft/pxt-jacdac/humidity": {}, + "microsoft/pxt-jacdac/illuminance": {}, + "microsoft/pxt-jacdac/led": {}, + "microsoft/pxt-jacdac/led-single": {}, + "microsoft/pxt-jacdac/led-strip": {}, + "microsoft/pxt-jacdac/light-bulb": {}, + "microsoft/pxt-jacdac/light-level": {}, + "microsoft/pxt-jacdac/magnetic-field-level": {}, + "microsoft/pxt-jacdac/magnetometer": {}, + "microsoft/pxt-jacdac/model-runner": {}, + "microsoft/pxt-jacdac/motion": {}, + "microsoft/pxt-jacdac/motor": {}, + "microsoft/pxt-jacdac/multitouch": {}, + "microsoft/pxt-jacdac/potentiometer": {}, + "microsoft/pxt-jacdac/power": {}, + "microsoft/pxt-jacdac/pulse-oximeter": {}, + "microsoft/pxt-jacdac/rain-gauge": {}, + "microsoft/pxt-jacdac/real-time-clock": {}, + "microsoft/pxt-jacdac/reflected-light": {}, + "microsoft/pxt-jacdac/relay": {}, + "microsoft/pxt-jacdac/rng": {}, + "microsoft/pxt-jacdac/rotary-encoder": {}, + "microsoft/pxt-jacdac/sensor-aggregator": {}, + "microsoft/pxt-jacdac/servo": {}, + "microsoft/pxt-jacdac/seven-segment-display": {}, + "microsoft/pxt-jacdac/soil-moisture": {}, + "microsoft/pxt-jacdac/solenoid": {}, + "microsoft/pxt-jacdac/sound-level": {}, + "microsoft/pxt-jacdac/speech-synthesis": {}, + "microsoft/pxt-jacdac/switch": {}, + "microsoft/pxt-jacdac/tcp": {}, + "microsoft/pxt-jacdac/temperature": {}, + "microsoft/pxt-jacdac/traffic-light": {}, + "microsoft/pxt-jacdac/tvoc": {}, + "microsoft/pxt-jacdac/uv-index": {}, + "microsoft/pxt-jacdac/vibration-motor": {}, + "microsoft/pxt-jacdac/water-level": {}, + "microsoft/pxt-jacdac/weight-scale": {}, + "microsoft/pxt-jacdac/wifi": {}, + "microsoft/pxt-jacdac/wind-direction": {}, + "microsoft/pxt-jacdac/wind-speed": {}, + "monkmakes/pxt-sensor": {}, + "mu-opensource/pxt-muvision": {}, + "pizayanz/pxt-linebeacon": {}, + "rebeccaclavier/pxt-bmp280": { + "tags": [ + "Climate" + ] + }, + "sparkfun/pxt-gator-environment": { + "tags": [ + "Climate" + ] + }, + "sparkfun/pxt-gator-light": {}, + "sparkfun/pxt-gator-microphone": { + "tags": [ + "Audio" + ] + }, + "sparkfun/pxt-gator-particle": {}, + "sparkfun/pxt-gator-soil": {}, + "sparkfun/pxt-gator-temp": { + "tags": [ + "Climate" + ] + }, + "calliope-net/i2c-liste": {}, + "vengit/pxt-sbrick": {} }, "approvedEditorExtensionUrls": [ "https://microsoft.github.io/jacdac-docs/tools/makecode-editor-extension"