All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
pybricksdev oad info
command. - Added
pybricksdev oad flash
command.
- Fixed EV3 firmware flashing on USB 3.0 systems.
1.0.0-alpha.50 - 2024-07-01
- Improved
SyntaxError
handling inlwp3 repl
command. - Minimum Python version changed to 3.10.
- Fixed
PortID
exception when runninglwp3 repl
command.
1.0.0-alpha.49 - 2024-06-30
- Use relative paths when compiling multi-file projects.
- Better error message when hitting Python bug when compiling multi-file projects.
- Fixed
pybricksdev
BLE commands not working on Windows whenpythoncom
package is present in environment.
1.0.0-alpha.48 - 2024-05-04
- Updated
hidapi
dependency to v0.14.0.
- Fixed installing on Windows due to failed
hidapi
installation.
1.0.0-alpha.47 - 2024-05-04
- Allow hostname in
pybricksdev run ssh --name=...
. - Updated
bleak
dependency to v0.22.0. - Support Python up to 3.12.
- Fixed bug in udev rules.
1.0.0-alpha.46 - 2023-05-01
- Added
PybricksHub.download_user_program()
method (support#284). - Added support for flashing EV3 firmware.
- Added support for MPY ABI v6.1.
1.0.0-alpha.45 - 2023-04-21
- Added
PybricksHub.stdout_observable
property (support#1038).
- Fixed endline in
PybricksHub.write_line()
.
1.0.0-alpha.44 - 2023-04-20
- Restored
PybricksHub.output
attribute (support#1037).
1.0.0-alpha.43 - 2023-04-19
- Added support for Pybricks Profile v1.3.0.
- Added new
PybricksHub.write_string()
method. - Added new
PybricksHub.write_line()
method. - Added new
PybricksHub.read_line()
method. - Added new
PybricksHub.start_user_program()
method. - Added new
PybricksHub.stop_user_program()
method.
1.0.0-alpha.42 - 2023-04-12
- Fixed Bleak
FutureWarning
about usingBLEDevice.metadata
.
1.0.0-alpha.41 - 2023-03-26
- Fixed
pybricks.ble.find_device()
returning withname is None
on Windows (support#1010).
1.0.0-alpha.40 - 2023-03-22
- Updated
bleak
dependency to v0.20.0.
1.0.0-alpha.39 - 2023-03-06
- Fixed Python 3.11 compatibility of vendored
dfu_upload
module (support#973).
1.0.0-alpha.38 - 2023-03-03
- Added
pybricksdev.connections.ConnectionState
enum class. - Added
pybricksdev.connections.pybricks.PybricksHub.connection_state_observable
attribute.
- Fixed
pybricksdev.connections.pybricks.PybricksHub
disconnect state not reset after reconnect (support#971).
- Removed
pybricksdev.connections.pybricks.PybricksHub.disconnect_observable
attribute. - Removed
pybricksdev.connections.pybricks.PybricksHub.connected
attribute.
1.0.0-alpha.37 - 2023-02-27
- Added support for including precompiled .mpy libraries.
1.0.0-alpha.36 - 2023-02-18
- Changed EV3 script runner to just copy the script instead of replicating the local directory structure on the brick.
1.0.0-alpha.35 - 2023-02-10
- Added support for Python 3.11.
1.0.0-alpha.34 - 2023-01-21
- Added
pybricksdev.ble.pybricks.Command.PBIO_PYBRICKS_COMMAND_REBOOT_TO_UPDATE_MODE
. - Added support for Pybricks firmware metadata v2.1.0.
- Added support for flashing firmware to LEGO MINDSTORMS NXT bricks.
- Fixed reboot in update mode for Pybricks Profile >= 1.2.0 in
pybricksdev flash
CLI.
1.0.0-alpha.33 - 2022-11-06
- Updated Bleak dependency to v0.19.4.
1.0.0-alpha.32 - 2022-10-14
- Added support for Pybricks Profile v1.2.0 (BLE).
1.0.0-alpha.31 - 2022-09-14
- Experimental support for relative and nested imports.
- Added support for
firmware.metadata.json
v2.0.0.
- Move/renamed
pybricksdev.flash.create_firmware
topybricksdev.firmware.create_firmware_blob
. - Changed return value of
pybricksdev.firmware.create_firmware_blob
to include license text.
- Fixed "object is not subscriptable" error in Python 3.8 in
firmware
module.
1.0.0-alpha.30 - 2022-08-26
- Added
fw_version
attribute topybricksdev.connections.pybricks.PybricksHub
. - Experimental support for multi-file projects.
- Fixed running programs on hubs with firmware with MPY ABI v5.
1.0.0-alpha.29 - 2022-07-08
- Changed ABI default value to v6 for running programs.
1.0.0-alpha.28 - 2022-07-04
- Added support for compiling to MPY ABI v6 (MicroPython v1.19+).
abi
arg is now required incompile.compile_file
.
1.0.0-alpha.27 - 2022-06-21
- Changed dependency from
mpy-cross
tompy-cross-v5
. - Increased wait time when waiting for user program to start in
PybricksHub.run()
.
- Fix syntax error on Python < 3.10 in
firmware
module.
1.0.0-alpha.26 - 2022-06-07
- Added typings for firmware metadata json structure.
main.py
infirmware.zip
is now optional.
- Removed support for
firmware.zip
files withfirmware.bin
instead offirmware-base.bin
.
1.0.0-alpha.25 - 2022-03-17
- Added
PybricksHub.race_disconnect()
method.
- Moved
EV3Connection
fromconnections
toconnections.ev3dev
. - Moved
REPLHub
fromconnections
toconnections.lego
. - Moved
PybricksHub
fromconnections
toconnections.pybricks
.
- Fixed race condition with
pybricksdev run ble
not waiting for program to finish before disconnecting (pybricksdev#28).
1.0.0-alpha.24 - 2022-01-25
- Fixed regression causing crash when attempting to flash SPIKE firmware (support#617).
1.0.0-alpha.23 - 2022-01-17
- Fixed
pybricksdev flash
command with--name
argument not connecting.
1.0.0-alpha.22 - 2022-01-17
- Added
ble.lpw3.AdvertisementData
class. - Added
ble.lpw3.BootloaderAdvertisementData
class.
- Moved
Bootloader*
to newble.lwp3.bootloader
module. pybricksdev flash
will now discover hubs running official LEGO firmware or Pybricks firmware and reboot in bootloader mode automatically.
1.0.0-alpha.21 - 2022-01-12
- Updated
bleak
dependency to v0.14.1.
1.0.0-alpha.20 - 2022-01-10
- Updated
bleak
dependency to v0.14.0.
-
Fixed Bluetooth Low Energy not working on macOS 12.
-
Updated
bleak
dependency to v0.12.1.
1.0.0-alpha.19 - 2021-12-24
- Fixed incorrect metadata checksum for the firmware installer for SPIKE hubs.
1.0.0-alpha.18 - 2021-12-03
- Added support for Python 3.10.
- Fixed
tqdm
dependency version. - Fixed being unable to set the name of SPIKE hubs.
1.0.0-alpha.17 - 2021-10-25
- Experimental firmware installation on SPIKE Prime and SPIKE Essential via usb. The command line commands are unchanged. If you try to install the firmware on SPIKE hubs, it will first look for a hub running the regular firmware. If it doesn't find any, it will proceed using DFU as before.
- Firmware binaries for SPIKE hubs are no longer being customized with a main script and a changed checksum. Instead, it simply installs firmware.bin from the CI ZIP file.
1.0.0-alpha.16 - 2021-10-12
- Script runner for generic MicroPython boards via USB. This is mainly used for debugging.
- Visual Studio Code launcher settings to run a script via BLE.
1.0.0-alpha.15 - 2021-09-21
- Added
VOLUME
toble.lwp3.bytecodes.HubProperty
enum. - Added SPIKE Essential hub device IDs.
- Added Luigi hub device ID.
- Fixed BlueZ disconnecting when sending a command with
pybricksdev lwp3 repl
to a City hub.
1.0.0-alpha.14 - 2021-08-27
- Changed udev rules to use
TAG+="uaccess"
instead ofMODE="0666"
.
- Fixed device not rebooting after
dfu restore
.
1.0.0-alpha.13 - 2021-08-06
- Fixed crash in CRC32 checksum.
- Fixed flashing with
dfu-util
not always working (support#420).
1.0.0-alpha.12 - 2021-08-04
- Updated
bleak
dependency to v0.12.1. run
andcompile
scripts now accept-
as an argument to mean stdin.
- Removed script command line args in
run
andcompile
commands. Only accepts file name now.
1.0.0-alpha.11 - 2021-07-05
- Added support for Pybricks Protocol v1.1.0.
- Fixed
pybricksdev ble run
not working with BOOST Move hub.
1.0.0-alpha.10 - 2021-06-27
- Support for Python 3.9.
- Short
-n
option for--name
option inpybricksdev run
. - Option to set hub name when flashing firmware.
- Update to Bleak v0.12.0.
- Change
pybricksdev run
to use--wait
/--no-wait
instead of--wait=False
.
- Fix
pybricksdev lwp3 repl
can only connect to remote control. - Fix Technic Large hub Bluetooth hub kind.
1.0.0-alpha.9 - 2021-05-27
pybricksdev.ble.lwp3.bytecodes
module.pybricksdev.ble.lwp3.messages
module.pybricksdev lwp3 repl
command line tool.
- Crash when running
pybricksdev dfu
without args on command line.
1.0.0-alpha.8 - 2021-05-18
pybricksdev.ble.lwp3
module.pybricksdev.ble.nus
module.pybricksdev.ble.pybricks
module.
- Name parameter to
pybricksdev run ble
command is now optional.
- Connecting to BLE devices based on Bluetooth address.
1.0.0-alpha.7 - 2021-05-17
- Debug option to CLI interface.
- Use standard Python logging for modules instead of per-object.
- Use progress bars when downloading program to hub.
- Delay option in CLI
flash
command.
- Flashing firmware using BLE under conditions on Windows.
NotImplementedError
when compiling to .mpy in ipython kernel on Windows.
- Skipped for technical reasons.
1.0.0-alpha.5 - 2021-05-04
- REPL installer for SPIKE/MINDSTORMS hubs.
- Data logging to file.
1.0.0-alpha.4 - 2021-04-12
- Size check when restoring firmware via USB/DFU.
- Added
pybricksdev.tools.chunk()
function. - Added basic command completion to
pybricksdev lwp3 repl
.
- Wait for some time to allow program output to be received before disconnecting
in the
run
command. - Fixed spelling of
INPUT
inpybricksdev.ble.lwp3.messages
. - Fixed
pybricksdev lwp3 repl
does not exit if device disconnects.
1.0.0-alpha.3 - 2021-04-09
- Print BLE download progress after chunk is complete instead of before.
- Fix occasional bad checksum warning when running program via BLE.
1.0.0-alpha.2 - 2021-04-08
- Check Pybricks protocol version when connecting to Bluetooth Low Energy devices.
- Fix running programs via Bluetooth Low Energy.
1.0.0-alpha.1 - 2021-04-07
- This changelog.
- DFU flashing not working on Windows.
- Typo in
pip
argumentsREADME.md
.