Skip to content

Releases: pybricks/pybricks-micropython

3.5.0

11 Apr 12:23
Compare
Choose a tag to compare

Changelog

[Unreleased]

[3.5.0] - 2024-04-11

Changed

  • Bump version from release candidate to 3.5.0 without additional changes.

[3.5.0b2] - 2024-04-05

Added

  • Added optional keyword arguments to pybricks.tools.read_input_byte() for
    automatic conversion via chr and to skip to the last byte (support#1574).
  • Added disconnect method to pybricks.pupdevices.Remote and
    pybricks.iodevices.LWP3Device (support#802).

Changed

  • Raise a descriptive error when the Car class can't find a steering mechanism
    end stop within 10 seconds (support#1564).
  • Extended region of readable data with hub.system.storage to include
    user program (pybricks-micropython#243).

Fixed

  • Fixed hubs not shutting down when holding hub button (support#1419).

[3.5.0b1] - 2024-03-21

Added

  • Added support for rumble in XboxController (support#1024).
  • Added Button.UP, Button.DOWN, Button.LEFT, and Button.RIGHT to
    XboxController buttons method (support#1537). The separate directional
    pad method remains available.

Changed

  • Allow single floating point value for brightness array (support#1547).

[3.4.0] - 2024-03-11

Changed

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

[3.4.0b3] - 2024-03-05

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.

[3.4.0b2] - 2024-02-10

Added

  • Added pybricks.iodevices.XboxController (support#191, support#1024).
  • Re-enable pybricks.iodevices.LWP3Device missing from last beta.

Fixes

  • Fix hub not shutting down while a program runs (support#1438).

Changed

  • On Technic Hub and City Hub, the Bluetooth chip is now configured to reject
    connection parameter updates from peripherals. This avoids interference with
    broadcast when used with the Xbox controller.

[3.4.0b1] - 2024-01-30

Added

  • Added pybricks.robotics.Car for controlling a car with one or more drive
    motors and a steering motor. This is a convenience class that combines
    several motors to provide the functionality used in most Technic cars.

Fixes

  • Fix observing stopping on City and Technic hubs after some time (support#1096).
  • Fix Bluetooth locking up when connecting Bluetooth adapter with small MTU to Technic and City hubs (support#947).
  • Fix Technic Hub not always starting automatically after firmware exiting
    update mode (support#1408). Also apply this to Move Hub and City Hub.
  • Fix Bluetooth locking up when connecting Bluetooth adapter with small MTU to
    Technic and City hubs (support#947).
  • Fix Remote pairing difficulty (support#880).
  • Fix Remote light not working or crashing the hub (support#1357).
  • Fix Technic Hub and City Hub broadcasting missing messages (support#1357).
  • Fix Technic Hub and City Hub broadcasting delays.

Changed

  • Changed polarity of output in the Light class. This makes no difference for
    the Light class, but it makes the class usable for certain custom
    devices ([pybricks-micropython#166]).
  • Improved Bluetooth peripheral scanning and connect process to allow for new
    device types to be added in the future.

Changed

  • Changed keypad return type to set instead of tuple. This affects the remote
    and hubs.

[3.3.0] - 2023-11-24

Changed

  • Bump version from release candidate to 3.3.0.

[3.3.0c1] - 2023-11-20

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.

[3.3.0b9] - 2023-10-26

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

[3.3.0b8] - 2023-07-07

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

[3.3.0b7] - 2023-06-30

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...
Read more

3.5.0b2

05 Apr 08:34
Compare
Choose a tag to compare
3.5.0b2 Pre-release
Pre-release

3.5.0b2 - 2024-04-05

Added

  • Added optional keyword arguments to pybricks.tools.read_input_byte() for
    automatic conversion via chr and to skip to the last byte (support#1574).
  • Added disconnect method to pybricks.pupdevices.Remote and
    pybricks.iodevices.LWP3Device (support#802).

Changed

  • Raise a descriptive error when the Car class can't find a steering mechanism
    end stop within 10 seconds (support#1564).
  • Extended region of readable data with hub.system.storage to include
    user program (pybricks-micropython#243).

Fixed

  • Fixed hubs not shutting down when holding hub button (support#1419).

3.5.0b1 - 2024-03-21

Added

  • Added support for rumble in XboxController (support#1024).
  • Added Button.UP, Button.DOWN, Button.LEFT, and Button.RIGHT to
    XboxController buttons method (support#1537). The separate directional
    pad method remains available.

Changed

  • Allow single floating point value for brightness array (support#1547).

3.5.0b1

21 Mar 18:06
Compare
Choose a tag to compare
3.5.0b1 Pre-release
Pre-release

3.5.0b1 - 2024-03-21

Added

  • Added support for rumble in XboxController (support#1024).
  • Added Button.UP, Button.DOWN, Button.LEFT, and Button.RIGHT to
    XboxController buttons method (support#1537). The separate directional
    pad method remains available.

Changed

  • Allow single floating point value for brightness array (support#1547).

3.4.0

11 Mar 14:34
Compare
Choose a tag to compare

3.4.0 - 2024-03-11

Changed

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

3.4.0b3 - 2024-03-05

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.

3.4.0b2 - 2024-02-10

Added

  • Added pybricks.iodevices.XboxController (support#191, support#1024).
  • Re-enable pybricks.iodevices.LWP3Device missing from last beta.

Fixes

  • Fix hub not shutting down while a program runs (support#1438).

Changed

  • On Technic Hub and City Hub, the Bluetooth chip is now configured to reject
    connection parameter updates from peripherals. This avoids interference with
    broadcast when used with the Xbox controller.

3.4.0b1 - 2024-01-30

Added

  • Added pybricks.robotics.Car for controlling a car with one or more drive
    motors and a steering motor. This is a convenience class that combines
    several motors to provide the functionality used in most Technic cars.

Fixes

  • Fix observing stopping on City and Technic hubs after some time (support#1096).
  • Fix Bluetooth locking up when connecting Bluetooth adapter with small MTU to Technic and City hubs (support#947).
  • Fix Technic Hub not always starting automatically after firmware exiting
    update mode (support#1408). Also apply this to Move Hub and City Hub.
  • Fix Bluetooth locking up when connecting Bluetooth adapter with small MTU to
    Technic and City hubs (support#947).
  • Fix Remote pairing difficulty (support#880).
  • Fix Remote light not working or crashing the hub (support#1357).
  • Fix Technic Hub and City Hub broadcasting missing messages (support#1357).
  • Fix Technic Hub and City Hub broadcasting delays.

Changed

  • Changed polarity of output in the Light class. This makes no difference for
    the Light class, but it makes the class usable for certain custom
    devices ([pybricks-micropython#166]).
  • Improved Bluetooth peripheral scanning and connect process to allow for new
    device types to be added in the future.

Changed

  • Changed keypad return type to set instead of tuple. This affects the remote
    and hubs.

3.4.0b3

06 Mar 10:25
Compare
Choose a tag to compare
3.4.0b3 Pre-release
Pre-release

3.4.0b3 - 2024-03-05

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.

3.4.0b2 - 2024-02-10

Added

  • Added pybricks.iodevices.XboxController (support#191, support#1024).
  • Re-enable pybricks.iodevices.LWP3Device missing from last beta.

Fixes

  • Fix hub not shutting down while a program runs (support#1438).

Changed

  • On Technic Hub and City Hub, the Bluetooth chip is now configured to reject
    connection parameter updates from peripherals. This avoids interference with
    broadcast when used with the Xbox controller.

3.4.0b1 - 2024-01-30

Added

  • Added pybricks.robotics.Car for controlling a car with one or more drive
    motors and a steering motor. This is a convenience class that combines
    several motors to provide the functionality used in most Technic cars.

Fixes

  • Fix observing stopping on City and Technic hubs after some time (support#1096).
  • Fix Bluetooth locking up when connecting Bluetooth adapter with small MTU to Technic and City hubs (support#947).
  • Fix Technic Hub not always starting automatically after firmware exiting
    update mode (support#1408). Also apply this to Move Hub and City Hub.
  • Fix Bluetooth locking up when connecting Bluetooth adapter with small MTU to
    Technic and City hubs (support#947).
  • Fix Remote pairing difficulty (support#880).
  • Fix Remote light not working or crashing the hub (support#1357).
  • Fix Technic Hub and City Hub broadcasting missing messages (support#1357).
  • Fix Technic Hub and City Hub broadcasting delays.

Changed

  • Changed polarity of output in the Light class. This makes no difference for
    the Light class, but it makes the class usable for certain custom
    devices ([pybricks-micropython#166]).
  • Improved Bluetooth peripheral scanning and connect process to allow for new
    device types to be added in the future.

Changed

  • Changed keypad return type to set instead of tuple. This affects the remote
    and hubs.

Release v3.3.0

24 Nov 10:46
Compare
Choose a tag to compare

[3.3.0] - 2023-11-24

Changed

  • Bump version from release candidate to 3.3.0.

[3.3.0c1] - 2023-11-20

Added

  • Added MoveHub.imu.tilt() ([support#539]).
  • Enabled hub init orientation support for Move Hub ([support#539]).

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.

[3.3.0b9] - 2023-10-26

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

[3.3.0b8] - 2023-07-07

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

[3.3.0b7] - 2023-06-30

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

[3.3.0b6] - 2023-06-02

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

[3.3.0b5] - 2023-05-16

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

[3.3.0b4] - 2023-04-21

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.

[3.3.0b3] - 2023-03-28

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

[sup...

Read more

Release v3.3.0c1

20 Nov 13:06
Compare
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
Compare
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
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