I'm in the process of attempting to reverse engineer an i2C driven relay board. The board is actually used as a volume control for a amplifier kit and can be seen @ http://www.twistedpearaudio.com/control/jt.aspx.
What I'm attempting to do, is listen in on the messages being sent from the "Volumite" to the MCP23008 on the I2C relay board.
I'm having a heck of a time here, and it's been an awfully, awfully long time since I've messed around with this stuff (I'm using a rev 1.0 Diecimilia if that's any indication as to when i last played around with an Arduino!)
So I've got my Diecimilia conencted as follows:
3.3v -> 4K7 resistor to I2C SDA bus
3.3v -> 4K7 resistor to I2C SCL Bus
Analog 4 -> SDA
Analog 5 -> SCL
(Connected as shown in the diagram here: http://playground.arduino.cc//Main/I2CBi-directionalLevelShifter)
The "I2C Relay" board and "Volumite" have SCL/SDA pins all terminated on the same breadboard "row" as the Arduino's, but these receive a separate 22V power feed from an external source.
My first thought, was to just disco the I2C relay board and set the Arduino's receive address to 0x20, mimicking the MCP2308's address when A0/1/2 are set to ground like they are on the I2C relay board. I'd just have it sit there and "listen" for commands from the volumite, and spit out the results on the serial port.
That's not working for some reason. Actually, I've not been able to get the Ardunio to see anything on I2C, even when I disconnect the Volumite, put the Ard into master mode and attempt to scan the I2C bus using the I2C Scanner code here on the Arduino playground.
Anyone have any suggestions?
Have you connected the grounds?
Looking at the BOM and the schematic supplied on the site you linked to the chip is a MCP23008 (Datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/21919e.pdf (http://ww1.microchip.com/downloads/en/DeviceDoc/21919e.pdf)) Maybe no need to reverse engineer!