Skip to content

Releases: pybricks/pybricks-micropython

Release v3.3.0b3

28 Mar 15:04
Compare
Choose a tag to compare
Release v3.3.0b3 Pre-release
Pre-release

Added

  • Added positive_direction to DriveBase initializer. It defaults to
    clockwise to ensure this is not a breaking change. Users can now change it
    to counterclockwise, which is more common in engineering (support#989).
  • Added support for setting drivebase acceleration and deceleration separately
    using a tuple, consistent with single motors (support#881).

Fixed

  • Fixed allocator interfering with motor control when memory usage is high (support#977).
  • Fixed Stop.NONE not working properly for some drivebase geometries (support#972).
  • Fixed reading programs larger than 65535 bytes on boot on SPIKE hubs. ([support#996).
  • Various Bluetooth stability and reliability improvements on BOOST Move hub
    (support#320, support#324, support#417).
  • Fixed Bluetooth random address not changing on City and Technic hubs (support#1011).

Changed

  • Methods like control.limits() now check the user input and raise a
    ValueError if a value is out of bounds (support#484). This affects only
    settings setters, which are usually used as a one-off. Nothing changes to
    speed values set at runtime. These are still capped to valid numbers without
    raising exceptions.
  • Renamed precision_profile to profile in the Motor initializer.
  • In DriveBase, wheel_diameter and axle_track now accept decimal values
    for increased precision (support#830).

Removed

  • Removed DriveBase.left and DriveBase.right properties (support#910).

Release v3.3.0b2

08 Mar 22:50
Compare
Choose a tag to compare
Release v3.3.0b2 Pre-release
Pre-release

Added

  • Added precision_profile parameter to Motor initializer. This can be used
    to reduce control gains to get smoother motions for heavy loads or heavily
    gear applications where precision is less relevant.

Changed

  • Changed how the PID values are initialized for each motor. This may lead to
    slightly altered performance.

Fixed

  • Fixed move hub crashing on boot.
  • Fixed position based commands starting from the wrong position if the
    previous command was a time based command that could not hit its
    target (support#956).
  • Fixed EV3 motors getting out of date with the updated motor
    controllers (support#941) and (support#955).
  • Fixed long delay when connecting to remote on SPIKE hubs (support#466).

Release v3.3.0b1

08 Mar 22:51
Compare
Choose a tag to compare
Release v3.3.0b1 Pre-release
Pre-release

Added

  • Added support for frozen modules when building from source (support#829).
  • Added close() method to DCMotor and Motor so they can be closed and
    re-initialized later (support#904).
  • Fixed workaround for motor hold drifting away under external input
    movement (support#863).
  • Added Motor.model object to interact with the motor state estimator.
  • Added Stop.BRAKE_SMART as then option for motors. It works just like
    SMART_COAST, but with passive electrical braking.
  • Added logging support for control stall and pause state.

Fixed

  • Fixed Light controlling wrong ports on Move hub (support#913).
  • Reduced motor motion while holding position and added configurable setter and
    getter for this deadzone.
  • Fixed type checking optimized out on Move hub (support#950).
  • Fixed end-user stall flag coming up too early in position based control.
  • Further reduced stutter at low motor speeds (support#366).

Release v3.2.3

17 Feb 21:50
Compare
Choose a tag to compare

Added

  • Added close() method to DCMotor and Motor so they can be closed and
    re-initialized later (support#904).

Fixed

  • Fixed Light controlling wrong ports on Move hub (support#913).
  • Fixed type checking optimized out on Move hub (support#950).

Release v3.2.2

06 Jan 21:29
Compare
Choose a tag to compare

Fixed

  • Fixed some objects do not implement __hash__ (support#876).
  • Fixed Motor.run_time not completing under load (support#903).

Release v3.2.1

26 Dec 15:31
Compare
Choose a tag to compare

Fixed

  • Fixed imu.angular_velocity returning the values of imu.acceleration.

Release v3.2.0

20 Dec 20:58
Compare
Choose a tag to compare

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).

Release v3.2.0c1

09 Dec 22:02
Compare
Choose a tag to compare
Release v3.2.0c1 Pre-release
Pre-release

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).

Release v3.2.0b6

02 Dec 17:47
Compare
Choose a tag to compare
Release v3.2.0b6 Pre-release
Pre-release

Added

  • 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, but they will continue to exist in the firmware until further
    notice ([support#822]). New scripts are encouraged to use the (improved)
    variants available directly on Motor objects.

Fixed

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

Removed

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

Release v3.2.0b5

11 Nov 17:04
Compare
Choose a tag to compare
Release v3.2.0b5 Pre-release
Pre-release

Added

  • Added DriveBase.stalled() for convenient stall detection.
  • Added DriveBase.done() for convenient completion detection, which is
    practical when combined with wait=False.
  • Added Motor.done() for convenient completion detection, which is
    practical when combined with wait=False. Especially on Move Hub, which
    does not have the control attribute enabled.

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).