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.
0.6.3 - 2024-09-16
- Support for
PCA9554
andPCA9554A
(#36).
0.6.2 - 2024-07-07
- Fixed non-totem-pole devices not having
embedded_hal::{InputPin, OutputPin}
implementations due to a superfluous trait bound (#35). This was a regression in 0.5.0.
0.6.1 - 2024-05-10
- Implement polarity and pull-up/down support for
MCP23017
andMCP23S17
(#31).
0.6.0 - 2024-05-10
- Support for
MCP23017
(I2C variant) andMCP23S17
(SPI variant) (#27).
- Fixed
embedded-hal
digital I/O trait implementations being unusable due to usage of an incompatible error type (#30).
- BREAKING
Pin
methods now return a custom error type which wraps the bus error instead of returning the bus error directly (#30).
0.5.1 - 2024-07-07
- Fixed non-totem-pole devices not having
embedded_hal::{InputPin, OutputPin}
implementations due to a superfluous trait bound. This fix was backported from 0.6.2.
0.5.0 - 2024-02-19
- Support for
PI4IOE5V6408
(#17). - Added support for enabling pull-up/down resistors for port expander input pins (#22).
- Added public API to access the underlying port-expander of a pin
(
pin.access_port_driver()
) and the register mask for the pin (pin.pin_mask()
) (#23).
- BREAKING Moved to
embedded-hal
1.0 (#16). - BREAKING Replaced
shared_bus::BusMutex
with our own customport_expander::PortMutex
trait (#26). If you need support for custom mutex types, you now need to implement the latter one for your mutex.
0.4.1 - 2023-12-25
0.4.0 - 2023-08-13
- BREAKING Upgraded to
shared-bus
0.3.
0.3.1 - 2023-08-13
- Added support for
MAX7321
(#10).
- Upgraded to Rust Edition 2021.
0.3.0 - 2022-05-06
- Added support for
PCF8575
(#1). - Added support for
PCA9538
. - Added
into_output_high()
for totem-pole output drivers. In contrast tointo_output()
this will immediately put the pin into a HIGH state, thus preventing a short glitch between setting direction and pin value (#3). - Added support for setting the polarity inversion of pins.
into_output()
for totem-pole output drivers now puts the pin into a LOW state without a glitch. Previously, it would leave the pin in whatever state it was last in (= most often the HIGH state) (#3).
- Fixed
read_multiple()
andwrite_multiple()
not ensuring that all passed pins actually belong to the same port-expander chip (#4).
0.2.1 - 2021-04-26
- Added the
write_multiple()
andread_multiple()
functions to set/get multiple pin-states in a single bus transaction.
- The internal
PortDriver
trait was redesigned to better fit its requirements.
0.2.0 - 2021-04-24
Pin::set_high()
,Pin::set_low()
, andPin::toggle()
now take&mut self
.
0.1.0 - 2021-04-24
Initial Release, with support for PCA9536
, PCA9555
, PCF8574
, and
PCF8574A
.