Skip to content

Releases: pybricks/pybricks-micropython

3.4.0

11 Mar 14:34

Choose a tag to compare

Changed

  • Additional error checking in pybricks.robotics.Car setup (support#1502).

3.4.0b3

06 Mar 10:25

Choose a tag to compare

3.4.0b3 Pre-release
Pre-release

Added

  • Added joystick_deadzone keyword argument to suppress controller drift in
    the XboxController (support#1473).
  • Added pybricks.tools.running to return if a stopwatch is currently running
    (support#1490).

Changed

  • Use Button parameter for XboxController (support#1488), not strings.
  • If pybricks.tools.run_task is called without arguments, it will return
    whether the runloop is running or not (support#1499).
  • On Move Hub, the verbosity of error messages is further reduced to reduce
    the firmware size, to allow for bug fixes/updates (pybricks-micropython#240).
  • Re-implemented pybricks.robotics.Car in C so it can be enabled on Move Hub
    which does not support frozen modules (support#1502).

Fixes

  • Fix pybricks.iodevices not allowing writing -128 value (support#1366) and
    raise informative error messages instead of clamping the input.

Release v3.3.0

24 Nov 10:46

Choose a tag to compare

Changed

  • Bump version from release candidate to 3.3.0.

Release v3.3.0c1

20 Nov 13:06

Choose a tag to compare

Release v3.3.0c1 Pre-release
Pre-release

Added

Changed

  • Allow Move Hub to ignore broadcast instead of raising an exception while
    connected.

Fixed

  • Fixed Move Hub accelerometer not working since v3.3.0b5 (support#1269).
  • Fixed Bluetooth chip locking up on Technic and City hubs when broadcasting (support#1095).
  • Fixed potential crash when GC occurs while observing BLE data (support#1278)
  • Fixed Technic Hub and City Hub eventually stopping observing BLE data after
    a few minutes (support#1096) by implementing an auto-reset workaround.

Release v3.3.0b9

26 Oct 15:07

Choose a tag to compare

Release v3.3.0b9 Pre-release
Pre-release

Added

  • Added hub.buttons as an alias for hub.button on buttons with one
    hub (support#1254).
  • Implemented brake for DriveBase (support#881).

Changed

  • The use_gyro method is added to the normal DriveBase class instead of
    having a separate GyroDriveBase class. Since the latter was only released
    in beta versions, this is not a breaking change (support#1054).
  • New color distance function used by the color sensors that is more
    consistent when distinguishing user-provided colors (pybricks-micropython#104).
  • Updated the unreleased BLE API to ensure sent and received objects are the
    same. Allows one of the supported types or a list/tuple thereof.

Fixed

  • Improved external device detection speed (support#1140).
  • Fixed Powered Up Tilt Sensor not working (support#1189).
  • Fixed surface=False not working in ColorSensor (support#1232).
  • Fixed PUPDevice.write not selecting correct mode (support#1213).
  • Fixed City Hub turning back on after shutdown (support#1195).
  • Fixed SPIKE hubs not broadcasting at all when attempting to broadcast in a
    tight loop (support#1151).

Release v3.3.0b8

07 Jul 15:29

Choose a tag to compare

Release v3.3.0b8 Pre-release
Pre-release

Added

  • Added use_gyro method to toggle gyro use on and off in the GyroDriveBase
    class (support#1054).
  • Added pybricks.tools.read_input_byte() function ([support#1102]).

Changed

  • Relaxed thresholds that define when the IMU is stationary, to make the
    defaults work better in noisier conditions (support#1105).

Fixed

  • Fixed Technic (Extra) Large motors not working (support#1131) on all hubs.
  • Fixed Powered Up Light not working (support#1131) on all hubs.
  • Fixed UART sensors not working on Technic Hub (support#1137).
  • Fixed incorrect number of ports on City Hub (support#1131).

Release v3.3.0b7

30 Jun 15:50

Choose a tag to compare

Release v3.3.0b7 Pre-release
Pre-release

Added

  • Added 'modes' entry to the dictionary returned by PUPDevice.info(). It
    is a tuple of (name, num_values, data_type) tuples for each available mode.
  • Added pybricks.tools.read_input_byte() function (support#1102).
  • Added pybricks.tools.hub_menu() function (support#1064).

Changed

  • Changed internal drivers for LEGO devices (motors and sensors) on all platforms.

Fixed

  • Fixed hub will not power off when Bluetooth chip crashes on City and Technic hubs (support#1095).
  • Fixed off() method in ColorLightMatrix, UltrasonicSensor, ColorSensor (support#1098).

Release v3.3.0b6

02 Jun 15:31

Choose a tag to compare

Release v3.3.0b6 Pre-release
Pre-release

Added

Changed

  • Updated BTStack to v1.5.5.

Fixed

  • Fixed BLE broadcast not working on City hub.
  • Fixed crash on BTStack hubs when program stopped during call to ble.broadcast().
  • Fixed BLE broadcast not working on Technic hub when not connected (support#1086).
  • Fixed delayed sensor sync on boot on City hub (support#747).

Release v3.3.0b5

16 May 20:20

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

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.