Skip to content

Changelog

[v0.7.0] - 2026-10-06

🚀 Features

  • (i3c) Enable reset pin to perform target reset action
  • (i3c) Support I3C target DATA with reset action
  • (mctp) Get_targets() hands back an MCTP endpoint class
  • (spi) Add PxSPIFifoTarget
  • (i3c) Add user configurable target reset actions

🐛 Bug Fixes

  • Align ZMQ request timeout with device operation deadline

🚜 Refactor

  • Protobuf-free public API on topology (buses, devices) and events
  • (spi) Refactor spi transactions to include IDLE-time structure
  • Protobuf-free public API, domain types for POD and GPIO

📚 Documentation

  • Inform users that may have breaking changes
  • Claim the context7 website id
  • (spi) Fix enqueue typo in send_transactions docstring

💼 Miscellaneous

  • Add support of python 3.15
  • Remove license classifier per PEP 639

[v0.6.0] - 2026-09-22

🚀 Features

  • Revision-aware atomic topology updates and updated_topology event
  • Add user controllable timeout to device operations and recognizable zmq timeout error
  • Multiple event handles for single topic, adding event handler before attach, re-add handler on reattach
  • Add get_buses() for typed bus enumeration
  • (i3c) Do_daa from an assignment list or a maximum assignments

🐛 Bug Fixes

  • Invalid supported_group_address_count check on I3C targets

🚜 Refactor

  • Module-level logging via aqpxlib.utils.log
  • Slim package root: only export AqProtocolExerciser from aqpxlib
  • (i3c) Drop deprecated I3C legacy transaction API

📚 Documentation

  • Support Context7 MCP to read our docs

[v0.5.1] - 2026-09-16

🚀 Features

  • (i2c) Mirror i2c methods from MicroPython

🐛 Bug Fixes

  • (abstract) Reuse existing device ID in attach_to_bus

[v0.5.0] - 2026-09-11

🚀 Features

  • Include PXAPI response messages in exceptions
  • (sessions) ZMQ protocol v2 (client-side) migration

🐛 Bug Fixes

  • (types) Promote ty rule invalid-return-type
  • (types) Promote ty rule possibly-missing-attribute
  • (types) Promote ty rule parameter-already-assigned
  • (types) Promote ty rule invalid-assignment
  • (types) Promote ty rule unresolved-attribute
  • (types) Promote ty rule invalid-method-override
  • (docs) Fix docs build using strict mode to prevent deployment failure

📚 Documentation

  • Copy install script in one line
  • Update README.md for publishing to PyPI

[v0.4.1] - 2026-09-03

🚀 Features

  • (i3c) Support I3C controller HDR-DDR timing configuration

📚 Documentation

  • Link to product page

[v0.4.0] - 2026-08-21

🚀 Features

  • Add additional_data get/set helpers on PxAbstractDevice
  • Add additional_data get/set helpers on PxAbstractDevice
  • (i3c) Support i3c FIFO target class

📚 Documentation

  • Add translation for existing docs (Simplified Chinese / Traditional Chinese)
  • Publish changelog for users

[v0.3.0] - 2026-08-11

🚀 Features

  • (i3c) Add i3c 8bit addressable memory target class

🚜 Refactor

  • Rename I2C 16KB memory target to 4KB

[v0.2.1] - 2026-07-21

🚀 Features

  • (pwm) Add PWM support
  • (i2c) Add 16 KB memory target Python wrapper

🐛 Bug Fixes

  • Some config cannot be set due to parsing error in from_dict / to_dict roundtrip error from betterproto

[v0.2.0] - 2026-07-08

🚀 Features

  • (i3c) Support hdr-ddr direct_ccc_read & fix broadcast_ccc_write
  • (i2c) Add FIFO target Python wrapper

🐛 Bug Fixes

  • Incorrect HDR-DDR transaction list in broadcast CCC write

🚜 Refactor

  • Migration i3c ops / accomodate nak_cont (ignore_nak) usage

🧪 Testing

  • Add test which checks local config is applied when device is not attached

💼 Miscellaneous

  • Print out mode enum name instead of only value to provide clear unsupported modes

[v0.1.7] - 2026-06-18

🚀 Features

  • (i3c) Add send_i2c_transactions to I3C controller

🐛 Bug Fixes

  • Argument check of read count
  • Config is not updated locally when device is not attached

🚜 Refactor

  • (i2c, i3c) Unify I2C/I3C sub-address read/write API

[v0.1.6] - 2026-06-12

🚀 Features

  • (cts) Add method for I3CBaseController to create specific operation towards CTS instances
  • (i2c) Add 256byte / 8bit sub address memory target
  • (gpio) Able to get trigger params

📚 Documentation

  • (i2c) Remove PXIP reference from external docs
  • Publish docs to gh-pages branch to provide no history
  • Publish docs with no history

[v0.1.5] - 2026-06-01

🚀 Features

  • Allow usage of dev container
  • (i3c) Support emit target reset pattern from idle
  • (i3c) Controller able to send hdr-ddr Broadcast SETMWL CCC
  • (gpio) Add GPIO Trigger setup & event

🐛 Bug Fixes

  • Allow multiple connections to zmq server from pxlib
  • Typo of stop type

📚 Documentation

  • Add instructions regarding I3C controller status & session connection
  • Document GPIO functionality

💼 Miscellaneous

  • Add pytest extensions
  • Give dev container a name
  • Add ability to run ruff from docker

[v0.1.4] - 2026-04-30

🚀 Features

  • (gpio) Able to get / set gpio status

🐛 Bug Fixes

  • Allow multiple detach_from_bus
  • Ty type check error but not reported

📚 Documentation

  • Update I2C controller and UART docs

[v0.1.3] - 2026-04-09

🚀 Features

  • Add support for dc output control

[v0.1.2] - 2026-03-25

🚀 Features

  • (i2c) Add setter for user to switch I2C register type
  • (i3c) Add a setter for user to directly set the register type.
  • (i3c) Add additional parameter of ccc_parity_mode for direct_ccc_read

🐛 Bug Fixes

  • (i3c) The data list used in direct_setgrpa is incorrect

📚 Documentation

  • Fix hdr-ddr write instruction error
  • Enhance document layout

💼 Miscellaneous

  • Add new linter rules

[v0.1.1] - 2026-02-10

🐛 Bug Fixes

  • Docs release pipeline

[v0.1.0] - 2026-02-02

🚀 Features

  • (i3c) I3c controller hdr-ddr write method
  • Support config setter for devices
  • (spi) Add basic 32bit register target support
  • Support uart sending parity error
  • Add uart parity configuration
  • Add optional ibi payload size parameter for SETMRL
  • Add pod I/O setter / getter on toplevel
  • More controls over PXPOD
  • Set voltage to handles
  • Add i3c private write / read support
  • I3c ibi support

🐛 Bug Fixes

  • Manual build workflow
  • Remove uneccessary logging
  • Cleanup unused get_state methods
  • Update src/pxlib/i3c/i3c_base_controller.py
  • Fix input parameter as list of int instead of bytes
  • (i3c) Also avoid i3c read count = 0
  • (i2c) Raise ValueError when read count equals 0
  • Mkdocs live reload not working on python 3.10
  • Fix incorrect ibi request error message and skip_bcr_check only checks bcr
  • Docstring of SETMWL is misplaced
  • Fix Dockerfile dependency file
  • Direct ENTAS1 shall accept list of addresses instead of one
  • Fix ineffective removal of controllers
  • Use PxControllerDevice instead of old deprecated config
  • Pub-sub using incorrect repsonse type
  • Adjust exception naming
  • Topic are upper case hex
  • Pxlib raise error with status code

🚜 Refactor

  • (i2c) Reformat i2c subaddress type as i3c's

📚 Documentation

  • Update site_url in mkdocs.yml
  • Add more pxlib documentation for release
  • Initial revised version of i3c controller / targets documentation
  • Apply new design of docs
  • Initiate documentation environment
  • Update TODO
  • Create README.md to track TODOs

💼 Miscellaneous

  • Allow setting host to connect to
  • Bump 0.0.2
  • Add ty type checker module
  • Stricter linting rules
  • Move attach_to_bus to abstract level
  • Move get/set state method to abstract level
  • Revise I2C controller scan all function
  • Add uv.lock renovate as well
  • Add spi controller
  • Add make compile for compile protobuf & and update submodule
  • I2C controller scanning all addresses on bus
  • Convert list to bytes
  • Change i2c_read_addr/i2c_write_addr argument type
  • Add I2C controller
  • Add makefile to sync env easier
  • Cleanups based on protobuf cleanups
  • Uv setup with pyproject.toml
  • Add i2c
  • Remove ignored linting rules related to documentaion and annotation
  • Method for I3C targets to send hot-join request
  • Silent event handler loop debugging log
  • Receive ACK / NACK status from PS
  • Group addresssing support (controller ccc methods and target configs)
  • Unify I3C operations to PxDeviceOperation
  • Remove voltage setup from individual device
  • Fix more linting issues
  • Fix ruff lint rules
  • Only update bus voltage if given
  • Can customize getcaps response
  • Support minimum mrl setting, i3c_controller: send broadcast ccc with parity
  • Can now initialise & receive data
  • Can now send data
  • Fix SETNEWDA not shifting new address << 1
  • Receive event state update events
  • Allow sending broadcast & direct cccs with bad parity
  • Add private_read_addr function to read from subaddress in i3c mode
  • Change setnewda to take multiple new addresses (one for each old)
  • Allow setting sub_address_type without config, fill id_value in config if not present
  • Export target config protobuf messages
  • Add more ccc support
  • Add several ccc
  • Clarify if a zero-length message is a request or response
  • Add event handler support
  • Support for creating bus
  • Remove unused proto files
  • Adjust structure to integrate with pxip