Releases: xreef/PCF8575_library
PCF8575 Library 2.0.1 update with better ESP32 support
This patch release (v2.0.1) contains small but important fixes and documentation improvements for the PCF8575 Arduino library. The update focuses on better support for ESP32 secondary I2C buses, clarified examples, and a few minor compatibility and reliability improvements.__
What's new
- Improved support for using a custom TwoWire instance (secondary I2C bus) on ESP32 boards. Example added/updated to show how to instantiate and initialize a second I2C bus.
- Clarified example wiring and usage notes in the examples folder, including
esp32_second_i2c_bus. - Minor documentation and README improvements for clearer setup instructions and troubleshooting.
Bug fixes
- Fixed an issue where passing a custom
TwoWirepointer and custom SDA/SCL pins could fail to initialize correctly on some ESP32 Arduino core versions. The library now accepts a user-providedTwoWireinstance and initializes it reliably when provided by the user. - Corrected example comments and pin numbers to avoid confusion when copying examples to real hardware.
Improvements
- Examples: Made the
esp32_second_i2c_busexample more explicit about which pins to use and how to callTwoWire::begin()when using a second I2C controller on ESP32. - Documentation: Added short troubleshooting tips for common I2C problems (address conflicts, pull-ups, voltage levels).
- Compatibility: Small tweaks to improve compatibility with recent Arduino cores and maintain backwards compatibility with older versions.
Installation / Upgrade
To upgrade to v2.0.1:
- If using the Arduino Library Manager, update via the Library Manager UI.
- If installed manually, replace the library folder with the new release contents and restart the Arduino IDE / PlatformIO.
No API changes are expected for existing sketches; the update is backward-compatible.
Notes and migration tips
- If you use an ESP32 and a second I2C bus, check the example
examples/esp32_second_i2c_bus/esp32_second_i2c_bus.inofor the recommended way to create and initialize a secondTwoWireinstance and how to pass it to the PCF8575 constructor. - Ensure proper pull-up resistors are present on SDA/SCL lines for reliable communication.
- If you experience issues after upgrading, try cleaning compiled files and restarting your IDE.
Credits
Thanks to all contributors and users who reported issues and suggested improvements.
Contact & Support
For issues, feature requests or contributions, please open an issue or pull request in the repository: https://github.com/xreef/PCF8575_library
New major release with all needed features like the pcf8574 version
Manage INPUT_PULLUP
LOW latency mode
Support Arduino UNO R4
Initial OUTPUT value
Now, this library has deleted all differences from the pcf8574 version. For more information, you can refer to the pcf8574 version.
Add the possibility to insert address at begin() function and return status of begin operation
Add the possibility to insert address at begin() function and return status of begin operation
Add support for Arduino UNO R4
Add support for Arduino UNO R4
Additional support for Arduino SERCOM, rp2040 (Raspberry Pi Pico), STM32 and fix
Fix STM32 support and add support for Raspberry Pi Pico and other rp2040 boards
Add support for custom SERCOM interface of Arduino SAMD devices. Force SDA SCL to use GPIO numeration for STM32 bug (https://www.mischianti.org/forums/topic/compatible-with-stm32duino/).
Force SDA SCL to use GPIO numeration (https://www.mischianti.org/forums/topic/cannot-set-sda-clk-on-esp8266/).
Fix the SDA SCL type #58 and add basic support for SAMD device.
Reassembling package to reduce size
Minor enhancement for better managing
Add define to use same pin number of datasheet
You can uncomment
//#define NOT_SEQUENTIAL_PINOUT
to have pin like this
#define P00 0
#define P01 1
#define P02 2
#define P03 3
#define P04 4
#define P05 5
#define P06 6
#define P07 7
#define P10 8
#define P11 9
#define P12 10
#define P13 11
#define P14 12
#define P15 13
#define P16 14
#define P17 15
instead of
#define P0 0
#define P1 1
#define P2 2
#define P3 3
#define P4 4
#define P5 5
#define P6 6
#define P7 7
#define P8 8
#define P9 9
#define P10 10
#define P11 11
#define P12 12
#define P13 13
#define P14 14
#define P15 15
Last stable release
i2c 16bits digital expander with Arduino, esp32 and ESP8266.