Fractal Plant – Foiled by Registers
Since receiving the PCBs and successfully soldering the board together I have been trying to rewrite code for the I2C port expander. This has been immensely difficult!
The Inkplate Arduino Library makes considerable use of an “Mcp” class, which is written to work with the MCP23017 GPIO expander IC. These chips are quite difficult to locate, I imagine due to the ongoing supply chain issues from COVID.
Mouser tantalizingly shows 100,000 of these chips on order scheduled to arrive starting in 2023! This is not soon enough!
So to make use of available parts I have been trying to rewrite the Mcp class to work with the part that I do have: the TCA9555.
These chips are very similar! Both operate over I2C, share the same address, and add 16 GPIO pins. But as I have learned they do not operate identically. To control the function of the pins both chips use registers that are written and read over I2C, and the mapping for the registers of these two chips are VERY different.
I have been fortunate to find a library for the TCA9555 from Rob Tillaart and between this and lots of referencing to the datasheets of these two chips can see a path forward. Unfortunately to rewrite the Mcp class to work with the TCA chip will take more attention and time than I currently have available.
For now I have been foiled by the registers. Hopefully this is something I will be able to sort out over the summer.