IDE 1.2.24 VM 191 Stable release. Change logs (1.2.6 to 1.2.22) below. IDE 1.2.6, VM 176 IDE - fix: Clicking the hat block of a running script does not stop running it (web app only) - fix: don't allow multiple "Variable name?" dialogs - fix: inform the user (instead giving error) if they use a disallowed character in a folder name - fix: cancel save project if user did not provide a file name - allow only one library import dialog at a time - dropping files into IDE uploads them to board, if possible - tint default buttons green - show wait cursor while syncing scripts - new gesture: shift+drag extracts a block from script - new gesture: control+drag duplicates blocks/script - new gesture: shift-control+drag duplicates single block - show trashcan in palette when dragging a block from the scripting area - inform the user (instead giving error) if they use a disallowed character in a folder name - cancel save project if user did not provide a file name - improve readability of "show instructions" output VM - fix: NeoPixels continue to output on old pin when switching NeoPixel pins on ESP32 boards - fix: Initialize TFT display on iot-bus - fix: make serialConnected() work on micro:bit - fix: don't set pwmRunning flag for DAC pins - fix: output just the top 8-bits of analog value to ESP32 DAC - add support for Mbits board (everything except accelerometer) - add support for M5Stamp (thanks, José) - add setSingleNeoPixel() function and use it for M5Stamp user LED (thanks, José) - add support for HID devices (keyboard and mouse) for SAMD21 boards - add support for HID devices for RP2040 boards (not yet tested) - add 'connected to IDE' primitive and block (in "Inputs") - add primitive to set the color of simulated micro:bit LED's on TFT and 5x5 NeoPixel boards - Reduce object store size on ESP32 boards when using BLE (new ESP32 BLE support consumes ~23k of RAM) Libraries - add "Keyboard and Mouse" library - add menu to note block in Tone library Translations - Spanish translation of note names to do, re, mi, ... - Catalan translation updates IDE 1.2.7, VM 176 IDE - Fix: When pasting scripts from cliboard, don't re-install a library that is already installed - Fix: Incorrect fonts on Windows 10 when system language is not English Libraries - Fix: Make MQTT lib assign MAC address as client ID by default - Fix: When the ultrasonic distance sensor read fails, return the last distance reading - Update examples to use latest library versions IDE 1.2.8, VM 176 IDE - Prevent accidental selection when selecting text inside input slots - Make first arg slot of the find block be auto, not string - Fix: save picture of script gave error on scripts in Signada - Allow choices with values with format label:value. The value can be a string or a number. The format is menuLabel:valueWhenSelected e.g. choices one:1 two:2 three:3 Translations - Updated ES translation, minor tweaks to CA translation IDE 1.2.9 VM 177 IDE - Ability to change graph scale - Show current block zoom level in the "set block size..." menu - Make block zoom buttons use same zoom levels as "set block size..." menu - Add help for new start/stop tone primitives - Show "hide" icon (not trash can) in palette when dragging a block definition VM - Fix: (rare) garbage collection bug when GC occurred during certain primitives - Make stopTone leave the tone pin turned off - Send broadcasts to serial connection even if no pings are received (fixes Snap!MicroBlocks bridge issue) - Enable HID primitives for all SAMD boards (except Due, which might work but is not tested) - Workaround for missed keys on RP2040 boards (needed delay) - Workaround for modifier key failure on RP2040 boards (needed delay) - Tweaks to platformio.ini Libraries - IR Remote library improvements: - turn IR LED off after transmitting - add "attach IR transmitter to pin" block - recognize M5StickC+ - match both device code bytes in "receive IR code from device" IDE 1.2.10 VM 178 IDE - New feature: ability to select and drag multiple scripts (click and drag on scripting area to select) - Added databot to firmware install menu - Tweak ESP connect logic to make firmware installs more robust - Add block help for IR Remote library - Fix: Variable names 'true' and 'false' not quoted when project saved - Fix: Don't update fileTransferProgress if totalBytes is zero to avoid divide by zero error - Fix: Clear fileTransferProgress at the end of "get file" - Fix: block size button hints were reversed VM - Added one-wire support (only in databot VM for now) - Tweak pin counts for Metro M0 to allow use of analog pins for digital I/O - On SAMD boards, make sure I2C pins have pullups before attempting I2C operations; that avoids hanging forever in the Wire library if pullups are absent - Make the BOOT button (pin 0) work as Button A on ESP32 and ESP8266 boards - Make databot turn on NeoPixels at startup - If password is empty, call WiFi.begin() without a password to join an open network. (Unfortunately, pico-w is still not connecting to open networks.) - Change partition scheme to provide more file space for esp32-ble (community-supported) - Add primitive to convert pressure change to altitude change (for creating an altimeter from an air pressure sensor) - Reduce dynamic memory slilghtly for micro:bit to allow it to compile (new primitive set took some RAM) - Fix: Flush file after every appent operation in case battery dies Libraries - Added special key menu to keyboard library - Added holdKey and releaseKeys prims for HID library - Added initial Databot library - Added draft versions of air pressure and light/color/gesture sensor libraries (under construction) IDE 1.2.11 VM 179 IDE - Allow Wukong2040 to be installed from IDE in both stand-alone and web app - Autoload appropriate libraries for MBits, Pico:ed, and Databot boards VM - Support for Elecfreaks Wukong2040 board (for either pico or pico-w) - Allow pico-w VM to run on a regular pico Libraries - Fixed: RGB pixel issue in Databot library - Swapped RGB pixels 2 and 3 in Databot library - New version of Air Pressure library with altimeter IDE 1.2.12 VM 180 IDE - Allow Wukong2040 to be installed from IDE in both stand-alone and web app - Autoload appropriate libraries for MBits, Pico:ed, and Databot boards VM - Add draw region to 8-bit lib "draw buffer" primitive - Fix: Databot Neopixels should not be turned off by soft reset - Do nothing when if attempting to read zero bytes from i2c - Databot support for accelerometer and basic sensors temperature block (approximate) - Databot support for magnetometer Libraries - Add Databot UV Index block - Add temperature to LPS22HB library - Add filtering to LPS22HB air pressure/altimeter sensor - Add SHTC3 Temperature/Humidity library - Databot: Reduce wait time to read external temperature probes - Databot: Add dependencies for new sensor libraries - Air Pressure library changes: - report pressure only in milibars - report altitude in cm or feet (meters is just / 100) - tweak read time in readPressure to try to avoid stuck sensor - Report temperature in degrees (not x10) in Air Pressure library - Move Elecfreaks libraries to their own folder - Preliminary versions of Wukong2040 and Octopus libraries Translations - Update Turkish translation - Fix: Nederlands translation was missing a space before a param IDE 1.2.13 VM 181 IDE - Special case: when a single script is group-selected then dragged, drag only the script, not the entire selection so block can be snapped - Make Mbits installable from the pilot version (Note: This is to support Kathy's workshops; not promising that Mbits will become a supported board!) VM - Fix: Display operations not working on pico:ed - Make default display color be red on MBits and M5Atom - Add Mbits accelerometer support Libraries - Add releaseKey primitive (for use in Glen's Arcade) - Renane folder: Elecfreaks -> ELECFREAKS - Revised Octopus library Translations - Update Nederlands translation IDE 1.2.14 VM 182 IDE - Separate precompile build scripts from precompiled VM folder to save space in apps - Optimized precompiled folder (reduced application size by about 400k) - Combine Pico-W VM entries in the "update firmware" menu - Fix: Increase height of file picker slightly to avoid scrollbars in "Games" folder in Chrome VM - Add MQTTSetWill primitive (thanks, Wenjie!) - Fix: Make the reserved pins on M5Stack-Core and M5Stack-Core2 be the same as normal ESP32 to allow access to internal pins. - Add OLED SSD1306 TFT primitives to micro:bit V2 and pico VM's (experimental for now) - Make same VM work on both Pico and Pico-W - Remove obsolete platformio entry for mbed Libraries - Add MQTTSetWill block - Move LPS22HB (pressure) and SHTC3 (temp/humidity) library to the Sensing category - Correct SHTC3 temperature and humidity for databot's internal heating IDE 1.2.15 VM 183 IDE - Make default slot values translatable - Increase contrast of script running feedback in browser - Fix: Layout issues when screen resolution changes - Fix: Could pick up a script by clicking on open areas (inside a C-shaped block) when it was running in the browser VM - Fix: Restore OLED library speed (it got slower when built-in OLED support was added) Libraries - Add APDS9960 Light & Gesture library - Fix BMP drawing for height < 0 images. Thanks, Yue! - Updated Octopus and Wukong2040 libraries from ELECFREAKS - Restore the special key menu for key field of keyboard blocks - Set contrast to 4 when initializing OLED display - Add Light & Gesture library as a Databot dependency - Make Air Pressure library an Output library (changes block color) - Remove old Color/Gesture library from Under Construction Translations - Updated NE translation. Thanks, Peter and Coby! - Updated Catalan translation IDE 1.2.16 VM 184 Tweak of 1.2.15 VM 183 to remove built-in OLED support from Pico boards DE 1.2.17 VM 185 IDE - Auto-load WuKong library on WuKong2040 board - Improve speed of downloading code to the board (about 35% faster) - Remove internal file 'ublockscode' from "get file from board" menu VM - When returning a list, report up to 20 characters of embedded strings (previous limit was 12) - Add hasI2CPullups() function to avoid trying to use i2c on a board that lacks pullup (which can hang the VM) - Re-enable OLED display primitives on pico, pico-w, and wukong2040 boards. Display operations are enabled only if the board has i2c pull-up resistors and OLED display is detected at power up. - NeoPixel library: Make Mbits board default to 25 Neopixels Examples - Browser Control Panel (inspired by Turgut's demo program) Libraries - Allow independent control of Rainbow LEDs in WuKong2040 library - Add PSI x10 block to LPS22HB air pressure library IDE 1.2.18 VM 186 Don't sync with board when dependent libraries are loaded Revert Wukong2040 debug configuration Revert PicoW detection test IDE 1.2.19 VM 187 IDE Fix: editing a running script sometimes caused it to stop (glitch was introduced by the recent optimizations) VM - Disable WiFi for Wukong2040 to avoid hang when running on battery power due to hardware bug - Enable Pico WiFi via external PICO_WIFI define - Remove pico entry from platformio.ini; pico-w works on both kinds of pico Translations - Update Chinese translation (thanks, Wenjie) IDE 1.2.20 VM 188 IDE - Remove tag viewer from library info dialog (long term plan is to replace tags with search function) - Fix: When a function is dragged to a library, any global variables it uses should also be moved to the library - Preserve spaces in block list when exporting a library VM - Add primitives to defer and resume display updates on displays that support it (e.g. OLED, pico:ed) Libraries - Add "Basic Sensors" as a databot library dependency - Rename Databot -> databot - Update TFT library to include defer/resume display primitives - Make PicoBricks playTone primitive for beep so beep is not interrupted by display updates - Make Octopus use TFT library rather than OLED library for graphics operations - Make BMX280 library work with Clue (auto-detect i2c address) - Add altimeter blocks to BMX280 library - Tweak default input to rainbowLED color block so it works in the palette Examples - Update Browser Control Panel project - Update PicoTest to use TFT library for OLED output IDE 1.2.21 VM 189 IDE - Highlight running script for a minimum amount of time so users know that it ran - Fix: Bug in Chinese translation reported by Wenjie. Should not translate default values for slots that have menus; the menu mechanism translates those strings. - Re-synch scripts after changing languages - Tweaks to chunk saving and CRC verification mechanism VM - Tweak temperature compensation for databot built-in temperature primitive Libraries - Remove unused servo code from Octopus "set servo angle" function - OLED library: skip initialization if it has already been initialized - Add dependency on Tone to the databot library - Tweak SHTC3 databot temperature compensation - Air Pressure library tweaks: - Fix: Bug in base altitude handling - Add block to set base pressure for a known altitude - Tweak temperature compensation f Examples - Tweak Browser Control Panel to allow returning binary files (e.g. images) - Update projects to use new TFT and NeoPixel libraries - Update PicoBricks Demo to latest libraries IDE 1.2.22 VM 189 IDE - Preliminary support for incrementally downloading scripts when a board is reconnected (disabled for now) - When changing operators, update only the containing script to minimize time to re-sync scripts (makes it much faster to change operators when board is connected) IDE 1.2.23 VM 190 IDE - Enable optimization to reuse existing code on board when possible - Recognize Metro M0 when updating firmware in browser VM - Fix: Remove keyboard/mouse primitives from CPX (it apparently does not support HID devices) - Fix: Clue failed to start due to app now encroaching on persistent memory - Fix: Turn off Clue NeoPixel at startup - FIx: Make OLED display TFT primitives yield after a display update to prevent lockup