Releases: pybricks/pybricks-micropython
Releases · pybricks/pybricks-micropython
4.0.0
4.0.0 - 2026-06-08
Changed
- Temporarily disable unfinished USB support for SPIKE so it doesn't block the
stable release. It will remain enabled in beta releases.
Fixed
- Fixed button
LEFT_DOWNreturningLEFT_UPin the method
ev3devices.InfraredSensor.keypad()(support#2724). - Fixed
pybricks.pupdevices.Remote.namenot setting name (support#2720).
4.0.0b11 - 2026-05-30
Added
- Added
power_pin(int) onUARTDevice()
Changed
- Changed
powered(bool) topower_pin(int) onI2CDevice()to make it
generic enough for alliodeviceslikeUARTDevice. Added permission request. - Moved BLE broadcasting and observing to
pybricks.messaging.BLERadioinstead
of an object on each hub (support#2274). - Moved
pybricks.tools.AppDatatopybricks.messaging.AppData(support#2274).
Fixed
- Fixed SPIKE Prime and possibly other hubs with Bluetooth stuck on shutdown in
case of an unhandled Bluetooth issue. This fixes the forced shutdown guard.
This would otherwise prevent shutdown and reboot in some cases if the hub
was being shutdown while still connected to Bluetooth. - Fixed SPIKE Prime waiting indefinitely on sending a Bluetooth message if the
hub became disconnected. On shutdown, this would then lead to the issue above. - Increased number of data messages that may be missed in the LUMP protocol before
falling out of sync. We were more lenient about this inv3.6.1and third
party devices have come to rely on this, so we keep it (support#2698).
4.0.0b10 - 2026-05-15
Added
- Enabled
pybricks.tools.AppDataon Move Hub.
Changed
- Changed initialization of
AppDatato allow multiple modes instead of a
single format.ustruct.unpackis no longer automatically called. Now it
works seemlessly with the camera sensors in Pybricks Code.
Fixed
- Fixed EV3 apps not loading images (pybricks-micropython#470).
4.0.0b9 - 2026-04-16
Added
- Added
Port Viewon EV3 apps tab.
Fixed
- Fixed USB connection resetting on app losing focus or high print volume.
4.0.0b8 - 2026-03-19
Added
- Added
pybricks.pupdevices.MarioHubto control it as a peripheral. It
cannot be used as a standalone device since it cannot ne updated. - Added
DriveBase.hold()method (support#2621). - Added
Motor Button ControlandMotor IR Controlon EV3 apps tab. - Enabled USB coding support for SPIKE Prime, SPIKE Essential, and MINDSTORMS
Robot Inventor.
Changed
- The EV3 Color Sensor now returns
Color.NONEinstead ofNonewhen no color
is detected, for consistency with other Color Sensors (support#2603). - The EV3 Infrared Sensor buttons method now returns a set instead of a list,
for consistency with hub buttons.
Fixed
- Fixed EV3 light animation stopping when screen is used (support#2599).
- Fixed Powered Up motors not resetting to the absolute value (support#2620).
- Fixed segfault when user or block code generator forgets
awaitin one or
more tasks that use the same resource (like aDriveBase) along
withrace=True(support#2621).
4.0.0b7 - 2026-02-26
Added
- Added supporters to EV3 closing credits.
Fixed
- Fixed EV3 screen animation not closing on user display actions (support#2585).
- Fixed EV3 Touch Sensor not detected it is pressed while plugged in (support#2589).
- Fixed EV3 Large and Medium Motors sometimes not detected (support#2536).
- Fixed EV3 left up button not detected (support#2592).
4.0.0b6 - 2026-02-19
Added
- Added
connect=Trueparameter to theRemote,LWP3Device
andXboxControllerclasses, along with aconnect()method to optionally
connect later (support#1800). - Added
timeoutandnameparameters to theXboxController. - Added support for Powered Up touch sensors that are supported according to
the specification, but were never released. Users can make their own switch
inputs (pybricks-micropython#454). - Added
pybricks.pupdevices.TechnicMoveHubto control it as a peripheral. It
cannot be used as a standalone device since it cannot run third-party firmware. - Added
pybricks.pupdevices.DuploTrainto control it as a peripheral. It
cannot be used as a standalone device since it cannot ne updated. - Added basic user interface for EV3 brick.
Changed
- Changed the default
XboxControllerconnection timeout from indefinite
to 10 seconds, consistent with theRemote. - Devices like the
Remote,LWP3Device, and theXboxControllernow stay
connected when the program ends (support#1382).
Fixed
- Fixed EV3 motor detection not working correctly while moving (support#2536).
4.0.0b5 - 2026-01-30
Added
- Added support for absolute turns with and without the gyro
withdrive_base.turn(angle, absolute=True)(pybricks-micropython#458). - Added support for coordinate traversals with
drive_base.move_by(dx, dy)for
practical navigation (pybricks-micropython#458).
Changed
- Reset IMU heading to
0.0at the start of a user program for consistent
drivebase behavior.
Fixed
- Fix missing classes in
pybricks.iodeviceson SPIKE Prime (regression in
4.0.0b2) (pybricks-micropython#456).
4.0.0b4 - 2026-01-22
Added
- Enabled NXT Light Sensor, NXT Touch Sensor, NXT Sound Sensor on NXT.
- Added
host_connected_usbtohub.system.info()dictionary. - Added
program_idtohub.system.info()dictionary (support#2538).
Changed
- Reduced user stack size to
12 KBon SPIKE Prime Hub to make it the same as
SPIKE Essential Hub. This frees up some RAM for system resources, and we never
use this much in practice. - Allow simultaneous USB and up to two Bluetooth connections to SPIKE Prime.
Press the Bluetooth button to allow a connection when already connected.
Fixed
- Fixed internal rounding error that could could cause a Drive Base to be 1 mm
off after driving 3 meters, depending on configuration parameters (support#2500). - Fixed Powered Up remote light getting the wrong color (support#2497).
- Fix shutdown animation not visible when shutting down due to Bluetooth glitches (support#2521).
- Fixed Powered Up remote raising the wrong exception on timeout (support#2521).
- Fixed Xbox Controller connection waiting indefinitely if it isn't in pairing mode (support#2521).
- Fixed Xbox Controller attempting to pair with host (support#2522).
- Fixed Powered Up remote and Xbox Controller working only after the first
connection. All of the above Remote and Xbox Controller were introduced in
the previous beta release, so did not affect any stable release (support#2521). - Fixed Xbox Controller sometimes not working the first time (support#1509).
- Fixed motors sometimes not working after boot (support#2550).
[4.0.0b3] - 2025-12-05
Added
- Added preliminary BTstack support for EV3 ([pybricks-micropython#405]).
Changed
- Make 3D orientation default for heading and drivebase heading control ([support#1962]).
- Improved color detection when using default colors. Also changed the HSV calculation
for the SPIKE Color Sensor and Boost Color and Distance Sensor to make them
more similar. User code should measure HSV values again in old co...
4.0.0b11
4.0.0b11 - 2026-05-30
Added
- Added
power_pin(int) onUARTDevice()
Changed
- Changed
powered(bool) topower_pin(int) onI2CDevice()to make it
generic enough for alliodeviceslikeUARTDevice. Added permission request. - Moved BLE broadcasting and observing to
pybricks.messaging.BLERadioinstead
of an object on each hub (support#2274). - Moved
pybricks.tools.AppDatatopybricks.messaging.AppData(support#2274).
Fixed
- Fixed SPIKE Prime and possibly other hubs with Bluetooth stuck on shutdown in
case of an unhandled Bluetooth issue. This fixes the forced shutdown guard.
This would otherwise prevent shutdown and reboot in some cases if the hub
was being shutdown while still connected to Bluetooth. - Fixed SPIKE Prime waiting indefinitely on sending a Bluetooth message if the
hub became disconnected. On shutdown, this would then lead to the issue above. - Increased number of data messages that may be missed in the LUMP protocol before
falling out of sync. We were more lenient about this inv3.6.1and third
party devices have come to rely on this, so we keep it (support#2698).
4.0.0b10
Changelog
4.0.0b10 - 2026-05-15
Added
- Enabled
pybricks.tools.AppDataon Move Hub.
Changed
- Changed initialization of
AppDatato allow multiple modes instead of a
single format.ustruct.unpackis no longer automatically called. Now it
works seemlessly with the camera sensors in Pybricks Code.
Fixed
- Fixed EV3 apps not loading images (pybricks-micropython#470).
4.0.0b9
Added
- Added
Port Viewon EV3 apps tab.
Fixed
- Fixed USB connection resetting on app losing focus or high print volume.
4.0.0b8
Added
- Added
pybricks.pupdevices.MarioHubto control it as a peripheral. It
cannot be used as a standalone device since it cannot ne updated. - Added
DriveBase.hold()method (support#2621). - Added
Motor Button ControlandMotor IR Controlon EV3 apps tab. - Enabled USB coding support for SPIKE Prime, SPIKE Essential, and MINDSTORMS
Robot Inventor.
Changed
- The EV3 Color Sensor now returns
Color.NONEinstead ofNonewhen no color
is detected, for consistency with other Color Sensors (support#2603). - The EV3 Infrared Sensor buttons method now returns a set instead of a list,
for consistency with hub buttons.
Fixed
- Fixed EV3 light animation stopping when screen is used (support#2599).
- Fixed Powered Up motors not resetting to the absolute value (support#2620).
- Fixed segfault when user or block code generator forgets
awaitin one or
more tasks that use the same resource (like aDriveBase) along
withrace=True(support#2621).
4.0.0b7
Added
- Added supporters to EV3 closing credits.
Fixed
- Fixed EV3 screen animation not closing on user display actions (support#2585).
- Fixed EV3 Touch Sensor not detected it is pressed while plugged in (support#2589).
- Fixed EV3 Large and Medium Motors sometimes not detected (support#2536).
- Fixed EV3 left up button not detected (support#2592).
4.0.0b6
Added
- Added
connect=Trueparameter to theRemote,LWP3Device
andXboxControllerclasses, along with aconnect()method to optionally
connect later (support#1800). - Added
timeoutandnameparameters to theXboxController. - Added support for Powered Up touch sensors that are supported according to
the specification, but were never released. Users can make their own switch
inputs (pybricks-micropython#454). - Added
pybricks.pupdevices.TechnicMoveHubto control it as a peripheral. It
cannot be used as a standalone device since it cannot run third-party firmware. - Added
pybricks.pupdevices.DuploTrainto control it as a peripheral. It
cannot be used as a standalone device since it cannot ne updated. - Added basic user interface for EV3 brick.
Changed
- Changed the default
XboxControllerconnection timeout from indefinite
to 10 seconds, consistent with theRemote. - Devices like the
Remote,LWP3Device, and theXboxControllernow stay
connected when the program ends (support#1382).
Fixed
- Fixed EV3 motor detection not working correctly while moving (support#2536).
4.0.0b5
Added
- Added support for absolute turns with and without the gyro
withdrive_base.turn(angle, absolute=True)(pybricks-micropython#458). - Added support for coordinate traversals with
drive_base.move_by(dx, dy)for
practical navigation (pybricks-micropython#458).
Changed
- Reset IMU heading to
0.0at the start of a user program for consistent
drivebase behavior.
Fixed
- Fix missing classes in
pybricks.iodeviceson SPIKE Prime (regression in
4.0.0b2) (pybricks-micropython#456).
4.0.0b4
Added
- Enabled NXT Light Sensor, NXT Touch Sensor, NXT Sound Sensor on NXT.
- Added
host_connected_usbtohub.system.info()dictionary. - Added
program_idtohub.system.info()dictionary (support#2538).
Changed
- Reduced user stack size to
12 KBon SPIKE Prime Hub to make it the same as
SPIKE Essential Hub. This frees up some RAM for system resources, and we never
use this much in practice. - Allow simultaneous USB and up to two Bluetooth connections to SPIKE Prime.
Press the Bluetooth button to allow a connection when already connected.
Fixed
- Fixed internal rounding error that could could cause a Drive Base to be 1 mm
off after driving 3 meters, depending on configuration parameters (support#2500). - Fixed Powered Up remote light getting the wrong color (support#2497).
- Fix shutdown animation not visible when shutting down due to Bluetooth glitches (support#2521).
- Fixed Powered Up remote raising the wrong exception on timeout (support#2521).
- Fixed Xbox Controller connection waiting indefinitely if it isn't in pairing mode (support#2521).
- Fixed Xbox Controller attempting to pair with host (support#2522).
- Fixed Powered Up remote and Xbox Controller working only after the first
connection. All of the above Remote and Xbox Controller were introduced in
the previous beta release, so did not affect any stable release (support#2521). - Fixed Xbox Controller sometimes not working the first time (support#1509).
- Fixed motors sometimes not working after boot (support#2550).
4.0.0b3
Added
- Added preliminary BTstack support for EV3 (pybricks-micropython#405).
Changed
- Make 3D orientation default for heading and drivebase heading control (support#1962).
- Improved color detection when using default colors. Also changed the HSV calculation
for the SPIKE Color Sensor and Boost Color and Distance Sensor to make them
more similar. User code should measure HSV values again in old code (pybricks-micropython#421).
Fixed
- Fixed
race=Falseignored inpybricks.tools.multitask(). (support#2468) - Fixed Essential Hub button being disabled after power off so it could not be
switched on again. - Fixed
TechnicHubclass being unavailable on Technic Hub in a recent
pre-release (pybricks-micropython#425).