IDE 1.2.94 VM 246 (stable release) Major IDE and VM Changes * Support wireless programming (great for robots)! Look for `connect (BLE)` in the standard Connect menu (BLE stands for Bluetooth Low Energy). This has some limitations: * `connect BLE` is only available in the web IDE running in Google Chrome, and possibly a few other browsers that support Web Bluetooth. It is not supported by the standalone IDEs, nor the web IDE running in Firefox or Safari. * `connect BLE` is only supported on the following boards: * Calliope V3 * ESP32 * micro:bit V2 (including CuteBot robots) * Raspberry Pi Pico W (including the XRP robot) * Add block `seconds` to `Input`. * Add advanced blocks `millisecondsSince` and `microsecondsSince` to `Input`. These should always be used to measure elapsed time, instead of simple subtraction, because they handle clock wraparound correctly. * Add block `BLE id` to `Input`. It returns a 3 letter BLE ID for the connected board. This ID will be part of the name you see in the `connect BLE`'s dialog box. If the connected board does not support BLE, the block returns an empty string. * Add advanced block `if _condition_ then _x_ else _y_` to `Operators`. * On ESP32 boards, code is now stored and executed from Flash memory, allowing larger projects Other Notable IDE and VM Changes * Reset the value reported by `timer` (in `Inputs`) to 0 when the the `start` button is pressed. * All clocks (`seconds`, `millis`, and `micros`) (in `Inputs`) now wrap at 2^30. Formerly `millis` wrapped at a smaller value. * Do a full reset when the `start` button is clicked. This eliminates a source of confusing behavior when a user edits a block that initializes something, and that block only runs if needed (lazy initialization). * Make library description text selectable and copyable. This is especially useful for URLs. * Reloading a text library is much more robust, and no longer reloads dependencies. This makes it easier to work on libraries by editing text, sets of related libraries. * Show a crosshair cursor while choosing colors in the color palette * Add the ability to install ESP firmware on a board in two ways: by selecting `install ESP firmware from URL` from the gear menu, or by dropping a .bin file onto the IDE. * Removed Metro M0 as a built-in board. It can be installed from extraVMs. New Supported Board * Calliope mini v3 New Community Supported Boards * ESP32-S3 (esp32-s3-devkitc-1) * ESP32-C3 (LuatOS ESP32-C3) * MakerPort v2 and v3 * Robotistan Gamepad prototype * XRP Robot * M5Atom-lite * BeagleBoard Freedom Connect (built on Zephyr; https://openbeagle.org/beagleboard/microblocks) * Pre-compiled firmware for many community supported boards is now distributed in https://microblocks.fun/downloads/pilot/vm/) New Libraries * `Graphics and Displays/Color` (replaces `Graphics and Displays/HSV Colors`, which is deprecated) * `Graphics and Displays/Four Digit Display (TM1637)` (supports the display used by Brown Dog Gadgets) * `Kits and Boards/PicroBricks-mb` (not yet shipping as of August) * `Motors/Encoded DC Motors` * `Motors/PID` (for proportional-integral-derivitive control loops) * `Motors/Zio Four DC Motor Controller` * `Network/BLE Scanner` * `Network/BLE Radio` (for peer-to-peer broadcasting between boards that support Bluetooth BLE) * `Network/BLE Serial` * `Network/OctoStudio` (send messages to/from MIT's OctoStudio phone/table programming system) * `Other/Keyboard and Mouse` Update key menu to make it work on MacOS; remove entries that do no work (e.g. Caps/Num/Scroll Lock). * `Robots/Cutebot Pro` * `Robots/Fantàstic` * `Robots/XGO Lite` (uses much less code than the XGO-nano) * `Robots/XRP` * `Rhythm` (used with MIDI library for music live coding) * `Sensing/Light (TSL2591)` * `Sound/MIDI` (MIDI output for real-time music) * `Sound/Scales & Chords` (scales, chord, and arpeggio generator for music live coding) Library Changes (not complete) * `AI/HuskyLens`: serial read size correction and parsing correction. * `Graphics and Displays/8 Bit Graphics`: add blocks: `bitmap ... rotated...`, `bitmap ... mirrored across...`, `color number for...`, and `current palette`. * `Graphics and Displays/TFT`: add a `draw bitmap...` block. Add optional `bg color` argument to the `write ... on TFT...` block. * `Kits and Boards/databot`: add support for the ICM20948 accelerometer/magnetometer. * `Kits and Boards/MakerPort`: add missing dependency `Tone`. * `Kits and Boards/PicoBricks`: make the light sensor block report higher numbers for brighter light. * `NeoPixel`: fix issues with newer NeoPixels. * `Network/OctoStudio`: * Add `Octo last beam` and `Octo beam received` blocks. * Change blocks `Octo start` and `Octo stop` to advanced blocks `_octoStartBeam ...` and `_octoStopBeam`. * Add support for receiving Octo beams on Raspberry Pi Pico-W from Android phones. * Other changes to advanced blocks. * `Network/WiFi`: ensure the password is at least 8 characters long in the `wifi create hotspot...` block. * `Network/WiFi Radio`: indicate when out-of-range numbers are received from a non-MicroBlocks computer. * `Other/ED1 Stepper Motor`: add IO expander digital pin access. * `Other/Lists`: add `pick [a few/some/most] from aList` block. * `Sensing/Touch`: fix a bug caused by an incorrect variable name. * Move the libraries that were in the `ELECFREAKS` folder to the following locations: * `Robots/Cutebot` * `Kits and Boards/Nezha2` * `Kits and Boards/Octopus` * `Kits and Boards/Wukong` * `Kits and Boards/WuKong2040` * The `NeZha` library is gone. New Translations: * Traditional Chinese (translated directly from Simplified Chinese) Updated Translations: * Castellano * Catalan * Chinese * Deutsch * Spanish Many thanks to Russell Owen for creating this summary of changes since the last stable release.