Not seeing much in the way of feedback guys... c'mon, certainly someone has *something*
Playing more with this situation, just updating with more data in case anyone does feel brave enough to reply with theories. hehe
I'm now using a boarduino programmed/powered by an USBTinyISP. The circuit is roughly the same as before (especially with regards to communication between arduino and MCP23017 via I2C). Only I have altered the code and outputs a little more.
At this point there is a single LED on all outputs of the MCP23017. The video link shows me going from USB based power, over to DC via 9v battery pack, and over to AC transformer to 9v DC. Starts fairly stable on USB, get's a little crazy on 9v, and get's really crazy on AC, then returns back to somewhat stable again on USB. There are times that i am pressing the reset button to attempt to clean and start fresh, other times is me changing power source.
I have a hypothesis at this point, leading towards an generally unreliable and awkward communication path between MCU and IC via I2C.
I2C is basically (in my NB eyes anyway, plus i'm a network guy so it's easy for me to go here) a small network between the MCU and the IC. data exchange is synced by way of the SCL clock line, so that all parties on the bus are using the same clocking... data exchange itself occurs on the SDA line, which is a single wire shared by all devices on the network, a single broadcast domain if you will. Ethernet handles this by requiring a bit of CSMA/CD capability to ensure sent packets are not corrupted by shared access... and various high level protocols require two way communication to ensure data exchange is successful (tcp acking, if you will).
Only here the medium isn't so sophisticated, and/or i've read more than one article suggesting that maybe the arduino code doesn't participate fully in the ACK'ing process (reacting to ACK's from the IC).
It would seem to me that the various timings of startup, power being placed on the bus, and code activating on the arduino prior to or maybe after the IC is ready to accept I2C exchange, might be cause... and/or in other cases there is simply conflict on the wire causing corruption and the like.
This all leaves the MCU in various states. Slight charges holding pins high or low, only partial setup occuring at the time it's read, etc. And i believe in the end this all relates directly to what you see at glitchy here. I cannot speak why there seems to be a difference in the way that the USB, 9v battery, and wall wart trigger this response... but something tells me it has to do with the subtle difference in timing and amount of power provided during the connection.
To fix all of this and make it "stable"... it seems to me that the only resource available to me involves setting up some amount of delay during setup to allow for the MCU, IC, and Power all to settle... and an occasional re-initialization of the registers on the IC to ensure they are at the proper values.
Any brave souls out there willing to provide input???? http://www.youtube.com/watch?v=RmwQAxdj_V8