Releases: pybricks/pybricks-micropython
Releases · pybricks/pybricks-micropython
3.5.0
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 viachr
and to skip to the last byte (support#1574). - Added
disconnect
method topybricks.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
, andButton.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
theXboxController
(support#1473). - Added
pybricks.tools.running
to return if a stopwatch is currently running
(support#1490).
Changed
- Use
Button
parameter forXboxController
(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
- 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 forhub.button
on buttons with one
hub (support#1254). - Implemented
brake
forDriveBase
(support#881).
Changed
- The
use_gyro
method is added to the normalDriveBase
class instead of
having a separateGyroDriveBase
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 inColorSensor
(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 theGyroDriveBase
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 byPUPDevice.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...
3.5.0b2
3.5.0b2 - 2024-04-05
Added
- Added optional keyword arguments to
pybricks.tools.read_input_byte()
for
automatic conversion viachr
and to skip to the last byte (support#1574). - Added
disconnect
method topybricks.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
, andButton.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
3.5.0b1 - 2024-03-21
Added
- Added support for rumble in
XboxController
(support#1024). - Added
Button.UP
,Button.DOWN
,Button.LEFT
, andButton.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
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
theXboxController
(support#1473). - Added
pybricks.tools.running
to return if a stopwatch is currently running
(support#1490).
Changed
- Use
Button
parameter forXboxController
(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
3.4.0b3 - 2024-03-05
Added
- Added
joystick_deadzone
keyword argument to suppress controller drift in
theXboxController
(support#1473). - Added
pybricks.tools.running
to return if a stopwatch is currently running
(support#1490).
Changed
- Use
Button
parameter forXboxController
(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
[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 forhub.button
on buttons with one
hub (support#1254). - Implemented
brake
forDriveBase
(support#881).
Changed
- The
use_gyro
method is added to the normalDriveBase
class instead of
having a separateGyroDriveBase
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 inColorSensor
(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 theGyroDriveBase
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 byPUPDevice.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 inColorLightMatrix
,UltrasonicSensor
,ColorSensor
(support#1098).
[3.3.0b6] - 2023-06-02
Added
- Enabled builtin
set
type (except on BOOST Move hub) (support#402). - Added experimental support for multitasking (pybricks-micropython#166).
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
- Fixed stdin containing
0x06
command byte (support#1052). - Fixed motor process causing delays on ev3dev (support#1035).
[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 toMotor.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
fromDriveBase
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
andvector
have moved totools
. TheAxis
enum was moved toparameters
. Each item can still be imported from its
original location for backwards compatibility.
[3.3.0b3] - 2023-03-28
Added
- Added
positive_direction
toDriveBase
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
toprofile
in theMotor
initializer. - In
DriveBase
,wheel_diameter
andaxle_track
now accept decimal values
for increased precision ([support#830]).
Removed
- Removed
DriveBase.left
andDriveBase.right
properties ([support#910]).
[sup...
Release v3.3.0c1
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.
Release v3.3.0b9
Added
- Added
hub.buttons
as an alias forhub.button
on buttons with one
hub (support#1254). - Implemented
brake
forDriveBase
(support#881).
Changed
- The
use_gyro
method is added to the normalDriveBase
class instead of
having a separateGyroDriveBase
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 inColorSensor
(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
v3.3.0b8
Release v3.3.0b7
v3.3.0b7