Skip to content

Releases: pybricks/pybricks-micropython

Release v3.3.0b8

07 Jul 15:29
Compare
Choose a tag to compare
Release v3.3.0b8 Pre-release
Pre-release
v3.3.0b8

Release v3.3.0b7

30 Jun 15:50
Compare
Choose a tag to compare
Release v3.3.0b7 Pre-release
Pre-release
v3.3.0b7

Release v3.3.0b6

02 Jun 15:31
Compare
Choose a tag to compare
Release v3.3.0b6 Pre-release
Pre-release
v3.3.0b6

Release v3.3.0b5

16 May 20:20
Compare
Choose a tag to compare
Release v3.3.0b5 Pre-release
Pre-release

Added

  • Enabled the gc module (except on BOOST Move hub).
  • Added hub.ble attribute for broadcasting/observing (pybricks-micropython#158).

Changed

  • Updated MicroPython to v1.20.0.

Fixed

Release v3.3.0b4

21 Apr 21:37
Compare
Choose a tag to compare
Release v3.3.0b4 Pre-release
Pre-release

Fixed

  • Fixed gyro on Technic Hub occasionally giving a bad value, which made it
    not calibrate properly (support#1026).
  • Fixed discrepancy in heading value across hubs by accounting for sampling
    time (support#1022).
  • Fixed iterator for Matrix objects giving bad values.
  • Fixed Bluetooth sometimes locking up on Technic/City hubs (support#567).
  • Fixed GyroDriveBase being slow to respond to heading perturbations when
    driving at high speed (support#1032).

Added

  • Added pybricks.tools.cross(a, b) to get a vector cross product.
  • Added experimental implementation of hub.imu.heading() ([support#912]).
  • Added support for reading single-axis rotation, which is useful in
    applications like balancing robots, where full 3D orientation is not
    required, or even undesired.
  • Added hub.imu.ready() to check that the IMU has been calibrated and is
    ready for use.
  • Added GyroDriveBase class to control drivebase steering with the gyro.
  • Added optional window parameter to Motor.speed to specify the
    differentiation window size that determines the average speed. This lets the
    user choose smaller values to get a more responsive (but noisier) or higher
    values to get a smoother (but more delayed) speed signal.

Removed

  • Removed positive_direction from DriveBase initializer. This was
    temporarily added in the previous beta release to facilitate gyro support,
    but made it more complicated than needed (support#992).
  • Removed pybricks.geometry in an effort to reduce the number of modules with
    just a few elements. Matrix and vector have moved to tools. The Axis
    enum was moved to parameters. Each item can still be imported from its
    original location for backwards compatibility.

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