|
4 | 4 |
|
5 | 5 | ## [Unreleased] |
6 | 6 |
|
| 7 | +## [4.0.0b1] - 2025-11-25 |
| 8 | + |
7 | 9 | ### 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. |
9 | 11 | - Initial support for `pybricks.iodevices.UARTDevice` ([support#220]). |
10 | 12 | - 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. |
13 | 54 |
|
14 | 55 | ### 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. |
17 | 65 | - LWP3Device.read() now gives buffered notification values instead of blocking |
18 | 66 | 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. |
19 | 78 |
|
20 | 79 | ### Fixed |
21 | 80 | - Reduced hanging when broadcasting and observing at the same time with Technic |
22 | 81 | Hub ([support#2206]). |
23 | 82 | - Fixed hub shutting down immediately after disconnecting Bluetooth when |
24 | 83 | 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. |
25 | 95 |
|
26 | 96 | [support#220]: https://github.com/pybricks/support/issues/220 |
27 | 97 | [support#2206]: https://github.com/pybricks/support/issues/2206 |
@@ -1099,7 +1169,8 @@ Prerelease changes are documented at [support#48]. |
1099 | 1169 |
|
1100 | 1170 |
|
1101 | 1171 | <!-- 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 |
1103 | 1174 | [3.6.1]: https://github.com/pybricks/pybricks-micropython/compare/v3.6.0...v3.6.1 |
1104 | 1175 | [3.6.0]: https://github.com/pybricks/pybricks-micropython/compare/v3.6.0b5...v3.6.0 |
1105 | 1176 | [3.6.0b5]: https://github.com/pybricks/pybricks-micropython/compare/v3.6.0b4...v3.6.0b5 |
|
0 commit comments