Files
pybricks-code/CHANGELOG.md
T
David LechnerandDavid Lechner 48b99cb3a5 public/manifest: change display to "standalone"
"fullscreen" is for immersive apps like games (and is only available
on Android currently which is why we didn't notice the app going
fullscreen on desktop).

Fixes: https://github.com/pybricks/support/issues/867
2022-12-21 20:27:21 -06:00

26 KiB

Changelog

Unreleased

Added

  • Added audio and visual feedback when typing into terminal while user program is not running.

Changed

  • Changed app display from "fullscreen" to "standalone" (support#867).

2.0.1 - 2022-12-21

Fixed

  • Fixed terminal scroll not working (support#866).
  • Fixed terminal breaks if input is given before hub is connected (support#865).

2.0.0 - 2022-12-20

Added

  • Added Windows DFU USB driver installation instructions (support#858).

Changed

  • Clicking empty area of file list focuses the list (support#856).

  • Various text, style and accessibility fixes and improvements.

  • Updated dependencies.

  • Updated firmware to v3.2.0:

    Changed

    • Buffered stdout is flushed before ending user program.

    Fixed

    • Fixed SPIKE/MINDSTORMS hubs advertising after disconnect while user program is still running (support#849).
    • Fixed Essential hub hanging on boot when bootloader entered but USB cable not connected (support#821).
    • Fixed button needs debouncing on City/Technic/Essential hubs (support#716).
    • Fixed motor hold drifting away under external input movement (support#863).

2.0.0-rc.1 - 2022-12-09

Added

  • Added videos to firmware flash dialogs (support#728).

Changed

  • Moved documentation show/hide button from settings to editor area (support#778).

  • Updated documentation and other dependencies.

  • Updated firmware to v3.2.0c1:

    Fixed

    • Fixed motor.control.limits() not working if acceleration was None.
    • Fixed crash on calling methods on uninitialized objects (support#805).
    • Fixed crash on calling methods in __init__(self, ...) before calling super().__init(...) on uninitialized objects (support#777).
    • Reverted Pybricks Code stop button raises SystemAbort instead of SystemExit (support#834).
    • Improved stop message raised on SystemExit and SystemAbort (support#836).
    • Fixed Technic Hub and City Hub sometimes not shutting down when a Bluetooth operation is busy (support#814).
    • Fixed hub.system methods not working (support#837).

    Changed

    • Changed default XYZ orientation of the Technic Hub and the Essential Hub to match the SPIKE Prime Hub and Move Hub (support#848).

Fixed

  • Fixed first tour item not shown if settings is not open (support#823).
  • Fixed selected activity tab not controlled independently per window (support#807).
  • Fixed selected documentation visibility not controlled independently per window (support#807).
  • Fixed slow firmware flash on Android (support#438).

2.0.0-beta.12 - 2022-12-02

Added

  • Added in-app LEGO firmware restore for USB/DFU hubs.
  • Added Pybricks logo when no files open.

Changed

  • Firmware restore for hubs with USB is now done in-app (pybricks-code#1104).

  • Moved Tour button from toolbar to settings.

  • Updated docs, code completion and other dependencies.

  • Updated firmware to v3.2.0b6:

    • Added support for PBIO_PYBRICKS_COMMAND_REBOOT_TO_UPDATE_MODE Pybricks Profile BLE command.
    • Implemented Motor.load() which now measures load both during active conditions (run) and passive conditions (dc).

    Changed

    • The Pybricks Code stop button will force the program to exit even if the user catches the SystemExit exception (pybricks-micropython#117).
    • Changed PrimeHub.display.image() to PrimeHub.display.icon() and renamed its kwarg from image to icon (support#409).
    • Deprecated Control.load(), Control.stalled(), and Control.done() methods ([support#822]).

    Fixed

    • Fixed connecting Remote on BOOST move hub (support#793).

    Removed

    • Removed hub.system.reset() method.
    • Disabled micropython module on Move Hub.

Fixed

  • Fixed missing warning sign icon.
  • Fixed error message for program too big for download (support#810).

2.0.0-beta.11 - 2022-11-11

Fixed

  • Fixed app freezing when checking for updates and update server is unreachable (pybricks-code#1299).
  • Added delay to try to mitigate errors when flashing firmware on city hubs (support#792).

2.0.0-beta.10 - 2022-11-11

Added

Changed

  • Updated documentation.

  • Updated other dependencies.

  • Update Pybricks firmware to v3.2.0a5:

    Added

    • Added DriveBase.stalled() for convenient stall detection.
    • Added DriveBase.done() for convenient completion detection.
    • Added Motor.done() for convenient completion detection.

    Fixed

    • Fixed brief hub freeze on pybricks.common.Logger.save() when not connected to the computer (support#738).
    • Fixed drive base stall flags being set while not stalled (support#767).
    • Fixed Motor.run_target raising exception for short moves (support#786).

Fixed

  • Fixed firmware checksum validation when checksum === 0.
  • Fixed activity views not scrolling when contents don't fit (support#782).

2.0.0-beta.9 - 2022-10-27

Added

  • Added feature to close editor tab on middle click (support#758).

Fixed

  • Fixed long time until UI visible on resource-constrained systems.

Removed

2.0.0-beta.8 - 2022-10-25

Fixed

  • Fixed crash when user program contains syntax error (support#755).

2.0.0-beta.7 - 2022-10-24

Fixed

  • Fixed UI temporary freeze when downloading and running programs (support#750).

2.0.0-beta.6 - 2022-10-21

Added

Changed

  • Updated dependencies.

  • Updated documentation.

  • Updated APIs for code completions.

  • Update hub firmware to v3.2.0b4:

    Added

    • Added hub shutdown status light indication.
    • Added boot and shutdown light matrix animations.
    • Added new indication for over-charging battery (blinking green light).
    • Added iterator protocol support to geometry.Matrix class.
    • Added support for multi-file projects (pybricks-micropython#115).
    • Added new System.storage() API (support#85).

    Changed

    • Battery full indication (green light) comes on earlier (support#647).
    • User program is saved to non-volatile memory at shutdown on all hubs.
    • Restored the Motor.speed() method and DriveBase equivalent to provide speed as a numerical derivative of the motor position.
    • Starting REPL automatically imports all modules (support#741).
    • Updated Bluetooth to Pybricks Profile v1.2.0.
    • Bluetooth now uses random private address instead of static public address (support#600).

    Fixed

    • Fixed motors going out of sync when starting program (support#679).
    • Fixed motor torque signal overflowing under load (support#729).
    • Fixed city hub turning back on after shutdown (support#692).
    • Fixed IMU I2C bus lockup on SPIKE hubs (support#232).
    • Fixed REPL history corrupt after soft reset (support#699).
    • Fixed "ValueError: incompatible .mpy file" when pressing the button when there is no program yet (support#599).

Fixed

  • Fixed run button enabled when no file open (support#691).
  • Fixed flash firmware dialog not showing when settings not open (support#694).
  • Fixed errors not handled while flashing firmware via USB (pybricks-code#1011).
  • Fixed imports with invalid file name silently ignored (support#717).
  • Fixed code completion not working when offline (pybricks-code#932).

Removed

  • Removed feature to include custom main.py when flashing firmware.
  • Removed support for file names containing -.

2.0.0-beta.5 - 2022-07-28

Fixed

2.0.0-beta.4 - 2022-07-28

Added

  • Added better error message when no files to backup (support#681).
  • Added multi-step firmware flashing dialog.
  • Added support for flashing firmware via USB DFU (support#659).
  • Added an interactive introductory tour of the app.
  • Added restore official LEGO firmware dialog.

Changed

  • Updated dependencies.

  • Updated firmware to Pybricks v3.2.0b3:

    Fixed

    • Fix integral control not working properly.

    Changed

    • Motor.run_time no longer raises an exception for negative time values.

Fixed

  • Fixed deleting files that are not open in the editor.

2.0.0-beta.3 - 2022-07-06

Changed

  • Updated dependencies.

  • Updated firmware to Pybricks v3.2.0b2:

    Added

    • Added Motor.stalled() method.

    Fixed

    • Fixed motor not stopping at the end of run_until_stalled (support#662).
    • Fixed incorrect battery current reading on Technic hub (support#665).
    • Fixed non-zero speed reported when motor stalled.
    • Fixed I/O devices not syncing at high baud rate.
    • Fixed ENODEV error while device connection manager is busy (support#674).

    Changed

    • Reworked internal motor model that is used to estimate speed.
    • Speed methods now use estimated speed instead of reported speed.
    • Changed drive base default speed to go a little slower.
    • Updated MicroPython to v1.19.

2.0.0-beta.2 - 2022-06-24

Added

  • Added basic intellisense to the code editor.

2.0.0-beta.1 - 2022-06-03

Added

Changed

  • Moved settings.

  • Accessibility improvements.

  • Updated dependencies.

  • Updated documentation.

  • Updated firmware to v3.2.0b1:

    Added

    • Added Stop.NONE as then option for motors.
    • Added Stop.COAST_SMART as then option for motors.
    • Made motor deceleration configurable separately from acceleration.
    • Enabled ujson module.
    • Added ability to use more than one DriveBase in the same script.
    • Added support for battery charging on Prime and essential hubs.

    Changed

    • Changed how DriveBases and Motor classes can be used together.
    • Raise asynchronous OSError instead of SystemExit if motor is disconnected while a program is running.
    • Changing settings while a motor is moving no longer raises an exception. Some settings will not take effect until a new motor command is given.
    • Disabled Motor.control and Motor.log on Move Hub to save space.
    • Changed LED color calibration on Prime hub to make yellow less green.
    • Updated to upstream MicroPython v1.18.
    • Changed imu.acceleration() units to mm/s/s (pybricks-micropython#88) for Move Hub, Technic Hub, and Prime Hub.

    Fixed

    • Fixed color calibration on Powered Up remote control (support#424).
    • Fixed 3x3 Light Matrix colors with hue > 255 not working correctly (support#619).

Fixed

1.2.0-beta.1 - 2021-12-27

Added

  • Status bar indicator for connected hub.
  • Basic battery OK/low indicator (support#559).

Changed

  • Saving file now uses proper save dialog in Chromium browser (support#84).
  • Toolbar buttons now scale with screen size (support#300).

Fixed

  • Fixed buttons wrong size while image is downloading (support#369).

1.1.0 - 2021-12-16

Changed

  • Updated dependencies.

  • Updated to Pybricks Firmware v3.1.0:

    Changed

    • Renamed new DCMotor.dc_settings() method to DCMotor.settings() (support#536).

    Fixed

    • Fixed direction for DriveBase.turn() and Drivebase.curve() for some arguments (support#535).
    • Fixed then=Stop.COAST not working in DriveBase methods (support#535).
  • Updated docs:

    Added

    • Added maximum voltage setter for DCMotor and Motor.
    • Documented DriveBase.curve() method.

    Changed

    • Removed duty setting from Control.limits method.
    • Removed integral_range setting from Control.pid method.

1.1.0-rc.1 - 2021-11-19

Added

  • Hub name setting for selecting hub name when flashing firmware (support#52).

Changed

  • Updated to Pybricks firmware v3.1.0c1:

    Added

    • Added DriveBase.curve() method to drive an arc segment.
    • Added then and wait arguments to DriveBase methods (support#57).

    Changed

    • Dropped integral_range argument from Control.pid(). This setting was ineffective and never used. When set incorrectly, the motor could get stuck for certain combinations of kp and ki.
    • Improved motor behavior for cases with low-speed, low-load, but high inertia (support#366).
    • Changed how the duty cycle limit is set for Motor and DCMotor. It is now set as a voltage limit via a dedicated method, instead of Motor.control.

    Fixed

    • Fixed then=Stop.COAST being ignored in most motor commands.
    • Fixed brake()/light.off() not working on Move hub I/O port C (support#501).
    • Fixed Remote() failing to connect when hub is connected to 2019 or newer MacBooks (support#397).
    • Fixed intermittent improper detection of hot-plugged I/O devices (support#500).
    • A program now stops when a Motor is unplugged while it is running, instead of getting in a bad state.
  • Updated docs:

    Added

    • Added ColorLightMatrix class.
    • Added LWP3Device class.

1.1.0-beta.6 - 2021-09-21

Added

  • Show error message if connected hub is running old firmware (support#482).

Changed

  • Updated dependencies.

  • Updated to Pybricks firmware v3.1.0b1:

    Added

    • Support for LEGO Technic Color Light Matrix (support#440).
    • Support for LEGO UART devices with a new battery power flag. This is required to support the new LEGO Technic Color Light Matrix (support#440).
    • Support for the SPIKE Essential hub/Technic Small hub (support#439).

    Fixed

    • Fixed Ultrasonic Sensor and Color Sensor turning off when a user script ends (support#456).
    • Hub reset due to watchdog timer when writing data to UART I/O device (support#304).
    • City/Technic hubs not connecting via Bluetooth on macOS 12 (support#489).

    Changed:

    • Updated to MicroPython v1.17.

1.1.0-beta.5 - 2021-08-30

Changed

  • Updated to Pybricks firmware v3.1.0a4:

    Added

    • Enabled builtin bytearray (pybricks-code#60).
    • Enabled ustruct module (pybricks-code#60).
    • Added alpha support for dual boot installation on the SPIKE Prime Hub.
    • Added pybricks.experimental.hello_world function to make it easier for new contributors to experiment with Pybricks using C code.
    • Added ability to import the main.mpy that is embedded in the firmware from a download and run program (support#408).
    • Added pybricks.iodevices.LWP3Device to communicate with a device that supports the LEGO Wireless Protocol 3.0.00 (pybricks-code#68)

    Changed

    • Move Hub Bluetooth optimizations to reduce firmware size (pybricks-code#49).
    • Disabled pybricks.iodevices module on Move Hub to reduce firmware size.
    • Improvements to pybricks.pupdevices.Remote:
      • Check if a remote is already connected before attempting to create a new connection.
      • Rename first argument from address to name to match documentation.
      • Implement connecting by name.
      • Add name() method.
      • Add light attribute.
  • Updated documentation:

    Added

    • MicroPython module documentation.
    • Examples for hub system functions including stop button and shutdown.

    Changed

    • Build IDE docs as main docs with minor changes, instead of a completely separate build.
    • Moved motor control documentation to the motor page.

1.1.0-beta.4 - 2021-08-13

Fixed

Changed

  • Checksum is now validated as firmware flash progresses instead of just at the end support#433.
  • About menu now shows firmware version as main version support#412.

1.1.0-beta.3 - 2021-07-20

Changed

Fixed

1.1.0-beta.2 - 2021-07-06

Changed

  • Changed from Ace editor to Monaco editor.
  • Updated hub firmware to v3.1.0a2.

Fixed

  • Fixed run button still enabled after hub disconnects during download support#378.

1.1.0-beta.1 - 2021-06-23

Changed

  • Updated projects URL.
  • Updated hub firmware to v3.1.0a1.
  • Updated docs.

1.0.0 - 2021-06-08

Added

  • Added changelog link to about dialog.

Changed

  • Updated hub firmware to v3.0.0.
  • Updated documentation.

Prerelease

Prerelease changes are documented at support#48.