You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As discussion on Discord revealed, we are using to different types of I2C port expanders on shield and interface.
Currently, we are only supporting the MCP23008 type properly.
They are somewhat compatible in terms of their protocol, so this is not a breaking issue and may have not been an issue in the field so far, but should be fixed to avoid sporadical issues/unwanted behavior.
Support for the PCF part had been added in the past, but was removed accidentially (research done by @jonathanperret):
Ah, I just did a bit of Git archaeology on that MCP23008/PCF8574 issue and the results are… interesting.
The issue with driving a PCF8574 with code intended for the MCP23008 was very clearly identified and solved (with a patch to the MCP23008 library) by Windell in #11 !
"With this new version, the I/O signals on PCF8574-based boards are vastly improved (clean steps, no longer a forest of spikes), as seen on the logic analyzer. This may help to cut down on occasional glitches on PCF8574 based boards."
This is the code that shipped in the 0.95 firmware.
Unfortunately, this customization of the MCP23008 library was overlooked as the code for the libraries was removed from the repository, in #27 .
The text was updated successfully, but these errors were encountered:
Detection between both devices can be implemented using bit 0 of IOCON register; write 1 -> read 1 on PCF8574 but 0 on MCP23008. Based on that, the device configuration and writes to the address register can be skipped.
Detection between both devices can be implemented using bit 0 of IOCON register; write 1 -> read 1 on PCF8574 but 0 on MCP23008. Based on that, the device configuration and writes to the address register can be skipped.
Yes, and the code in #11 can be used as a reference for this approach.
As discussion on Discord revealed, we are using to different types of I2C port expanders on shield and interface.
Currently, we are only supporting the MCP23008 type properly.
They are somewhat compatible in terms of their protocol, so this is not a breaking issue and may have not been an issue in the field so far, but should be fixed to avoid sporadical issues/unwanted behavior.
Support for the PCF part had been added in the past, but was removed accidentially (research done by @jonathanperret):
The text was updated successfully, but these errors were encountered: