Hi Charles,

I was really waiting for one of the gurus to answer this as I am no expert in I2C but I think the problem is in the DevAddr setup. Did you try breaking this down into all of the separate elements? "DevAddr = PCF8591 | DevAddr" is a logical ORing of "PCF8591" and DevAddr when you should be addressing the address byte and the control byte separately. I have only used I2C for the DS1337 RTC and have tried it once with the 8574A chip. No problems. I do understand after looking at the datasheet that this is a little out of my league but the concept is basically the same.

Also in the receive section, don't the PSbyte's have to start with PSbyte0 first? Your variables aren't listed so I don't know how you have them set up.

HTH,

BobK