{ "id": "calliopemini", "nickname": "mini", "name": "makecode.calliope.cc", "title": "Microsoft MakeCode for Calliope mini", "description": "A Blocks / JavaScript code editor for the Calliope mini powered by Microsoft MakeCode.", "corepkg": "v1", "bundleddirs": [ "libs/core", "libs/core-mini-dal", "libs/core-mini-codal", "libs/v1", "libs/v2", "libs/v3", "libs/radio", "libs/funk", "libs/devices", "libs/bluetooth", "libs/one-time-pairing", "libs/servo", "libs/radio-broadcast", "libs/microphone", "libs/settings", "libs/flashlog", "libs/datalogger", "libs/audio-recording" ], "cloud": { "workspace": false, "packages": true, "sharing": true, "thumbnails": true, "publishing": true, "importing": true, "showBadges": false, "githubPackages": true, "cloudProviders": { "github": { "id": "github", "name": "GitHub", "icon": "/static/providers/github-mark.png", "identity": false, "order": 3 } } }, "compile": { "isNative": false, "useUF2": false, "hasHex": true, "webUSB": true, "deployDrives": "MINI", "driveName": "MINI", "hexMimeType": "application/x-microbit-hex", "openocdScript": "source [find interface/cmsis-dap.cfg]; source [find target/nrf51.cfg]", "flashUsableEnd": 242688, "flashEnd": 242688, "flashCodeAlign": 1024, "floatingPoint": true, "taggedInts": true, "utf8": false, "gc": true, "imageRefTag": 9, "shimRenames": { "sendBufferAsm": "light::sendWS2812Buffer" }, "patches": { "0.0.0 - 1.0.0": [{ "type": "package", "map": { "microbit": "core", "microbit-bluetooth": "bluetooth", "microbit-radio": "radio", "microbit-devices": "devices", "microbit-led": "", "microbit-music": "", "microbit-game": "", "microbit-pins": "", "microbit-serial": "" } }, { "type": "missingPackage", "map": { "radio\\s*\\.": "radio", "bluetooth\\s*\\.": "bluetooth", "devices\\s*\\.": "devices" } }, { "type": "api", "map": { "bluetooth\\s*\\.\\s*uartRead\\s*\\((.*?)\\)": "bluetooth.uartReadUntil($1)", "bluetooth\\s*\\.\\s*uartWrite\\s*\\((.*?)\\)": "bluetooth.uartWriteUntil($1)", "input\\s*\\.\\s*calibrate\\s*\\(": "input.calibrateCompass(", "radio\\s*\\.\\s*onDataPacketReceived\\(\\s*\\(\\{\\s*receivedNumber\\s*\\}\\)\\s*=>\\s*\\{": "radio.onReceivedNumber(function (receivedNumber) {", "radio\\s*\\.\\s*onDataPacketReceived\\(\\s*\\(\\{\\s*receivedString: name, receivedNumber: value\\s*\\}\\)\\s*=>\\s*\\{": "radio.onReceivedValue(function (name, value) {", "radio\\s*\\.\\s*onDataPacketReceived\\(\\s*\\(\\{\\s*receivedString\\s*\\}\\)\\s*=>\\s*\\{": "radio.onReceivedString(function (receivedString) {", "Math\\s*\\.\\s*random\\s*\\(": "Math.randomRange(0, " } }, { "type": "blockId", "map": { "device_get_acceleration": "device_acceleration" } }, { "type": "blockValue", "map": { "device_print_message.message": "text" } } ], "0.0.0 - 1.4.12": [{ "type": "api", "map": { "DisplayMode\\s*\\.\\s*BackAndWhite": "DisplayMode.BlackAndWhite" } }], "0.0.0 - 4.0.20": [ { "type": "api", "map": { "basic\\s*\\.\\s*showArrow\\s*\\(": "basic.showIcon(", "images\\s*\\.\\s*arrowImage\\s*\\(": "images.iconImage(", "ArrowNames\\s*\\.\\s*": "IconNames.Arrow", "input\\s*\\.\\s*onButtonPressed\\s*\\(\\s*(.*?),": "input.onButtonEvent($1, input.buttonEventValue(ButtonEvent.Click),", "input\\s*\\.\\s*onPinPressed\\s*\\(\\s*(.*?),": "input.onPinTouchEvent($1, input.buttonEventValue(ButtonEvent.Down),", "input\\s*\\.\\s*onPinReleased\\s*\\(\\s*(.*?),": "input.onPinTouchEvent($1, input.buttonEventValue(ButtonEvent.Up),", "input\\s*\\.\\s*loudness\\s*\\(": "input.soundLevel(", "basic\\s*\\.\\s*rgbw\\s*\\(\\s*(.*?),\\s*(.*?),\\s*(.*?),\\s*(.*?)\\s*\\)": "basic.rgb($1, $2, $3)" } } ], "0.0.0 - 4.0.29": [ { "type": "api", "map": { "input\\s*\\.\\s*onButtonEvent\\s*\\(\\s*(.*?),\\s*ButtonEvent\\s*.\\s*(.*?),": "input.onButtonEvent($1, input.buttonEventValue(ButtonEvent.$2)," } } ], "0.0.0 - 5.0.0": [ { "type": "api", "map": { "input\\s*\\.\\s*loudness\\s*\\(": "input.soundLevel(", "Motor\\s*\\.\\s*AB": "Motor.M0_M1", "Motor\\s*\\.\\s*A": "Motor.M0", "Motor\\s*\\.\\s*B": "Motor.M1" } } ] }, "hidSelectors": [{ "usagePage": "0xFF00", "usageId": "0x0001", "vid": "0x1366", "pid": "0x1025" }], "useNewFunctions": true }, "compileService": { "yottaTarget": "calliope-mini-classic-gcc@https://github.com/calliope-mini/target-calliope-mini-classic-gcc#v1.2.4", "yottaCorePackage": "microbit", "githubCorePackage": "calliope-mini/microbit", "gittag": "v2.2.0-rc6-calliope.rc5", "serviceId": "calliope", "dockerImage": "pext/yotta:gcc5" }, "variants": { "minidal": { "compile": { "useUF2": false, "webUSB": false }, "compileService": { } }, "minidalusb": { "compile": { "useUF2": false, "webUSB": true }, "compileService": { } }, "minicodal": { "compile": { "flashCodeAlign": 4096, "flashUsableEnd": 487424, "flashEnd": 524288, "useUF2": false, "webUSB": true }, "compileService": { "buildEngine": "codal", "codalTarget": { "name": "codal-microbit-v2", "url": "https://github.com/calliope-edu/codal-microbit-v2", "branch": "v0.2.63-calliope-rc1", "type": "git" }, "codalBinary": "MICROBIT", "githubCorePackage": "lancaster-university/microbit-v2-samples", "gittag": "v0.2.13", "serviceId": "mbcodal2", "dockerImage": "pext/yotta:update-yotta3", "yottaConfigCompatibility": true } } }, "runtime": { "mathBlocks": true, "loopsBlocks": true, "logicBlocks": true, "variablesBlocks": true, "textBlocks": true, "listsBlocks": true, "functionBlocks": true, "breakBlock": true, "continueBlock": true, "functionsOptions": { "useNewFunctions": true, "extraFunctionEditorTypes": [{ "typeName": "game.LedSprite", "label": "LedSprite", "icon": "send", "defaultName": "sprite" }, { "typeName": "Image", "label": "Image", "icon": "image outline", "defaultName": "image" } ] }, "onStartColor": "#54C9C9", "onStartNamespace": "basic", "onStartWeight": 60, "onStartGroup": "Control" }, "simulator": { "autoRun": true, "streams": false, "aspectRatio": 0.94, "parts": false, "partsAspectRatio": 0.7, "messageSimulators": { "jacdac": { "url": "https://microsoft.github.io/jacdac-docs/tools/makecode-sim?webusb=0&parentOrigin=$PARENT_ORIGIN$", "localHostUrl": "http://localhost:8000/tools/makecode-sim?webusb=0&parentOrigin=$PARENT_ORIGIN$", "aspectRatio": 1.22, "permanent": true }, "robot": { "url": "https://microsoft.github.io/microbit-robot/?parentOrigin=$PARENT_ORIGIN$", "localHostUrl": "http://localhost:3000/microbit-robot/?parentOrigin=$PARENT_ORIGIN$", "aspectRatio": 1.22, "permanent": true } }, "dynamicBoardDefinition": true, "boardDefinition": { "visual": "calliope", "gpioPinBlocks": [ [ "TOUCH_P0" ], [ "TOUCH_P1" ], [ "TOUCH_P2" ], [ "TOUCH_P3" ], [ "C_P4", "C_P5", "C_P6", "C_P7" ], [ "C_P8", "C_P9", "C_P10", "C_P11", "C_P12" ], [ "C_P16" ] ], "gpioPinMap": { "P0": "TOUCH_P0", "P1": "TOUCH_P1", "P2": "TOUCH_P2", "P3": "TOUCH_P3", "C4": "C_P4", "C5": "C_P5", "C6": "C_P6", "C7": "C_P7", "C8": "C_P8", "C9": "C_P9", "C10": "C_P10", "C11": "C_P11", "C12": "C_P12", "C13": "C_P13", "C14": "C_P14", "C15": "C_P15", "C19": "C_P19", "C20": "C_P20", "EXT_PWR": "EXT_PWR", "SPKR": "SPKR", "BTN_A": "BTN_A", "BTN_B": "BTN_B", "MOTOR1": "M0_OUT", "MOTOR2": "M1_OUT" }, "spiPins": { "MOSI": "C_P15", "MISO": "C_P14", "SCK": "C_P13" }, "i2cPins": { "SDA": "C_P20", "SCL": "C_P19" }, "analogInPins": [ "P1", "P2", "C4", "C5", "C6" ], "groundPins": [ "TOUCH_GND" ], "threeVoltPins": [ "TOUCH_VCC" ], "attachPowerOnRight": true, "onboardComponents": [ "accelerometer", "buttonpair", "ledmatrix", "speaker", "bluetooth", "thermometer", "compass", "speaker", "microphone", "rgbled", "rgbledLeft", "rgbledRight" ], "pinStyles": { "P0": "croc", "P1": "croc", "P2": "croc", "P3": "croc", "TOUCH_GND": "croc", "TOUCH_VCC": "croc" }, "marginWhenBreadboarding": [ 0, 0, 80, 0 ] } }, "serial": { "nameFilter": "^(Calliope mini|mbed Serial Port|DAPLink CMSIS-DAP)", "log": true, "useEditor": true, "editorTheme": { "graphBackground": "#d9d9d9", "lineColors": [ "#6633cc", "#3891A6", "#3454D1", "#EF767A", "#F46197", "#107C10" ] }, "vendorId": "0x1366", "productId": "0x1025", "rawHID": true }, "appTheme": { "accentColor": "#249899", "defaultLocale": "de", "logoUrl": "https://calliope.cc/", "logo": "./static/Calliopeminieditor.svg", "docsLogo": "./static/Logo_Calliope_Woman.svg", "portraitLogo": "./static/Logo_Calliope_Woman.svg", "footerLogo": "./static/Calliopeminieditor.svg", "cardLogo": "./static/icons/apple-touch-icon.png", "appLogo": "./static/icons/apple-touch-icon.png", "organization": "Microsoft MakeCode", "organizationUrl": "https://makecode.com/", "organizationLogo": "./static/Logo_Calliope_Woman.svg", "organizationWideLogo": "./static/Microsoft-logo_rgb_c-white.png", "homeScreenHero": { "imageUrl": "./static/calliope/hero/hero.jpg", "name": "Flashing Heart", "url": "/calliope/firststeps/firstSteps", "description": "Let's go – start your first tutorial with Calliope mini", "cardType": "tutorial" }, "homeScreenHeroGallery": "/hero-banner", "homeUrl": "https://makecode.calliope.cc/", "embedUrl": "https://makecode.calliope.cc/", "shareUrl": "https://makecode.calliope.cc/", "privacyUrl": "https://go.microsoft.com/fwlink/?LinkId=521839", "termsOfUseUrl": "https://go.microsoft.com/fwlink/?LinkID=206977", "githubUrl": "https://github.com/Microsoft/pxt-calliope", "boardName": "Calliope mini", "driveDisplayName": "MINI", "chooseBoardOnNewProject": true, "appStoreID": "1309545545", "crowdinProject": "makecode", "extendEditor": true, "extendFieldEditors": true, "enableTrace": true, "errorList": true, "workspaceSearch": true, "allowPackageExtensions": true, "addNewTypeScriptFile": true, "experiments": [ "accessibleBlocks", "debugExtensionCode", "bluetoothUartConsole", "bluetoothPartialFlashing", "simScreenshot", "simGif", "identity", "blocksErrorList" ], "bluetoothUartFilters": [{ "namePrefix": "Calliope mini" }], "docMenu": [{ "name": "Support", "path": "https://calliope.cc/en/impressum" }, { "name": "Hardware", "path": "https://calliope.cc/en/calliope-mini/tech-facts/" }, { "name": "Buy", "path": "https://shop.calliope.cc/" }, { "name": "Forum", "path": "https://forum.calliope.cc/" } ], "hasReferenceDocs": false, "usbDocs": "/device/usb", "hideHomeDetailsVideo": true, "invertedMenu": true, "coloredToolbox": true, "monacoToolbox": true, "hasAudio": true, "socialOptions": { "orgTwitterHandle": "calliopemini", "hashtags": "calliopemini", "discourse": "https://forum.calliope.cc/", "discourseCategory": "Probleme-Software" }, "blocklyOptions": { "grid": { "spacing": 45, "length": 7, "colour": "rgba(189, 195, 199, 0.30)", "snap": false } }, "blockColors": { "basic": "#54C9C9", "input": "#C94600", "music": "#DF4600", "led": "#8169E6", "radio": "#E3008C", "motors": "#008272", "logic": "#006970", "loops": "#107C10", "math": "#712672", "variables": "#A80000", "text": "#996600", "advanced": "#42495f", "functions": "#005A9E", "arrays": "#E65722" }, "blocksCollapsing": true, "highContrast": true, "greenScreen": true, "print": true, "selectLanguage": true, "availableLocales": [ "en", "ar", "bg", "ca", "cs", "cy", "da", "de", "el", "es-ES", "fi", "fr", "he", "hu", "is", "it", "ja", "ko", "nl", "nb", "nn-NO", "pl", "pt-BR", "pt-PT", "ru", "si-LK", "sk", "sr", "sv-SE", "tr", "uk", "zh-CN", "zh-TW" ], "monacoColors": { "editor.background": "#ecf0f1" }, "monacoFieldEditors": [ "soundeffect-editor" ], "browserDbPrefixes": { "1": "v1", "2": "v2", "3": "v3", "4": "v4", "5": "v5", "6": "v6" }, "editorVersionPaths": { "0": "v0" }, "showProjectSettings": true, "scriptManager": true, "debugger": true, "simGifTransparent": "rgba(0,0,0,0)", "simGifMaxFrames": 44, "simScreenshot": true, "simScreenshotMaxUriLength": 300000, "simGif": true, "simGifWidth": 240, "qrCode": true, "importExtensionFiles": true, "nameProjectFirst": true, "githubEditor": true, "tutorialBlocksDiff": false, "chooseLanguageRestrictionOnNewProject": true, "openProjectNewTab": true, "python": true, "appFlashingTroubleshoot": "/device/windows-app/troubleshoot", "immersiveReader": true, "tutorialCodeValidation": true, "downloadDialogTheme": { "webUSBDeviceNames": ["Calliope mini CMSIS-DAP", "DAPLink CMSIS-DAP", "Calliope mini", "J-Link"], "minimumFirmwareVersion": "0249", "deviceIcon": "usb", "deviceSuccessIcon": "check", "downloadMenuHelpURL" : "/device/usb", "downloadHelpURL" : "/device/usb", "firmwareHelpURL": "/device/usb/webusb/troubleshoot", "troubleshootWebUSBHelpURL": "/device/usb/webusb/troubleshoot", "incompatibleHardwareHelpURL": "/device/v2", "dragFileImage": "/static/download/transfer.png", "connectDeviceImage": "/static/download/connect.png", "selectDeviceImage": "/static/download/pair.png", "connectionSuccessImage": "/static/download/connected.png", "checkFirmwareVersionImage": "/static/download/firmware.png", "checkUSBCableImage": "/static/download/connect.png", "incompatibleHardwareImage": "/static/download/incompatible.png" }, "winAppDeprImage": "/static/winapp.PNG", "showWinAppDeprBanner": false, "tours": { "editor": "/tours/editor-tour" }, "tutorialSimSidebarLayout": true, "preferWebUSBDownload": true, "hideReplaceMyCode": true, "matchWebUSBDeviceInSim": true, "condenseProfile": true, "cloudProfileIcon": "/static/profile/microbit-cloud.png" }, "queryVariants": { "hidemenu": { "appTheme": { "hideMenuBar": true } }, "androidapp": { "compile": { "webUSB": false }, "appTheme": { "disableBlobObjectDownload": true } }, "usb": { "compile": { "webUSB": true } }, "identity=1": { "cloud": { "cloudProviders": { "github": { "id": "github", "name": "GitHub", "icon": "/static/providers/github-mark.png", "identity": false, "order": 3 }, "microsoft": { "id": "microsoft", "name": "Microsoft", "icon": "/static/providers/microsoft-logo.svg", "identity": true, "redirect": true, "order": 1 }, "google": { "id": "google", "name": "Google", "icon": "/static/providers/google-logo.svg", "identity": true, "redirect": true, "order": 2 } } } }, "skillsMap=1": { "appTheme": { "hideReplaceMyCode": false } } }, "ignoreDocsErrors": true, "uploadDocs": true }