Skip to content

Releases: xreef/PCF8575_library

PCF8575 Library 2.0.1 update with better ESP32 support

05 Nov 08:54

Choose a tag to compare

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 TwoWire pointer and custom SDA/SCL pins could fail to initialize correctly on some ESP32 Arduino core versions. The library now accepts a user-provided TwoWire instance 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_bus example more explicit about which pins to use and how to call TwoWire::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:

  1. If using the Arduino Library Manager, update via the Library Manager UI.
  2. 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.ino for the recommended way to create and initialize a second TwoWire instance 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

12 May 06:59

Choose a tag to compare

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

01 Feb 17:31

Choose a tag to compare

Add the possibility to insert address at begin() function and return status of begin operation

Add support for Arduino UNO R4

11 Jul 05:51

Choose a tag to compare

Add support for Arduino UNO R4

Additional support for Arduino SERCOM, rp2040 (Raspberry Pi Pico), STM32 and fix

16 Feb 22:10

Choose a tag to compare

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

07 Apr 05:56

Choose a tag to compare

Minor enhancement for better managing

Add define to use same pin number of datasheet

27 Jun 21:03

Choose a tag to compare

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

26 Oct 23:16

Choose a tag to compare

i2c 16bits digital expander with Arduino, esp32 and ESP8266.