Files
pybricks-code/CHANGELOG.md
T
David Lechner 6687bb73ce firmware: remove android check for chunk size
This should no longer be needed since Chrome v98 (released Nov. 2021).
2022-12-06 15:50:35 -06:00

22 KiB

Changelog

Unreleased

Changed

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

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.