NOTE: This release includes major changes to the UI, including block colors, as well as changes to the internal and external representation of projects and libraries. We don't expect to make any big changes to the UI or block colors after this. That will allow us and others to create long-term documentation. Highlights ========== * Major UI Rework, including block color changes * New project format * New library format * New internal project and library representation * Auto-connect to boards when they are plugged in * Auto-load board-specific libraries * Refactored all libraries Details ======= User Interface (UI) ------------------- * Icons for start, stop, settings, file and connect menus * Menu command to extract a command block from the middle of a script * Guard against losing current project when opening another one * Use different buttons to create commands and reporter blocks and remove menu commands to * Drop block definition to hide it; use menu to actually delete it * Show connection indicator circle behind the connection menu icon * Add menu command to delete libraries * Add keyboard shortcuts for "undrop" (cmd-z or ctrl-z) * Make "undrop" undelete blocks dropped on the palette * Change style of buttons in palette (e.g. 'Add Variable" button) * Remove 'trans.' button in color picker * Increase font sizes in menus, 'say' bubble, and dialogs * Some category colors swapped and colors tweaked * Rename "Functions" category to "My Blocks" * Add "Comm" category (advanced) * Remove "Advanced" category * Color-coded libraries Virtual Machine (VM) -------------------- * RAM-based code store compaction (double code space on ESP boards) * Remove unused comment storage mechanism * Add mechanism to delete unused chunks (i.e. chunks for blocks that have been deleted or embedded into another script) * Convert output primitives to named primitives * Remove obsolete primitives * Tweaks to serial protocol Bug Fixes --------- * Bug causing CPX to crash on startup (board appeared unresponsive) * Supply default file name when saving example projects * When function definition is edited, blocks following the call to that function are lost. * Block specs with str. were not exported correctly (thanks for finding that Bernat!) * Bug in updating default values when editing a user-defined block Tweaks and Enhancements ----------------------- * Use case-insensitive sort of file/dir names in file lists * Add support for graphing data from a digital input pin (map true to 100, false to 0) * Increase baud rate for ESP32 VM upload * Add 'set serial delay' advanced command * Make display block show happy face as default value * Add 'display character' block to LED display library (non-scrolling) * Made the 'pausing' parameter in scroll blocks be optional * Tweak libraries: servo, IR, display * Add support for Mozilla WoT events (for USB devices) * Add Button Events example for Mozilla WoT