Skip to content

Commit e13b170

Browse files
committed
v4.0.0b1
1 parent 556901e commit e13b170

File tree

2 files changed

+79
-8
lines changed

2 files changed

+79
-8
lines changed

CHANGELOG.md

Lines changed: 77 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,94 @@
44

55
## [Unreleased]
66

7+
## [4.0.0b1] - 2025-11-25
8+
79
### Added
8-
- Experimental support for USB connectivity on SPIKE Prime ([pybricks-micropython#208]).
10+
- Experimental support for USB connectivity on SPIKE Prime ([pybricks-micropython#208]). Currently disabled by default.
911
- Initial support for `pybricks.iodevices.UARTDevice` ([support#220]).
1012
- Enabled previously hidden support for multiple code
11-
slots ([pybricks-micropython#264], [pybricks-micropython#312]). A new
12-
(unreleased) version of Pybricks Code is needed to use this.
13+
slots ([pybricks-micropython#264], [pybricks-micropython#312]).
14+
- Added the following status flags to the Pybricks protocol:
15+
- `PBIO_PYBRICKS_STATUS_BATTERY_HIGH_TEMP_SHUTDOWN = 10`
16+
- `PBIO_PYBRICKS_STATUS_BATTERY_HIGH_TEMP_WARNING = 11`
17+
- `PBIO_PYBRICKS_STATUS_USB_HOST_CONNECTED = 12`
18+
- New embedded firmware for LEGO MINDSTORMS EV3:
19+
- Fast boot on TI AM1808.
20+
- New clock driver.
21+
- New display driver.
22+
- New SPI storage driver.
23+
- New USB controller.
24+
- New motor driver.
25+
- New UART driver with hardware and PRU support.
26+
- New PRU firmware for LED PWM control.
27+
- New GPIO driver.
28+
- New ADC driver.
29+
- New DCM driver for EV3 auto-detection.
30+
- Enabled the original `pybricks.ev3devices` to run on the new embedded EV3 port:
31+
- Color Sensor.
32+
- Touch Sensor.
33+
- Infrared Sensor and Beacon.
34+
- Gyro Sensor in angle + rate mode, with calibration option.
35+
- Ultrasonic Sensor.
36+
- Large and Medium Motor.
37+
- Enabled the original `pybricks.nxtdevices` to run on the new embedded EV3 port:
38+
- Touch Sensor, including 1.0 version without auto-detection.
39+
- Color Sensor, with background process for background light cancellation.
40+
- Light Sensor, with background process for background light cancellation.
41+
- Ultrasonic Sensor, including I2C quirks for LEGO Devices.
42+
- Sound Sensor.
43+
- Temperature Sensor in I2C mode.
44+
- Energy Meter.
45+
- vernier Adapter.
46+
- Enabled all original `pybricks.iodevices`, all async-compatible:
47+
- `PUPDevice` / `LUMPDevice` on Powered Up and EV3.
48+
- `AnalogSensor` on EV3.
49+
- `I2CDevice` on EV3.
50+
- `UARTDevice` on EV3 and Powered Up. Added ability to reset protocol.
51+
- `DCMotor` on EV3
52+
- Added new `pbio/image` module for image frame handling and display support.
53+
- Added a new Virtual Hub to simulate the embedded Pybricks ports.
1354

1455
### Changed
15-
- Extensive overhaul of UART and port drivers on all hubs. This affects all
16-
official LEGO sensors on all hubs.
56+
- Extensive overhaul of UART drivers on all hubs. This affects all
57+
official LEGO UART sensors on all hubs.
58+
- Extensive overhaul of the `pbio/port` module. LEGO mode can now be disabled
59+
to enable direct access to UART or I2C or ADC on compatible platforms.
60+
- Extensive overhaul of MicroPython async drivers to make it work across
61+
Bluetooth drivers.
62+
- Extensive overhaul of Bluetooth drivers to split out common code and make
63+
async code more stable and safely cancellable.
64+
- Overhaul of Bluetooth and USB events through a unified `pbio/sys/host` interface.
1765
- LWP3Device.read() now gives buffered notification values instead of blocking
1866
until a value arrives.
67+
- Replaced Contiki runloop with new Pybricks protothreads.
68+
- Enabled `flto` for smaller firmware build size.
69+
- Upgraded to MicroPython 1.26. The MPY minor version has changed to v6.3.
70+
This only affects people using native code in their user programs.
71+
- Update NXT build to follow along with EV3 wherever possible.
72+
- Unified `mphalport` and `micropython.c` interface for all hubs.
73+
- Improved power-off sequence to better handle sensors turning off and internal
74+
devices like the IMU turning off.
75+
- Restored line numbers in error messages on Move Hub
76+
- Enabled `CSUPEROPT` on Move Hub and Technic Hub to reduce build size at a
77+
slight reduction in VM speed.
1978

2079
### Fixed
2180
- Reduced hanging when broadcasting and observing at the same time with Technic
2281
Hub ([support#2206]).
2382
- Fixed hub shutting down immediately after disconnecting Bluetooth when
2483
no program had run for a while.
84+
- Fixed some error messages not printing on a new line if a program ends.
85+
- Fix speaker when playing a frequency of 0.
86+
- pybricks.tools: Fix crash when cross() args are wrong type.
87+
88+
### Removed
89+
- Removed support for Pybricks on ev3dev. The official 2.0 release remains
90+
available for anyone who needs Pybricks on Debian Linux.
91+
- Removed the experimental build of Pybricks on EV3RT. This is no longer needed
92+
now that the embedded build is ready.
93+
- Removed unix-variant of the Virtual Hub. This has been replaced with a simulated
94+
embedded hub.
2595

2696
[support#220]: https://github.com/pybricks/support/issues/220
2797
[support#2206]: https://github.com/pybricks/support/issues/2206
@@ -1099,7 +1169,8 @@ Prerelease changes are documented at [support#48].
10991169

11001170

11011171
<!-- diff links for headers -->
1102-
[Unreleased]: https://github.com/pybricks/pybricks-micropython/compare/v3.6.1...HEAD
1172+
[Unreleased]: https://github.com/pybricks/pybricks-micropython/compare/v4.0.0b1...HEAD
1173+
[4.0.0b1]: https://github.com/pybricks/pybricks-micropython/compare/v3.6.1...v4.0.0b1
11031174
[3.6.1]: https://github.com/pybricks/pybricks-micropython/compare/v3.6.0...v3.6.1
11041175
[3.6.0]: https://github.com/pybricks/pybricks-micropython/compare/v3.6.0b5...v3.6.0
11051176
[3.6.0b5]: https://github.com/pybricks/pybricks-micropython/compare/v3.6.0b4...v3.6.0b5

lib/pbio/include/pbio/version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@
2323
#define PBIO_VERSION_MICRO 0
2424

2525
/** The current prerelease level as a hex digit. */
26-
#define PBIO_VERSION_LEVEL_HEX 0xA
26+
#define PBIO_VERSION_LEVEL_HEX 0xB
2727

2828
/** The current prerelease serial. */
29-
#define PBIO_VERSION_SERIAL 0
29+
#define PBIO_VERSION_SERIAL 1
3030

3131
/**
3232
* The current prerelease level as a string.

0 commit comments

Comments
 (0)