IDE 1.2.46 VM 210 Stable release. Change logs (1.2.25 to 1.2.46) below. IDE 1.2.25 VM 191 Fix: Incremental download fails for Pico Demo project; disabling that optimization for RP2040 boards for now IDE 1.2.26 VM 192 IDE - Finish variable relabel feature - Remove incremental download work-around for RP2040 boards - Fix: Make Mbits firmware install in browser again VM - Unreserve pins 37 and 38 on M5Stack Core and Core2 - Add missing stubs for GnuBlocks to compile again - Fix: restoreScripts() should set freeStart after reading the code file - Fix Boardie primReadInto primitive (was advancing read position by one extra character) - Add primitives to get and set file read position - Make fileSize primitive return -1 if file doesn't exist, consistent with Boardie (allows client code to distinguish between non-existent and empty files) Libraries - Add brighten blocks to NeoPixel library - Add new HSV/RGB operations to HSV library (thanks, José!) - Add get and set file read position blocks to Files library - Add support for 1-bit, 4-,bit and 8-bit BMP files with color palettes to BMP library (thanks, José!) Translations - Updated Russian translation file (thanks, Nargiza!) IDE 1.2.27 VM 192 Libraries - BMP: Refactor and rename internal functions and variables Add _bmp_drawBMPPixels function that takes a setPixel function parameter. - TFT: Rename "defer/resume TFT display updates" to "defer/resume monochrome display updates" and make advanced blocks - NeoPixel: Fix glitch in _NeoPixel_increaseRGB block spec - Add NeoPanel library Examples - Update Pico Bricks Test project to use new defer/resume monochrome display update blocks IDE 1.2.28 VM 193 VM - Preliminary support for MakerPort - Clear TFT in hardwareInit() - Microphone support for Databot Libraries - Libraries for INNOVA DIDACTIC Imagina shield and 3DBot. (thanks, Josep!) - NeoPanel tweaks (thanks, José!) - Add support for RLE compression to the BMP library (thanks, José!) - Add block to read BMP files to 8Bit library (Thanks, José!) Translations - Update Chinese translation (thanks, Wenjie!) - Innova Didactic library translations (thanks, Josep!) IDE 1.2.29 VM 194 IDE - Fix: ESP32 frmware install slows down when there are scripts in the scripting area VM - Increase ledc speed to 100Hz for both PWM and servo pulses on ESP32 (thanks, José) Libraries - Add M5FireKits library (thanks, Shao Yue!) - Add "IR code received" and "IR code" blocks to IR Library - Fix: Don't report touches if no I2C touch controller (Touch MPR121 library) - Updates to 3dBot library (thanks, Josep!) - Updated color sensor (TCS34725) library (thanks, José!) Translations - Fix degrees character in Catalan and Castellano translations - Updated Russian translation (thanks, Dmitrii!) - Tweak CN translation (thanks, Wenjie!) - Add NeoPanel blocks to Castellano and Catalan translations (thanks, José!) IDE 1.2.30 VM 195 VM - Tweaks to MakerPort board definition - Enable Keyboard/Mouse primitives on Circuit Playground Express and Due (not tested on Due) - HID: limit range of mouse deltas to -128 to 127 (signed 8-bit value) - HID: add delays on RP2040 Pico boards to avoid overruns - Update platformio.ini to comply with syntax of the latest version of PlatformIO - Fix: after running MakeCode, micro:bit accelerometer is frozen until board is power cycled (I'm not sure why setting the accelerometer range fixes this but it does.) - Check for newly connected OLED display on soft reset (e.g. when stop button is pressed). Allows OLED to be connected after the board is powered up. - Force Wire restart after calling hasI2CPullups() Libraries - Add library for Galileo university's Robofut - Add Adafruit soil moisture sensor library - Improved HuskyLens library -- can now use either serial or I2C (thanks, Turgut!) - Make 8-bit library independent of BMP library and add BMP palette reporter - Optimize LCD Display library - MP3 Player tweaks for MakerPort IDE 1.2.31 VM 196 VM - Swap MakerPort pins 13 and 14 IDE Fix: IDE's HTTP server stopped working after recent Windows 10 update Add support for MakerPort firmware install Libraries - Fix: Bug in Barometric Pressure library initialization (thanks, patch li!) - Make Touche (MPR121) library handle touch release events, as well as touch onset events. - Add MakerPort library - Create "Kits and Boards" category in Examples folder IDE 1.2.32 VM 197 IDE - Allow integers in choices menus VM - Add WebSockets support for Pico-W - Warn users if they try to use light level on databot - Decrease memory for lolin_s2_mini, to allow compilation after upgrading ESP32 framework - Tweaks to allow m5stamp and ttgo-d1 to compile with latest Platformio packages - Decrease object store and persistent memory on SAMD boards to allow optional OLED library inclusion - Clear OLED display when it is initialized - Fix possible stuck accelerometer after firmware install on Circult Playground Express/Bluefruit and ED1 Libraries - Add Nezha2 library (using Nezha2 to avoid breaking projects using the old library) - Add "set MakerPort audio source to" block and "beep" blocks to MakerPort library Examples - Add "MakerPort Firmware" project to "Kits and Boards" folder IDE 1.2.33 VM 198 IDE - Fix: Single quiote marks in the description field should be doubled when saving project/library file VM - Add optional "stop' argument to i2cWrite primitive (defaults to true, which gives the old behavior if optional arg is omitted) Libraries - Add VEML 6075 UV sensor library - Add MP3 Player support for optional "play until done" block (requires RX pin connection) - Add "type to computer" block to MakerPort library - Make PicoBrick LDR sensor more responsive at normal room light levels. IDE 1.2.34 VM 199 IDE - Do not show variables starting with underscore in block menu - In the Variables palette, place variable set and change blocks *before* the list of variables VM - Fix: Allow independent use of external OLED and the micro:bit display (i.e. don't emulate micro:bit display on the OLED screen) - Add bme680GasResistance primitive to support BME680 sensor library - Add mpython as a community supported board - Increase MAX_SERVOS to 8 for Nordic boards - Limit setTone() minimum frequency to 46 Hz on SAMD boards (i.e. the lowest they can go) Libraries - Fix: Latest version of Cutebot hardware (e.g. v3.6) needs i2c clock at 100 kHz (not 400 kHz) - Make "MakerPort initialize" set the MP3 player rx pin - Increase MP3 initialization time from 700 to 1000 msecs when not using RX pin - Make Touch (MPR121) library not queue touch events; that works better when event handling takes significant time. Examples - Fix: Make MakerPort Firmware initialize MP3 player *after* initializing character lists - Update libraries in MakerPort Firmware project - Update libraries in Cutebot line-tracking project - Update libraries in Snap!Bridge project IDE 1.2.35 VM 200 IDE - Make input slot of serial write be auto, not string VM - Allow primSerialWrite and primSerialWriteBytes accept lists of byte values as well as byte arrays - Allow MakerPort to use pins 7-12 to control servos, as well as pins 14, 16, and 17 IDE 1.2.36 VM 201 IDE - Make local variable block visible in user mode - Use individual (vs. bulk) CRC collection when updating scripts, but not when loading projects or libraries. Allows better real-time performance (e.g. for live-coding music) VM - Increase Due object memory - Add accelerometer support for M5Stack Core2 - Add optional bit order parameter to the SPI setup primitive - Disable dacWrite() call on ESP32-S2 and ESP32-S3 since they do not have DAC hardware - Fix: primUnicodeAt() gives incorrect negative result for some Chinese characters (Issue $422) Libraries - New libraries for controlling MIDI synths: MIDI, Rhythm, and Scale and Chords - Add "mp3 player has Flash card'" block to MakerPort library - Fix: in Keyboard and Mouse library, make input slots "auto" to allow entering numeric ASCII values Examples - Update MakerPort Firmware project Translations - Add "board not connected" to Chinese translation (thanks, Wenjie!) IDE 1.2.37 VM 202 VM - Add camera primitives for Freenove ESP32-WROVER board - Allocate object memory from the heap at startup time on ESP32 boards. This allows us to have a larger object store (useful for working with camera image data). - Increase size of ESP32 RAM codestore from 40k to 45k - Add "argOrDefault" primitive to make it easier to access optional arguments in functions - Fix: NeoPixels do not work on MakerPort pins 13 and 14 - Preliminary USB MIDI primitive for Metro M0 (enabled by compile flag for now) Libraries - Add Camera library for Freenove ESP32-WROVER camera board - Add Pulse library for MAX30105 pulse sensor - Add reporter versions of list operations to Lists library: reversed, shuffled, and sorted - Improve MIDI, Rhythm, and Scales and Chords libraries Examples - Add CameraServer project IDE 1.2.38 VM 203 IDE - Sort variable names alphabetically (case-insensitive) VM - Enable MIDI USB for all SAMD21 boards - Give error if UDP prims are used before WiFi is connected Libraries - Add Gas (BME680) sensor library (thanks, José!) - Allow MIDI lib to use USB MIDI - Tweaks to Rhythm and Scales & Chords libraries - Add MIDI arpeggiate block - Better rhythm tempo tracking - Fix: MP3 player initialize should time out if MP3 board does not respond within a few seconds - RC522 library: Add firmware version for new RC522 boards - RC522 library: Make "RC522 is connected" block give a warning but not fail if the firmware version is not recognized Examples - Add BME680 Demo example (thanks, José!) - Add Databot Data Logger example, based on José's BME680 Demo - Update "MakerPort Startup Program" (formerly "MakerPort Firmware") Translations - Tweak cn translation IDE 1.2.39 VM 204 IDE - Make "initialize local" be an advanced block again - Do not save chunks when just moving scripts around in IDE VM - Make softserial timing more accurate, even on slower boards - Fix: make softserial use correct pin numbers on ESP8266, CPX, Pico-Ed and CLUE - Fix: item [random] of an empty list crashes VM - Fix: On ESP32, once a pin has been used for PWM output it no longer works as a digital output pin - Fix: Process messages after costly TFT operations to avoid late CRC reports - Fix: Replace delay() with taskSleep() in several places to avoid late CRC reports Libraries - Improvements to MIDI, Scales and Chords, and Rhythm libraries - Allow independent handling touch and release events in Touch (MPR121) library - Tweaks to dec2anyBase library - Tweaks to IR Remote library - Add WiFi Radio library for WiFi boards (similar to the Radio library for Nordic chips but using UDP over WiFi) - Add circular list access block to list library - Added general MIDI drumkit selection block to MIDI lib - Fix: Note duration Unicode characters in Rhythm lib did not render in browser - Add basic sensor blocks to databot library and remove "Basic Sensors" and Tone as dependencies - Update Pulse (MAX3010) library to provide more reliable and accurate pulse readings - Remove welcome message from initialize in MakerPort library (now handled by the MakerPort Startup Program) Examples - Update MakerPort Startup Program IDE 1.2.40 VM 205 IDE - Fixed: Script syncronization bug introduced in last pilot release - Add toggle implementation blocks feature (hides/shows blocks and variables starting with underscore) VM - Make TFT prims process a messages to help with CRC collections - Fix: Clear the pin configuration register when doing soft serial output (Arduino pinMode() should do this but does not) Libraries - Tweaks MakerPort initialize - Increase timeout for WiFi connect (needed for RP2040 Pico boards) Translation - Tweaked Chinese translations IDE 1.2.41 VM 206 IDE - Tweaks to script synchronization mechanism - Support removing obsolete block definitions from projects - Fix: menu options for auto slots was not being preserved when the project was saved (e.g. in Keyboard and Mouse library) VM - Tweak to SAMD21 pin configuration clear (clear only the PMUXEN bit) - Fix: ED1 startup fails during TFT initialization when board is first plugged in Libraries - Fix: Special key dropdown menu missing in "Keyboard and Mouse" library - Make Scale and Chords library understand flat scale degrees - Add circle of fifths abstraction to Scale and Chords library IDE 1.2.42 VM 207 IDE - Fix: context menu was on variable blocks gave debugger VM - Add convert block for converting between datatypes (e.g. lists/strings/bytearrays) Libraries - Move Arpeggiate block from MIDI to Scales lib, and make it work with either MIDI or Tone (open to further future options) - Tweak Rhythm library - Add WiFi as a depencency of the WiFi Radio library - Change name of Touch (MPR121) library to Touch - Add a little extra time between pin touch updates to free up CPU cycles (helps with IR Receive) - Add volume parameter to MakerPort tone block - Remember state of microSD to make it fast after the first time Examples - Improved MakerPort Startup Program Translations - Update Chinese translation IDE 1.2.43 VM 208 IDE - When a function is still being used in a project, ask for confirmation before deleting its definition - Add "install ESP32 firmware from URL" menu command in advanced mode - On databot, provide a default URL for installing the original databot software - Adjust size of file dialog shortcut button font when language is Chinese (Windows stand-alone app only) VM - Make "convert" primitive use the strings "0" and "1" to represent boolean values (language independent) - Make "convert" primitive convert a boolean or a number to a singleton list and vice versa - Make "convert" primitive convert a boolean or a number in 0-255 to a singleton byte array and vice versa - Fix: Transmitting IR Remote signal could cause crash SAMD21 boards due to bug in Arduino Tone library - Add USB midi receive primitive on boards that support it (not yet used) - Decrease objectstore size for BLE and OCTO builds Libraries - Tweaks to Scales and Chords library - Tweaks to MakerPort library; make volume parameter to "MakerPort tone" block optional - Add "time averaged level" block to MakerPort library - Add Chiptune and SquareWave Chords libraries Examples - Update MakerPort Startup Program: - Use latest MakePort library and update calls to "time averaged level" - Use ToneVolume in two calls to "MakerPort tone" (left others to default full volume) - Tweak ToneVolume adjustment code - remove unused variables: last_state IRCode Servo1Angle Servo2Angle UltraSonicPresent Translations - Tweak Chinese translation IDE 1.2.44 VM 209 IDE - Add a "service worker" to allow offline use of the webapp - Add drop-down menu to 'broadcast' and 'when broadcast received' to select from existing broadcasts - Make 'install ESP firmware from URL' use 2M code partition for large ESP32 binary files such as esp32-ble - Show download progress when using "install ESP firmware from URL" in the browser - Add heuristic to default webapp language to Chinese for Chinese users when no language preference has been set VM - Fix camera board spelling ("freenove") in platformio.in file - Adjust object store size for optional BLE and OCTO_PRIMS ESP32 builds based on Wenjie's tests - Add (optional) primitives to support BLE communications with OctoStudio (use 'esp32-octo' to compile esp32-octo firmware) Libraries - Add OctoStudio library (requires esp32-octo firmware) (thanks, Wenjie!) - Fix: MP3 "play track until done" was not waiting until long tracks (> 3 seconds) finished playing - Fix: MakerPort library 'input level' block - Add 'loudness' block to MakerPort library Examples - Add OctoStudio Demo project (requires esp32-octo firmware) (thanks, Wenjie!) - Update MakerPort Startup Project to the latest MP3 and MakerPort libraries Translations - Update CN translation IDE 1.2.45 VM 210 IDE - Fix: Menu help tooltips are not removed from screen when mouse moves away from the menu item - Remove Mbits from IDE bundle (can still be built w/ platformio) - When a library is removed, change the color of any blocks from that library still in use to show that the library is no longer present - Tweak broadcast menu to better support translation of default broadcast string ("go!") - Don't try to download code to board if not connected - Fix: IDE is not responsive if a non-MicroBlocks board is connected (e.g. new board board or one with an Arduino program on it) VM - Make modulo operation always return a positive number between 0 and (modulus - 1) - Ignore invalid iOS OctoStudio Bluetooth advertisement data in esp32-octo vm - Tweak objectstore size for the esp32-ble vm Libraries - Add MakerPort to library list of supported boards to MP3 library info - Ensure the x and y are within range in LED Dot Matrix library - Make 'brighten NeoPixel' retain at least some color information at max and min brightness - Add 'return' to special keys menu in Keyboard and Mouse library Examples - Update MakerPort Startup Program (v11.13.23) IDE 1.2.46 VM 210 IDE - Fixed Firefox copy/paste on Linux; not quite working on MacOS Libraries - Added volume to arpeggio block in scales lib Translations - Update Castellano and Catalan translations (thanks, José!)