Releases: pybricks/pybricks-micropython
Releases · pybricks/pybricks-micropython
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
Matrixobjects giving bad values. - Fixed Bluetooth sometimes locking up on Technic/City hubs (support#567).
- Fixed
GyroDriveBasebeing 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
GyroDriveBaseclass to control drivebase steering with the gyro. - Added optional
windowparameter toMotor.speedto 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_directionfromDriveBaseinitializer. This was
temporarily added in the previous beta release to facilitate gyro support,
but made it more complicated than needed (support#992). - Removed
pybricks.geometryin an effort to reduce the number of modules with
just a few elements.Matrixandvectorhave 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_directiontoDriveBaseinitializer. 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.NONEnot 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
ValueErrorif 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_profiletoprofilein theMotorinitializer. - In
DriveBase,wheel_diameterandaxle_tracknow accept decimal values
for increased precision (support#830).
Removed
- Removed
DriveBase.leftandDriveBase.rightproperties (support#910).
Release v3.3.0b2
Added
- Added
precision_profileparameter toMotorinitializer. 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 toDCMotorandMotorso 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.modelobject to interact with the motor state estimator. - Added
Stop.BRAKE_SMARTasthenoption for motors. It works just like
SMART_COAST, but with passive electrical braking. - Added logging support for control stall and pause state.
Fixed
- Fixed
Lightcontrolling 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 toDCMotorandMotorso they can be closed and
re-initialized later (support#904).
Fixed
- Fixed
Lightcontrolling 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_timenot completing under load (support#903).
Release v3.2.1
Fixed
- Fixed
imu.angular_velocityreturning the values ofimu.acceleration.
Release v3.2.0
Changed
- Buffered stdout is flushed before ending user program.
Fixed
- Fixed SPIKE/MINDSTORMS hubs advertising after disconnect while user program
is still running (support#849). - Fixed Essential hub hanging on boot when bootloader entered but USB cable
not connected (support#821). - Fixed button needs debouncing on City/Technic/Essential hubs (support#716).
- Fixed motor hold drifting away under external input movement (support#863).
Release v3.2.0c1
Fixed
- Fixed
motor.control.limits()not working if acceleration wasNone. - Fixed crash on calling methods on uninitialized objects (support#805).
- Fixed crash on calling methods in
__init__(self, ...)before
callingsuper().__init(...)on uninitialized objects (support#777). - Reverted Pybricks Code stop button raises
SystemAbortinstead of
SystemExit(support#834). - Improved stop message raised on
SystemExitandSystemAbort(support#836). - Fixed Technic Hub and City Hub sometimes not shutting down when a Bluetooth
operation is busy (support#814). - Fixed
hub.systemmethods not working (support#837).
Changed
- Changed default XYZ orientation of the Technic Hub and the Essential Hub to
match the SPIKE Prime Hub and Move Hub (support#848).
Release v3.2.0b6
Added
- Added support for
PBIO_PYBRICKS_COMMAND_REBOOT_TO_UPDATE_MODEPybricks
Profile BLE command. - Implemented
Motor.load()which now measures load both during active
conditions (run) and passive conditions (dc).
Changed
- The Pybricks Code stop button will force the program to exit even if the user
catches theSystemExitexception (pybricks-micropython#117). - Changed
PrimeHub.display.image()toPrimeHub.display.icon()and renamed
its kwarg fromimagetoicon(support#409). - Deprecated
Control.load(),Control.stalled(), andControl.done()
methods, but they will continue to exist in the firmware until further
notice ([support#822]). New scripts are encouraged to use the (improved)
variants available directly onMotorobjects.
Fixed
- Fixed connecting
Remoteon BOOST move hub (support#793).
Removed
- Removed
hub.system.reset()method. - Disabled
micropythonmodule on Move Hub.