Releases: pybricks/pybricks-micropython
Releases · pybricks/pybricks-micropython
Release v3.3.0b8
v3.3.0b8
Release v3.3.0b7
v3.3.0b7
Release v3.3.0b6
v3.3.0b6
Release v3.3.0b5
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).
Release v3.3.0b4
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.
Release v3.3.0b3
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).
Release v3.3.0b2
Added
- Added
precision_profile
parameter toMotor
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
Added
- Added support for frozen modules when building from source (support#829).
- Added
close()
method toDCMotor
andMotor
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
asthen
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
Added
- Added
close()
method toDCMotor
andMotor
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
Fixed
- Fixed some objects do not implement
__hash__
(support#876). - Fixed
Motor.run_time
not completing under load (support#903).