Pybricks firmware.zip files
Utilities for working with Pybricks firmware.zip
files.
- AnyFirmwareMetadata
Type for data contained in
firmware.metadata.json
files of any version.alias of
Union
[FirmwareMetadataV100
,FirmwareMetadataV110
,FirmwareMetadataV200
,FirmwareMetadataV210
]
- AnyFirmwareV1Metadata
Type for data contained in
firmware.metadata.json
files of any 1.x version.alias of
Union
[FirmwareMetadataV100
,FirmwareMetadataV110
]
- AnyFirmwareV2Metadata
Type for data contained in
firmware.metadata.json
files of any 2.x version.alias of
Union
[FirmwareMetadataV200
,FirmwareMetadataV210
]
- class FirmwareMetadataV100
Type for data contained in v1.0.0
firmware.metadata.json
files.
- class FirmwareMetadataV110
Type for data contained in v1.1.0
firmware.metadata.json
files.
- class FirmwareMetadataV200
Type for data contained in v2.0.0
firmware.metadata.json
files.
- class FirmwareMetadataV210
Type for data contained in v2.1.0
firmware.metadata.json
files.
- async create_firmware_blob(firmware_zip: str | PathLike | BinaryIO, name: str | None = None) Tuple[bytes, FirmwareMetadataV100 | FirmwareMetadataV110 | FirmwareMetadataV200 | FirmwareMetadataV210, str]
Creates a firmware blob from base firmware and an optional custom name.
Note
The firmware.zip file must contain the following files:
firmware-base.bin firmware.metadata.json ReadMe_OSS.txt
v1.x also supports an optional
main.py
file that is appended to the firmware.- Parameters:
firmware_zip – Path to the firmware zip file or a file-like object.
name – A custom name for the hub.
- Returns:
Tuple of composite binary blob for flashing, the metadata, and the license text.
- Raises:
ValueError – A name is given but the firmware does not support it or the name exceeds the alloted space in the firmware.